{"name":"gcp","displayName":"Google Cloud","version":"9.14.0","description":"A Pulumi package for creating and managing Google Cloud Platform resources.","keywords":["pulumi","gcp"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`google-beta` Terraform Provider](https://github.com/hashicorp/terraform-provider-google-beta).","repository":"https://github.com/pulumi/pulumi-gcp","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"accessapproval":"AccessApproval","accesscontextmanager":"AccessContextManager","activedirectory":"ActiveDirectory","alloydb":"Alloydb","apigateway":"ApiGateway","apigee":"Apigee","apihub":"ApiHub","appengine":"AppEngine","apphub":"Apphub","applicationintegration":"ApplicationIntegration","artifactregistry":"ArtifactRegistry","assuredworkloads":"AssuredWorkloads","backupdisasterrecovery":"BackupDisasterRecovery","beyondcorp":"Beyondcorp","biglake":"BigLake","bigquery":"BigQuery","bigqueryanalyticshub":"BigQueryAnalyticsHub","bigquerydatapolicy":"BigQueryDataPolicy","bigtable":"BigTable","billing":"Billing","binaryauthorization":"BinaryAuthorization","blockchainnodeengine":"BlockchainNodeEngine","certificateauthority":"CertificateAuthority","certificatemanager":"CertificateManager","ces":"Ces","chronicle":"Chronicle","cloudasset":"CloudAsset","cloudbuild":"CloudBuild","cloudbuildv2":"CloudBuildV2","clouddeploy":"CloudDeploy","clouddomains":"CloudDomains","cloudfunctions":"CloudFunctions","cloudfunctionsv2":"CloudFunctionsV2","cloudidentity":"CloudIdentity","cloudids":"CloudIds","cloudquota":"CloudQuota","cloudrun":"CloudRun","cloudrunv2":"CloudRunV2","cloudscheduler":"CloudScheduler","cloudsecuritycompliance":"CloudSecurityCompliance","cloudtasks":"CloudTasks","colab":"Colab","composer":"Composer","compute":"Compute","contactcenterinsights":"ContactCenterInsights","container":"Container","containeranalysis":"ContainerAnalysis","databasemigrationservice":"DatabaseMigrationService","datacatalog":"DataCatalog","dataflow":"Dataflow","dataform":"Dataform","datafusion":"DataFusion","dataloss":"DataLoss","dataplex":"DataPlex","dataproc":"Dataproc","datastream":"Datastream","deploymentmanager":"DeploymentManager","developerconnect":"DeveloperConnect","diagflow":"Diagflow","discoveryengine":"DiscoveryEngine","dns":"Dns","edgecontainer":"EdgeContainer","edgenetwork":"EdgeNetwork","endpoints":"Endpoints","essentialcontacts":"EssentialContacts","eventarc":"Eventarc","filestore":"Filestore","firebase":"Firebase","firebaserules":"Firebaserules","firestore":"Firestore","folder":"Folder","gcp":"Gcp","gemini":"Gemini","gkebackup":"GkeBackup","gkehub":"GkeHub","gkeonprem":"GkeOnPrem","healthcare":"Healthcare","hypercomputecluster":"HyperComputeCluster","iam":"Iam","iap":"Iap","identityplatform":"IdentityPlatform","integrationconnectors":"IntegrationConnectors","kms":"Kms","logging":"Logging","looker":"Looker","lustre":"Lustre","managedkafka":"ManagedKafka","memcache":"Memcache","memorystore":"MemoryStore","migrationcenter":"MigrationCenter","ml":"ML","modelarmor":"ModelArmor","monitoring":"Monitoring","netapp":"Netapp","networkconnectivity":"NetworkConnectivity","networkmanagement":"NetworkManagement","networksecurity":"NetworkSecurity","networkservices":"NetworkServices","notebooks":"Notebooks","observability":"Observability","oracledatabase":"OracleDatabase","organizations":"Organizations","orgpolicy":"OrgPolicy","osconfig":"OsConfig","oslogin":"OsLogin","parallelstore":"ParallelStore","parametermanager":"ParameterManager","privilegedaccessmanager":"PrivilegedAccessManager","projects":"Projects","pubsub":"PubSub","recaptcha":"Recaptcha","redis":"Redis","resourcemanager":"ResourceManager","runtimeconfig":"RuntimeConfig","saasruntime":"SaaSRuntime","secretmanager":"SecretManager","securesourcemanager":"SecureSourceManager","securitycenter":"SecurityCenter","securityposture":"SecurityPosture","serviceaccount":"ServiceAccount","servicedirectory":"ServiceDirectory","servicenetworking":"ServiceNetworking","serviceusage":"ServiceUsage","siteverification":"SiteVerification","sourcerepo":"SourceRepo","spanner":"Spanner","sql":"Sql","storage":"Storage","tags":"Tags","tpu":"Tpu","transcoder":"Transcoder","vectorsearch":"VectorSearch","vertex":"Vertex","vmwareengine":"VMwareEngine","vpcaccess":"VpcAccess","workbench":"Workbench","workflows":"Workflows","workstations":"Workstations"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing Google Cloud Platform resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-google-beta)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-gcp` repo](https://github.com/pulumi/pulumi-gcp/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-google-beta` repo](https://github.com/hashicorp/terraform-provider-google-beta/issues).","dependencies":{"@npmcli/package-json":"^6.2.0","@types/express":"^4.16.0"},"devDependencies":{"@types/node":"^18.0.0"},"resolutions":{"@types/mime":"3.0.4"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-google-beta)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-gcp` repo](https://github.com/pulumi/pulumi-gcp/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-google-beta` repo](https://github.com/hashicorp/terraform-provider-google-beta/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true},"inputTypes":"classes-and-dicts"}},"config":{"variables":{"accessApprovalCustomEndpoint":{"type":"string"},"accessContextManagerCustomEndpoint":{"type":"string"},"accessToken":{"type":"string","secret":true},"activeDirectoryCustomEndpoint":{"type":"string"},"addPulumiAttributionLabel":{"type":"boolean"},"alloydbCustomEndpoint":{"type":"string"},"apiGatewayCustomEndpoint":{"type":"string"},"apigeeCustomEndpoint":{"type":"string"},"apihubCustomEndpoint":{"type":"string"},"apikeysCustomEndpoint":{"type":"string"},"appEngineCustomEndpoint":{"type":"string"},"apphubCustomEndpoint":{"type":"string"},"artifactRegistryCustomEndpoint":{"type":"string"},"assuredWorkloadsCustomEndpoint":{"type":"string"},"backupDrCustomEndpoint":{"type":"string"},"batching":{"$ref":"#/types/gcp:config/batching:batching"},"beyondcorpCustomEndpoint":{"type":"string"},"bigQueryCustomEndpoint":{"type":"string"},"biglakeCustomEndpoint":{"type":"string"},"biglakeIcebergCustomEndpoint":{"type":"string"},"bigqueryAnalyticsHubCustomEndpoint":{"type":"string"},"bigqueryConnectionCustomEndpoint":{"type":"string"},"bigqueryDataTransferCustomEndpoint":{"type":"string"},"bigqueryDatapolicyCustomEndpoint":{"type":"string"},"bigqueryDatapolicyv2CustomEndpoint":{"type":"string"},"bigqueryReservationCustomEndpoint":{"type":"string"},"bigtableCustomEndpoint":{"type":"string"},"billingCustomEndpoint":{"type":"string"},"billingProject":{"type":"string"},"binaryAuthorizationCustomEndpoint":{"type":"string"},"blockchainNodeEngineCustomEndpoint":{"type":"string"},"certificateManagerCustomEndpoint":{"type":"string"},"cesCustomEndpoint":{"type":"string"},"chronicleCustomEndpoint":{"type":"string"},"cloudAssetCustomEndpoint":{"type":"string"},"cloudBillingCustomEndpoint":{"type":"string"},"cloudBuildCustomEndpoint":{"type":"string"},"cloudFunctionsCustomEndpoint":{"type":"string"},"cloudIdentityCustomEndpoint":{"type":"string"},"cloudIdsCustomEndpoint":{"type":"string"},"cloudQuotasCustomEndpoint":{"type":"string"},"cloudResourceManagerCustomEndpoint":{"type":"string"},"cloudRunCustomEndpoint":{"type":"string"},"cloudRunV2CustomEndpoint":{"type":"string"},"cloudSchedulerCustomEndpoint":{"type":"string"},"cloudSecurityComplianceCustomEndpoint":{"type":"string"},"cloudTasksCustomEndpoint":{"type":"string"},"cloudbuildv2CustomEndpoint":{"type":"string"},"clouddeployCustomEndpoint":{"type":"string"},"clouddomainsCustomEndpoint":{"type":"string"},"cloudfunctions2CustomEndpoint":{"type":"string"},"colabCustomEndpoint":{"type":"string"},"composerCustomEndpoint":{"type":"string"},"computeCustomEndpoint":{"type":"string"},"contactCenterInsightsCustomEndpoint":{"type":"string"},"containerAnalysisCustomEndpoint":{"type":"string"},"containerAttachedCustomEndpoint":{"type":"string"},"containerAwsCustomEndpoint":{"type":"string"},"containerAzureCustomEndpoint":{"type":"string"},"containerCustomEndpoint":{"type":"string"},"coreBillingCustomEndpoint":{"type":"string"},"credentials":{"type":"string"},"dataCatalogCustomEndpoint":{"type":"string"},"dataFusionCustomEndpoint":{"type":"string"},"dataLossPreventionCustomEndpoint":{"type":"string"},"dataPipelineCustomEndpoint":{"type":"string"},"databaseMigrationServiceCustomEndpoint":{"type":"string"},"dataflowCustomEndpoint":{"type":"string"},"dataformCustomEndpoint":{"type":"string"},"dataplexCustomEndpoint":{"type":"string"},"dataprocCustomEndpoint":{"type":"string"},"dataprocGdcCustomEndpoint":{"type":"string"},"dataprocMetastoreCustomEndpoint":{"type":"string"},"datastreamCustomEndpoint":{"type":"string"},"defaultLabels":{"type":"object","additionalProperties":{"type":"string"}},"deploymentManagerCustomEndpoint":{"type":"string"},"developerConnectCustomEndpoint":{"type":"string"},"dialogflowCustomEndpoint":{"type":"string"},"dialogflowCxCustomEndpoint":{"type":"string"},"disableGlobalProjectWarning":{"type":"boolean","default":false,"defaultInfo":{"environment":["PULUMI_GCP_DISABLE_GLOBAL_PROJECT_WARNING"]}},"disableGooglePartnerName":{"type":"boolean"},"discoveryEngineCustomEndpoint":{"type":"string"},"dnsCustomEndpoint":{"type":"string"},"documentAiCustomEndpoint":{"type":"string"},"documentAiWarehouseCustomEndpoint":{"type":"string"},"edgecontainerCustomEndpoint":{"type":"string"},"edgenetworkCustomEndpoint":{"type":"string"},"essentialContactsCustomEndpoint":{"type":"string"},"eventarcCustomEndpoint":{"type":"string"},"externalCredentials":{"$ref":"#/types/gcp:config/externalCredentials:externalCredentials"},"filestoreCustomEndpoint":{"type":"string"},"firebaseAiLogicCustomEndpoint":{"type":"string"},"firebaseAppCheckCustomEndpoint":{"type":"string"},"firebaseAppHostingCustomEndpoint":{"type":"string"},"firebaseCustomEndpoint":{"type":"string"},"firebaseDataConnectCustomEndpoint":{"type":"string"},"firebaseDatabaseCustomEndpoint":{"type":"string"},"firebaseExtensionsCustomEndpoint":{"type":"string"},"firebaseHostingCustomEndpoint":{"type":"string"},"firebaseStorageCustomEndpoint":{"type":"string"},"firebaserulesCustomEndpoint":{"type":"string"},"firestoreCustomEndpoint":{"type":"string"},"geminiCustomEndpoint":{"type":"string"},"gkeBackupCustomEndpoint":{"type":"string"},"gkeHub2CustomEndpoint":{"type":"string"},"gkeHubCustomEndpoint":{"type":"string"},"gkeonpremCustomEndpoint":{"type":"string"},"googlePartnerName":{"type":"string"},"healthcareCustomEndpoint":{"type":"string"},"hypercomputeclusterCustomEndpoint":{"type":"string"},"iam2CustomEndpoint":{"type":"string"},"iam3CustomEndpoint":{"type":"string"},"iamBetaCustomEndpoint":{"type":"string"},"iamCredentialsCustomEndpoint":{"type":"string"},"iamCustomEndpoint":{"type":"string"},"iamWorkforcePoolCustomEndpoint":{"type":"string"},"iapCustomEndpoint":{"type":"string"},"identityPlatformCustomEndpoint":{"type":"string"},"impersonateServiceAccount":{"type":"string"},"impersonateServiceAccountDelegates":{"type":"array","items":{"type":"string"}},"integrationConnectorsCustomEndpoint":{"type":"string"},"integrationsCustomEndpoint":{"type":"string"},"kmsCustomEndpoint":{"type":"string"},"loggingCustomEndpoint":{"type":"string"},"lookerCustomEndpoint":{"type":"string"},"lustreCustomEndpoint":{"type":"string"},"managedKafkaCustomEndpoint":{"type":"string"},"memcacheCustomEndpoint":{"type":"string"},"memorystoreCustomEndpoint":{"type":"string"},"migrationCenterCustomEndpoint":{"type":"string"},"mlEngineCustomEndpoint":{"type":"string"},"modelArmorCustomEndpoint":{"type":"string"},"modelArmorGlobalCustomEndpoint":{"type":"string"},"monitoringCustomEndpoint":{"type":"string"},"netappCustomEndpoint":{"type":"string"},"networkConnectivityCustomEndpoint":{"type":"string"},"networkConnectivityv1CustomEndpoint":{"type":"string"},"networkManagementCustomEndpoint":{"type":"string"},"networkSecurityCustomEndpoint":{"type":"string"},"networkServicesCustomEndpoint":{"type":"string"},"notebooksCustomEndpoint":{"type":"string"},"observabilityCustomEndpoint":{"type":"string"},"oracleDatabaseCustomEndpoint":{"type":"string"},"orgPolicyCustomEndpoint":{"type":"string"},"osConfigCustomEndpoint":{"type":"string"},"osConfigV2CustomEndpoint":{"type":"string"},"osLoginCustomEndpoint":{"type":"string"},"parallelstoreCustomEndpoint":{"type":"string"},"parameterManagerCustomEndpoint":{"type":"string"},"parameterManagerRegionalCustomEndpoint":{"type":"string"},"pollInterval":{"type":"string"},"privatecaCustomEndpoint":{"type":"string"},"privilegedAccessManagerCustomEndpoint":{"type":"string"},"project":{"type":"string","defaultInfo":{"environment":["GOOGLE_PROJECT","GOOGLE_CLOUD_PROJECT","GCLOUD_PROJECT","CLOUDSDK_CORE_PROJECT"]}},"publicCaCustomEndpoint":{"type":"string"},"pubsubCustomEndpoint":{"type":"string"},"pubsubLiteCustomEndpoint":{"type":"string"},"pulumiAttributionLabelAdditionStrategy":{"type":"string"},"recaptchaEnterpriseCustomEndpoint":{"type":"string"},"redisCustomEndpoint":{"type":"string"},"region":{"type":"string","defaultInfo":{"environment":["GOOGLE_REGION","GCLOUD_REGION","CLOUDSDK_COMPUTE_REGION"]}},"requestReason":{"type":"string"},"requestTimeout":{"type":"string"},"resourceManager3CustomEndpoint":{"type":"string"},"resourceManagerCustomEndpoint":{"type":"string"},"resourceManagerV3CustomEndpoint":{"type":"string"},"runtimeConfigCustomEndpoint":{"type":"string"},"runtimeconfigCustomEndpoint":{"type":"string"},"saasRuntimeCustomEndpoint":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"secretManagerCustomEndpoint":{"type":"string"},"secretManagerRegionalCustomEndpoint":{"type":"string"},"secureSourceManagerCustomEndpoint":{"type":"string"},"securityCenterCustomEndpoint":{"type":"string"},"securityCenterManagementCustomEndpoint":{"type":"string"},"securityCenterV2CustomEndpoint":{"type":"string"},"securityScannerCustomEndpoint":{"type":"string"},"securitypostureCustomEndpoint":{"type":"string"},"serviceDirectoryCustomEndpoint":{"type":"string"},"serviceManagementCustomEndpoint":{"type":"string"},"serviceNetworkingCustomEndpoint":{"type":"string"},"serviceUsageCustomEndpoint":{"type":"string"},"siteVerificationCustomEndpoint":{"type":"string"},"skipRegionValidation":{"type":"boolean","default":false,"defaultInfo":{"environment":["PULUMI_GCP_SKIP_REGION_VALIDATION"]}},"sourceRepoCustomEndpoint":{"type":"string"},"spannerCustomEndpoint":{"type":"string"},"sqlCustomEndpoint":{"type":"string"},"storageBatchOperationsCustomEndpoint":{"type":"string"},"storageControlCustomEndpoint":{"type":"string"},"storageCustomEndpoint":{"type":"string"},"storageInsightsCustomEndpoint":{"type":"string"},"storageTransferCustomEndpoint":{"type":"string"},"tagsCustomEndpoint":{"type":"string"},"tagsLocationCustomEndpoint":{"type":"string"},"tpuV2CustomEndpoint":{"type":"string"},"transcoderCustomEndpoint":{"type":"string"},"universeDomain":{"type":"string"},"userProjectOverride":{"type":"boolean"},"vectorSearchCustomEndpoint":{"type":"string"},"vertexAiCustomEndpoint":{"type":"string"},"vmwareengineCustomEndpoint":{"type":"string"},"vpcAccessCustomEndpoint":{"type":"string"},"workbenchCustomEndpoint":{"type":"string"},"workflowsCustomEndpoint":{"type":"string"},"workstationsCustomEndpoint":{"type":"string"},"zone":{"type":"string","defaultInfo":{"environment":["GOOGLE_ZONE","GCLOUD_ZONE","CLOUDSDK_COMPUTE_ZONE"]}}}},"types":{"gcp:accesscontextmanager/AccessLevelBasic:AccessLevelBasic":{"properties":{"combiningFunction":{"type":"string","description":"How the conditions list should be combined to determine if a request\nis granted this AccessLevel. If AND is used, each Condition in\nconditions must be satisfied for the AccessLevel to be applied. If\nOR is used, at least one Condition in conditions must be satisfied\nfor the AccessLevel to be applied.\nDefault value is `AND`.\nPossible values are: `AND`, `OR`.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelBasicCondition:AccessLevelBasicCondition"},"description":"A set of requirements for the AccessLevel to be granted.\nStructure is documented below.\n"}},"type":"object","required":["conditions"]},"gcp:accesscontextmanager/AccessLevelBasicCondition:AccessLevelBasicCondition":{"properties":{"devicePolicy":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelBasicConditionDevicePolicy:AccessLevelBasicConditionDevicePolicy","description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.\nStructure is documented below.\n"},"ipSubnetworks":{"type":"array","items":{"type":"string"},"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.\n"},"members":{"type":"array","items":{"type":"string"},"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: `user:{emailid}`, `serviceAccount:{emailid}`\n"},"negate":{"type":"boolean","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.\n"},"requiredAccessLevels":{"type":"array","items":{"type":"string"},"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}\n"},"vpcNetworkSources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelBasicConditionVpcNetworkSource:AccessLevelBasicConditionVpcNetworkSource"},"description":"The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with \u003cspan pulumi-lang-nodejs=\"`ipSubnetworks`\" pulumi-lang-dotnet=\"`IpSubnetworks`\" pulumi-lang-go=\"`ipSubnetworks`\" pulumi-lang-python=\"`ip_subnetworks`\" pulumi-lang-yaml=\"`ipSubnetworks`\" pulumi-lang-java=\"`ipSubnetworks`\"\u003e`ip_subnetworks`\u003c/span\u003e.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/AccessLevelBasicConditionDevicePolicy:AccessLevelBasicConditionDevicePolicy":{"properties":{"allowedDeviceManagementLevels":{"type":"array","items":{"type":"string"},"description":"A list of allowed device management levels.\nAn empty list allows all management levels.\nEach value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.\n"},"allowedEncryptionStatuses":{"type":"array","items":{"type":"string"},"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses.\nEach value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.\n"},"osConstraints":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelBasicConditionDevicePolicyOsConstraint:AccessLevelBasicConditionDevicePolicyOsConstraint"},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.\nStructure is documented below.\n"},"requireAdminApproval":{"type":"boolean","description":"Whether the device needs to be approved by the customer admin.\n"},"requireCorpOwned":{"type":"boolean","description":"Whether the device needs to be corp owned.\n"},"requireScreenLock":{"type":"boolean","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.\n"}},"type":"object"},"gcp:accesscontextmanager/AccessLevelBasicConditionDevicePolicyOsConstraint:AccessLevelBasicConditionDevicePolicyOsConstraint":{"properties":{"minimumVersion":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".\n"},"osType":{"type":"string","description":"The operating system type of the device.\nPossible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.\n"},"requireVerifiedChromeOs":{"type":"boolean","description":"If you specify DESKTOP_CHROME_OS for osType, you can optionally include requireVerifiedChromeOs to require Chrome Verified Access.\n"}},"type":"object","required":["osType"]},"gcp:accesscontextmanager/AccessLevelBasicConditionVpcNetworkSource:AccessLevelBasicConditionVpcNetworkSource":{"properties":{"vpcSubnetwork":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork:AccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork","description":"Sub networks within a VPC network.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/AccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork:AccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork":{"properties":{"network":{"type":"string","description":"Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.\n"},"vpcIpSubnetworks":{"type":"array","items":{"type":"string"},"description":"A list of CIDR block IP subnetwork specification. Must be IPv4.\n"}},"type":"object","required":["network"]},"gcp:accesscontextmanager/AccessLevelConditionDevicePolicy:AccessLevelConditionDevicePolicy":{"properties":{"allowedDeviceManagementLevels":{"type":"array","items":{"type":"string"},"description":"A list of allowed device management levels.\nAn empty list allows all management levels.\nEach value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.\n","willReplaceOnChanges":true},"allowedEncryptionStatuses":{"type":"array","items":{"type":"string"},"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses.\nEach value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.\n","willReplaceOnChanges":true},"osConstraints":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelConditionDevicePolicyOsConstraint:AccessLevelConditionDevicePolicyOsConstraint"},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.\nStructure is documented below.\n","willReplaceOnChanges":true},"requireAdminApproval":{"type":"boolean","description":"Whether the device needs to be approved by the customer admin.\n","willReplaceOnChanges":true},"requireCorpOwned":{"type":"boolean","description":"Whether the device needs to be corp owned.\n","willReplaceOnChanges":true},"requireScreenLock":{"type":"boolean","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/AccessLevelConditionDevicePolicyOsConstraint:AccessLevelConditionDevicePolicyOsConstraint":{"properties":{"minimumVersion":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".\n","willReplaceOnChanges":true},"osType":{"type":"string","description":"The operating system type of the device.\nPossible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.\n","willReplaceOnChanges":true}},"type":"object","required":["osType"]},"gcp:accesscontextmanager/AccessLevelConditionVpcNetworkSource:AccessLevelConditionVpcNetworkSource":{"properties":{"vpcSubnetwork":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelConditionVpcNetworkSourceVpcSubnetwork:AccessLevelConditionVpcNetworkSourceVpcSubnetwork","description":"Sub networks within a VPC network.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/AccessLevelConditionVpcNetworkSourceVpcSubnetwork:AccessLevelConditionVpcNetworkSourceVpcSubnetwork":{"properties":{"network":{"type":"string","description":"Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.\n","willReplaceOnChanges":true},"vpcIpSubnetworks":{"type":"array","items":{"type":"string"},"description":"CIDR block IP subnetwork specification. Must be IPv4.\n","willReplaceOnChanges":true}},"type":"object","required":["network"]},"gcp:accesscontextmanager/AccessLevelCustom:AccessLevelCustom":{"properties":{"expr":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelCustomExpr:AccessLevelCustomExpr","description":"Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.\nThis page details the objects and attributes that are used to the build the CEL expressions for\ncustom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.\nStructure is documented below.\n"}},"type":"object","required":["expr"]},"gcp:accesscontextmanager/AccessLevelCustomExpr:AccessLevelCustomExpr":{"properties":{"description":{"type":"string","description":"Description of the expression\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\n"}},"type":"object","required":["expression"]},"gcp:accesscontextmanager/AccessLevelsAccessLevel:AccessLevelsAccessLevel":{"properties":{"basic":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelBasic:AccessLevelsAccessLevelBasic","description":"A set of predefined conditions for the access level and a combining function.\nStructure is documented below.\n"},"custom":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelCustom:AccessLevelsAccessLevelCustom","description":"Custom access level conditions are set using the Cloud Common Expression Language to represent the necessary conditions for the level to apply to a request.\nSee CEL spec at: https://github.com/google/cel-spec.\nStructure is documented below.\n"},"description":{"type":"string","description":"Description of the AccessLevel and its use. Does not affect behavior.\n"},"name":{"type":"string","description":"Resource name for the Access Level. The\u003cspan pulumi-lang-nodejs=\" shortName \" pulumi-lang-dotnet=\" ShortName \" pulumi-lang-go=\" shortName \" pulumi-lang-python=\" short_name \" pulumi-lang-yaml=\" shortName \" pulumi-lang-java=\" shortName \"\u003e short_name \u003c/span\u003ecomponent must begin\nwith a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}\n","willReplaceOnChanges":true},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.\n"}},"type":"object","required":["name","title"]},"gcp:accesscontextmanager/AccessLevelsAccessLevelBasic:AccessLevelsAccessLevelBasic":{"properties":{"combiningFunction":{"type":"string","description":"How the conditions list should be combined to determine if a request\nis granted this AccessLevel. If AND is used, each Condition in\nconditions must be satisfied for the AccessLevel to be applied. If\nOR is used, at least one Condition in conditions must be satisfied\nfor the AccessLevel to be applied.\nDefault value is `AND`.\nPossible values are: `AND`, `OR`.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelBasicCondition:AccessLevelsAccessLevelBasicCondition"},"description":"A set of requirements for the AccessLevel to be granted.\nStructure is documented below.\n"}},"type":"object","required":["conditions"]},"gcp:accesscontextmanager/AccessLevelsAccessLevelBasicCondition:AccessLevelsAccessLevelBasicCondition":{"properties":{"devicePolicy":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionDevicePolicy:AccessLevelsAccessLevelBasicConditionDevicePolicy","description":"Device specific restrictions, all restrictions must hold for\nthe Condition to be true. If not specified, all devices are\nallowed.\nStructure is documented below.\n"},"ipSubnetworks":{"type":"array","items":{"type":"string"},"description":"A list of CIDR block IP subnetwork specification. May be IPv4\nor IPv6.\nNote that for a CIDR IP address block, the specified IP address\nportion must be properly truncated (i.e. all the host bits must\nbe zero) or the input is considered malformed. For example,\n\"192.0.2.0/24\" is accepted but \"192.0.2.1/24\" is not. Similarly,\nfor IPv6, \"2001:db8::/32\" is accepted whereas \"2001:db8::1/32\"\nis not. The originating IP of a request must be in one of the\nlisted subnets in order for this Condition to be true.\nIf empty, all IP addresses are allowed.\n"},"members":{"type":"array","items":{"type":"string"},"description":"An allowed list of members (users, service accounts).\nUsing groups is not supported yet.\nThe signed-in user originating the request must be a part of one\nof the provided members. If not specified, a request may come\nfrom any user (logged in/not logged in, not present in any\ngroups, etc.).\nFormats: `user:{emailid}`, `serviceAccount:{emailid}`\n"},"negate":{"type":"boolean","description":"Whether to negate the Condition. If true, the Condition becomes\na NAND over its non-empty fields, each field must be false for\nthe Condition overall to be satisfied. Defaults to false.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The request must originate from one of the provided\ncountries/regions.\nFormat: A valid ISO 3166-1 alpha-2 code.\n"},"requiredAccessLevels":{"type":"array","items":{"type":"string"},"description":"A list of other access levels defined in the same Policy,\nreferenced by resource name. Referencing an AccessLevel which\ndoes not exist is an error. All access levels listed must be\ngranted for the Condition to be true.\nFormat: accessPolicies/{policy_id}/accessLevels/{short_name}\n"},"vpcNetworkSources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionVpcNetworkSource:AccessLevelsAccessLevelBasicConditionVpcNetworkSource"},"description":"The request must originate from one of the provided VPC networks in Google Cloud. Cannot specify this field together with \u003cspan pulumi-lang-nodejs=\"`ipSubnetworks`\" pulumi-lang-dotnet=\"`IpSubnetworks`\" pulumi-lang-go=\"`ipSubnetworks`\" pulumi-lang-python=\"`ip_subnetworks`\" pulumi-lang-yaml=\"`ipSubnetworks`\" pulumi-lang-java=\"`ipSubnetworks`\"\u003e`ip_subnetworks`\u003c/span\u003e.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionDevicePolicy:AccessLevelsAccessLevelBasicConditionDevicePolicy":{"properties":{"allowedDeviceManagementLevels":{"type":"array","items":{"type":"string"},"description":"A list of allowed device management levels.\nAn empty list allows all management levels.\nEach value may be one of: `MANAGEMENT_UNSPECIFIED`, `NONE`, `BASIC`, `COMPLETE`.\n"},"allowedEncryptionStatuses":{"type":"array","items":{"type":"string"},"description":"A list of allowed encryptions statuses.\nAn empty list allows all statuses.\nEach value may be one of: `ENCRYPTION_UNSPECIFIED`, `ENCRYPTION_UNSUPPORTED`, `UNENCRYPTED`, `ENCRYPTED`.\n"},"osConstraints":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraint:AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraint"},"description":"A list of allowed OS versions.\nAn empty list allows all types and all versions.\nStructure is documented below.\n"},"requireAdminApproval":{"type":"boolean","description":"Whether the device needs to be approved by the customer admin.\n"},"requireCorpOwned":{"type":"boolean","description":"Whether the device needs to be corp owned.\n"},"requireScreenLock":{"type":"boolean","description":"Whether or not screenlock is required for the DevicePolicy\nto be true. Defaults to false.\n"}},"type":"object"},"gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraint:AccessLevelsAccessLevelBasicConditionDevicePolicyOsConstraint":{"properties":{"minimumVersion":{"type":"string","description":"The minimum allowed OS version. If not set, any version\nof this OS satisfies the constraint.\nFormat: \"major.minor.patch\" such as \"10.5.301\", \"9.2.1\".\n"},"osType":{"type":"string","description":"The operating system type of the device.\nPossible values are: `OS_UNSPECIFIED`, `DESKTOP_MAC`, `DESKTOP_WINDOWS`, `DESKTOP_LINUX`, `DESKTOP_CHROME_OS`, `ANDROID`, `IOS`.\n"}},"type":"object","required":["osType"]},"gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionVpcNetworkSource:AccessLevelsAccessLevelBasicConditionVpcNetworkSource":{"properties":{"vpcSubnetwork":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork:AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork","description":"Sub networks within a VPC network.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork:AccessLevelsAccessLevelBasicConditionVpcNetworkSourceVpcSubnetwork":{"properties":{"network":{"type":"string","description":"Required. Network name to be allowed by this Access Level. Networks of foreign organizations requires `compute.network.get` permission to be granted to caller.\n"},"vpcIpSubnetworks":{"type":"array","items":{"type":"string"},"description":"CIDR block IP subnetwork specification. Must be IPv4.\n"}},"type":"object","required":["network"]},"gcp:accesscontextmanager/AccessLevelsAccessLevelCustom:AccessLevelsAccessLevelCustom":{"properties":{"expr":{"$ref":"#/types/gcp:accesscontextmanager/AccessLevelsAccessLevelCustomExpr:AccessLevelsAccessLevelCustomExpr","description":"Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language.\nThis page details the objects and attributes that are used to the build the CEL expressions for\ncustom access levels - https://cloud.google.com/access-context-manager/docs/custom-access-level-spec.\nStructure is documented below.\n"}},"type":"object","required":["expr"]},"gcp:accesscontextmanager/AccessLevelsAccessLevelCustomExpr:AccessLevelsAccessLevelCustomExpr":{"properties":{"description":{"type":"string","description":"Description of the expression\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\n"}},"type":"object","required":["expression"]},"gcp:accesscontextmanager/AccessPolicyIamBindingCondition:AccessPolicyIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:accesscontextmanager/AccessPolicyIamMemberCondition:AccessPolicyIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSetting:GcpUserAccessBindingScopedAccessSetting":{"properties":{"activeSettings":{"$ref":"#/types/gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingActiveSettings:GcpUserAccessBindingScopedAccessSettingActiveSettings","description":"Optional. Access settings for this scoped access settings. This field may be empty if dryRunSettings is set.\nStructure is documented below.\n"},"dryRunSettings":{"$ref":"#/types/gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingDryRunSettings:GcpUserAccessBindingScopedAccessSettingDryRunSettings","description":"Optional. Dry-run access settings for this scoped access settings. This field may be empty if activeSettings is set. Cannot contain session settings.\nStructure is documented below.\n"},"scope":{"$ref":"#/types/gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingScope:GcpUserAccessBindingScopedAccessSettingScope","description":"Optional. Application, etc. to which the access settings will be applied to. Implicitly, this is the scoped access settings key; as such, it must be unique and non-empty.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingActiveSettings:GcpUserAccessBindingScopedAccessSettingActiveSettings":{"properties":{"accessLevels":{"type":"array","items":{"type":"string"},"description":"Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"\n"},"sessionSettings":{"$ref":"#/types/gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingActiveSettingsSessionSettings:GcpUserAccessBindingScopedAccessSettingActiveSettingsSessionSettings","description":"Optional. Session settings applied to user access on a given AccessScope.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingActiveSettingsSessionSettings:GcpUserAccessBindingScopedAccessSettingActiveSettingsSessionSettings":{"properties":{"maxInactivity":{"type":"string","description":"Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.\n"},"sessionLength":{"type":"string","description":"Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC\u003cspan pulumi-lang-nodejs=\" maxAge \" pulumi-lang-dotnet=\" MaxAge \" pulumi-lang-go=\" maxAge \" pulumi-lang-python=\" max_age \" pulumi-lang-yaml=\" maxAge \" pulumi-lang-java=\" maxAge \"\u003e max_age \u003c/span\u003eparam.\n"},"sessionLengthEnabled":{"type":"boolean","description":"Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.\n"},"sessionReauthMethod":{"type":"string","description":"Optional. The session challenges proposed to users when the Google Cloud session length is up.\nPossible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.\n"},"useOidcMaxAge":{"type":"boolean","description":"Optional. Only useful for OIDC apps. When false, the OIDC\u003cspan pulumi-lang-nodejs=\" maxAge \" pulumi-lang-dotnet=\" MaxAge \" pulumi-lang-go=\" maxAge \" pulumi-lang-python=\" max_age \" pulumi-lang-yaml=\" maxAge \" pulumi-lang-java=\" maxAge \"\u003e max_age \u003c/span\u003eparam, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the\u003cspan pulumi-lang-nodejs=\" maxAge \" pulumi-lang-dotnet=\" MaxAge \" pulumi-lang-go=\" maxAge \" pulumi-lang-python=\" max_age \" pulumi-lang-yaml=\" maxAge \" pulumi-lang-java=\" maxAge \"\u003e max_age \u003c/span\u003eOIDC param.\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingDryRunSettings:GcpUserAccessBindingScopedAccessSettingDryRunSettings":{"properties":{"accessLevels":{"type":"string","description":"Optional. Access level that a user must have to be granted access. Only one access level is supported, not multiple. This repeated field must have exactly one element. Example: \"accessPolicies/9522/accessLevels/device_trusted\"\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingScope:GcpUserAccessBindingScopedAccessSettingScope":{"properties":{"clientScope":{"$ref":"#/types/gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingScopeClientScope:GcpUserAccessBindingScopedAccessSettingScopeClientScope","description":"Optional. Client scope for this access scope.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingScopeClientScope:GcpUserAccessBindingScopedAccessSettingScopeClientScope":{"properties":{"restrictedClientApplication":{"$ref":"#/types/gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingScopeClientScopeRestrictedClientApplication:GcpUserAccessBindingScopedAccessSettingScopeClientScopeRestrictedClientApplication","description":"Optional. The application that is subject to this binding's scope. Only one of clientId or name should be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingScopedAccessSettingScopeClientScopeRestrictedClientApplication:GcpUserAccessBindingScopedAccessSettingScopeClientScopeRestrictedClientApplication":{"properties":{"clientId":{"type":"string","description":"The OAuth client ID of the application.\n"},"name":{"type":"string","description":"The name of the application. Example: \"Cloud Console\"\n"}},"type":"object"},"gcp:accesscontextmanager/GcpUserAccessBindingSessionSettings:GcpUserAccessBindingSessionSettings":{"properties":{"maxInactivity":{"type":"string","description":"Optional. How long a user is allowed to take between actions before a new access token must be issued. Only set for Google Cloud apps.\n"},"sessionLength":{"type":"string","description":"Optional. The session length. Setting this field to zero is equal to disabling session. Also can set infinite session by flipping the enabled bit to false below. If useOidcMaxAge is true, for OIDC apps, the session length will be the minimum of this field and OIDC\u003cspan pulumi-lang-nodejs=\" maxAge \" pulumi-lang-dotnet=\" MaxAge \" pulumi-lang-go=\" maxAge \" pulumi-lang-python=\" max_age \" pulumi-lang-yaml=\" maxAge \" pulumi-lang-java=\" maxAge \"\u003e max_age \u003c/span\u003eparam.\n"},"sessionLengthEnabled":{"type":"boolean","description":"Optional. This field enables or disables Google Cloud session length. When false, all fields set above will be disregarded and the session length is basically infinite.\n"},"sessionReauthMethod":{"type":"string","description":"Optional. The session challenges proposed to users when the Google Cloud session length is up.\nPossible values are: `LOGIN`, `SECURITY_KEY`, `PASSWORD`.\n"},"useOidcMaxAge":{"type":"boolean","description":"Optional. Only useful for OIDC apps. When false, the OIDC\u003cspan pulumi-lang-nodejs=\" maxAge \" pulumi-lang-dotnet=\" MaxAge \" pulumi-lang-go=\" maxAge \" pulumi-lang-python=\" max_age \" pulumi-lang-yaml=\" maxAge \" pulumi-lang-java=\" maxAge \"\u003e max_age \u003c/span\u003eparam, if passed in the authentication request will be ignored. When true, the re-auth period will be the minimum of the sessionLength field and the\u003cspan pulumi-lang-nodejs=\" maxAge \" pulumi-lang-dotnet=\" MaxAge \" pulumi-lang-go=\" maxAge \" pulumi-lang-python=\" max_age \" pulumi-lang-yaml=\" maxAge \" pulumi-lang-java=\" maxAge \"\u003e max_age \u003c/span\u003eOIDC param.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressFrom:ServicePerimeterDryRunEgressPolicyEgressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"Identities can be an individual user, service account, Google group,\nor third-party identity. For third-party identity, only single identities\nare supported and other identity types are not supported.The v1 identities\nthat have the prefix user, group and serviceAccount in\nhttps://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.\n","willReplaceOnChanges":true},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will\nbe allowed access.\nPossible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n","willReplaceOnChanges":true},"sourceRestriction":{"type":"string","description":"Whether to enforce traffic restrictions based on \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field. If the \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.\nPossible values are: `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressFromSource:ServicePerimeterDryRunEgressPolicyEgressFromSource"},"description":"Sources that this EgressPolicy authorizes access from.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressFromSource:ServicePerimeterDryRunEgressPolicyEgressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressTo:ServicePerimeterDryRunEgressPolicyEgressTo":{"properties":{"externalResources":{"type":"array","items":{"type":"string"},"description":"A list of external resources that are allowed to be accessed. A request\nmatches if it contains an external resource in this list (Example:\ns3://bucket/path). Currently '*' is not allowed.\n","willReplaceOnChanges":true},"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressToOperation:ServicePerimeterDryRunEgressPolicyEgressToOperation"},"description":"A list of `ApiOperations` that this egress rule applies to. A request matches\nif it contains an operation/service in this list.\nStructure is documented below.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, that match this to stanza. A request matches\nif it contains a resource in this list. If * is specified for resources,\nthen this `EgressTo` rule will authorize access to all resources outside\nthe perimeter.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `EgressFrom`\nare allowed to perform.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressToOperation:ServicePerimeterDryRunEgressPolicyEgressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector:ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector:ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressFrom:ServicePerimeterDryRunIngressPolicyIngressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"Identities can be an individual user, service account, Google group,\nor third-party identity. For third-party identity, only single identities\nare supported and other identity types are not supported.The v1 identities\nthat have the prefix user, group and serviceAccount in\nhttps://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.\n","willReplaceOnChanges":true},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will be\nallowed access.\nPossible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressFromSource:ServicePerimeterDryRunIngressPolicyIngressFromSource"},"description":"Sources that this `IngressPolicy` authorizes access from.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressFromSource:ServicePerimeterDryRunIngressPolicyIngressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An `AccessLevel` resource name that allow resources within the\n`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed\nmust be in the same policy as this `ServicePerimeter`. Referencing a nonexistent\n`AccessLevel` will cause an error. If no `AccessLevel` names are listed,\nresources within the perimeter can only be accessed via Google Cloud calls\nwith request origins within the perimeter.\nExample `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`\nIf * is specified, then all IngressSources will be allowed.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter.\nRequests from these resources will be allowed to access perimeter data.\nCurrently only projects are allowed. Format `projects/{project_number}`\nThe project may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the case\nof allowing all Google Cloud resources only is not supported.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressTo:ServicePerimeterDryRunIngressPolicyIngressTo":{"properties":{"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressToOperation:ServicePerimeterDryRunIngressPolicyIngressToOperation"},"description":"A list of `ApiOperations` the sources specified in corresponding `IngressFrom`\nare allowed to perform in this `ServicePerimeter`.\nStructure is documented below.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, protected by this `ServicePerimeter`\nthat are allowed to be accessed by sources defined in the\ncorresponding `IngressFrom`. A request matches if it contains\na resource in this list. If `*` is specified for resources,\nthen this `IngressTo` rule will authorize access to all\nresources inside the perimeter, provided that the request\nalso matches the \u003cspan pulumi-lang-nodejs=\"`operations`\" pulumi-lang-dotnet=\"`Operations`\" pulumi-lang-go=\"`operations`\" pulumi-lang-python=\"`operations`\" pulumi-lang-yaml=\"`operations`\" pulumi-lang-java=\"`operations`\"\u003e`operations`\u003c/span\u003e field.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `IngressFrom`\nare allowed to perform.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressToOperation:ServicePerimeterDryRunIngressPolicyIngressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector:ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong to\nthe service specified by serviceName field. A single `MethodSelector` entry\nwith `*` specified for the method field will allow all methods AND\npermissions for the service specified in `serviceName`.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`\nfield set to `*` will allow all methods AND permissions for all services.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector:ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding\nserviceName in `ApiOperation`. If `*` used as value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e, then\nALL methods and permissions are allowed.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressFrom:ServicePerimeterEgressPolicyEgressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"Identities can be an individual user, service account, Google group,\nor third-party identity. For third-party identity, only single identities\nare supported and other identity types are not supported.The v1 identities\nthat have the prefix user, group and serviceAccount in\nhttps://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.\n","willReplaceOnChanges":true},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will\nbe allowed access.\nPossible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n","willReplaceOnChanges":true},"sourceRestriction":{"type":"string","description":"Whether to enforce traffic restrictions based on \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field. If the \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.\nPossible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressFromSource:ServicePerimeterEgressPolicyEgressFromSource"},"description":"Sources that this EgressPolicy authorizes access from.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressFromSource:ServicePerimeterEgressPolicyEgressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressTo:ServicePerimeterEgressPolicyEgressTo":{"properties":{"externalResources":{"type":"array","items":{"type":"string"},"description":"A list of external resources that are allowed to be accessed. A request\nmatches if it contains an external resource in this list (Example:\ns3://bucket/path). Currently '*' is not allowed.\n","willReplaceOnChanges":true},"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressToOperation:ServicePerimeterEgressPolicyEgressToOperation"},"description":"A list of `ApiOperations` that this egress rule applies to. A request matches\nif it contains an operation/service in this list.\nStructure is documented below.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, that match this to stanza. A request matches\nif it contains a resource in this list. If * is specified for resources,\nthen this `EgressTo` rule will authorize access to all resources outside\nthe perimeter.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `EgressFrom`\nare allowed to perform.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressToOperation:ServicePerimeterEgressPolicyEgressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressToOperationMethodSelector:ServicePerimeterEgressPolicyEgressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterEgressPolicyEgressToOperationMethodSelector:ServicePerimeterEgressPolicyEgressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressFrom:ServicePerimeterIngressPolicyIngressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"Identities can be an individual user, service account, Google group,\nor third-party identity. For third-party identity, only single identities\nare supported and other identity types are not supported.The v1 identities\nthat have the prefix user, group and serviceAccount in\nhttps://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.\n","willReplaceOnChanges":true},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will be\nallowed access.\nPossible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressFromSource:ServicePerimeterIngressPolicyIngressFromSource"},"description":"Sources that this `IngressPolicy` authorizes access from.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressFromSource:ServicePerimeterIngressPolicyIngressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An `AccessLevel` resource name that allow resources within the\n`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed\nmust be in the same policy as this `ServicePerimeter`. Referencing a nonexistent\n`AccessLevel` will cause an error. If no `AccessLevel` names are listed,\nresources within the perimeter can only be accessed via Google Cloud calls\nwith request origins within the perimeter.\nExample `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`\nIf * is specified, then all IngressSources will be allowed.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to ingress the perimeter.\nRequests from these resources will be allowed to access perimeter data.\nCurrently only projects and VPCs are allowed.\nProject format: `projects/{projectNumber}`\nVPC network format:\n`//compute.googleapis.com/projects/{PROJECT_ID}/global/networks/{NAME}`.\nThe project may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the case\nof allowing all Google Cloud resources only is not supported.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressTo:ServicePerimeterIngressPolicyIngressTo":{"properties":{"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressToOperation:ServicePerimeterIngressPolicyIngressToOperation"},"description":"A list of `ApiOperations` the sources specified in corresponding `IngressFrom`\nare allowed to perform in this `ServicePerimeter`.\nStructure is documented below.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, protected by this `ServicePerimeter`\nthat are allowed to be accessed by sources defined in the\ncorresponding `IngressFrom`. A request matches if it contains\na resource in this list. If `*` is specified for resources,\nthen this `IngressTo` rule will authorize access to all\nresources inside the perimeter, provided that the request\nalso matches the \u003cspan pulumi-lang-nodejs=\"`operations`\" pulumi-lang-dotnet=\"`Operations`\" pulumi-lang-go=\"`operations`\" pulumi-lang-python=\"`operations`\" pulumi-lang-yaml=\"`operations`\" pulumi-lang-java=\"`operations`\"\u003e`operations`\u003c/span\u003e field.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `IngressFrom`\nare allowed to perform.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressToOperation:ServicePerimeterIngressPolicyIngressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressToOperationMethodSelector:ServicePerimeterIngressPolicyIngressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong to\nthe service specified by serviceName field. A single `MethodSelector` entry\nwith `*` specified for the method field will allow all methods AND\npermissions for the service specified in `serviceName`.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`\nfield set to `*` will allow all methods AND permissions for all services.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterIngressPolicyIngressToOperationMethodSelector:ServicePerimeterIngressPolicyIngressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for method should be a valid method name for the corresponding\nserviceName in `ApiOperation`. If `*` used as value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e, then\nALL methods and permissions are allowed.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpec:ServicePerimeterSpec":{"properties":{"accessLevels":{"type":"array","items":{"type":"string"},"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}\n"},"egressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicy:ServicePerimeterSpecEgressPolicy"},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may\nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for\na perimeter bridge.\nStructure is documented below.\n"},"ingressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicy:ServicePerimeterSpecIngressPolicy"},"description":"List of `IngressPolicies` to apply to the perimeter. A perimeter may\nhave multiple `IngressPolicies`, each of which is evaluated\nseparately. Access is granted if any `Ingress Policy` grants it.\nMust be empty for a perimeter bridge.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}\n"},"restrictedServices":{"type":"array","items":{"type":"string"},"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n`storage.googleapis.com` is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.\n"},"vpcAccessibleServices":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecVpcAccessibleServices:ServicePerimeterSpecVpcAccessibleServices","description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicy:ServicePerimeterSpecEgressPolicy":{"properties":{"egressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressFrom:ServicePerimeterSpecEgressPolicyEgressFrom","description":"Defines conditions on the source of a request causing this `EgressPolicy` to apply.\nStructure is documented below.\n"},"egressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressTo:ServicePerimeterSpecEgressPolicyEgressTo","description":"Defines the conditions on the `ApiOperation` and destination resources that\ncause this `EgressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressFrom:ServicePerimeterSpecEgressPolicyEgressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"A list of identities that are allowed access through this `EgressPolicy`.\nShould be in the format of email address. The email address should\nrepresent individual user or service account only.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will\nbe allowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sourceRestriction":{"type":"string","description":"Whether to enforce traffic restrictions based on \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field. If the \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.\nPossible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressFromSource:ServicePerimeterSpecEgressPolicyEgressFromSource"},"description":"Sources that this EgressPolicy authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressFromSource:ServicePerimeterSpecEgressPolicyEgressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressTo:ServicePerimeterSpecEgressPolicyEgressTo":{"properties":{"externalResources":{"type":"array","items":{"type":"string"},"description":"A list of external resources that are allowed to be accessed. A request\nmatches if it contains an external resource in this list (Example:\ns3://bucket/path). Currently '*' is not allowed.\n"},"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressToOperation:ServicePerimeterSpecEgressPolicyEgressToOperation"},"description":"A list of `ApiOperations` that this egress rule applies to. A request matches\nif it contains an operation/service in this list.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, that match this to stanza. A request matches\nif it contains a resource in this list. If * is specified for resources,\nthen this `EgressTo` rule will authorize access to all resources outside\nthe perimeter.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `EgressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressToOperation:ServicePerimeterSpecEgressPolicyEgressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector:ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector:ServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicy:ServicePerimeterSpecIngressPolicy":{"properties":{"ingressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressFrom:ServicePerimeterSpecIngressPolicyIngressFrom","description":"Defines the conditions on the source of a request causing this `IngressPolicy`\nto apply.\nStructure is documented below.\n"},"ingressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressTo:ServicePerimeterSpecIngressPolicyIngressTo","description":"Defines the conditions on the `ApiOperation` and request destination that cause\nthis `IngressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressFrom:ServicePerimeterSpecIngressPolicyIngressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent\nindividual user or service account only.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will be\nallowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressFromSource:ServicePerimeterSpecIngressPolicyIngressFromSource"},"description":"Sources that this `IngressPolicy` authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressFromSource:ServicePerimeterSpecIngressPolicyIngressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressTo:ServicePerimeterSpecIngressPolicyIngressTo":{"properties":{"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressToOperation:ServicePerimeterSpecIngressPolicyIngressToOperation"},"description":"A list of `ApiOperations` the sources specified in corresponding `IngressFrom`\nare allowed to perform in this `ServicePerimeter`.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, protected by this `ServicePerimeter`\nthat are allowed to be accessed by sources defined in the\ncorresponding `IngressFrom`. A request matches if it contains\na resource in this list. If `*` is specified for resources,\nthen this `IngressTo` rule will authorize access to all\nresources inside the perimeter, provided that the request\nalso matches the \u003cspan pulumi-lang-nodejs=\"`operations`\" pulumi-lang-dotnet=\"`Operations`\" pulumi-lang-go=\"`operations`\" pulumi-lang-python=\"`operations`\" pulumi-lang-yaml=\"`operations`\" pulumi-lang-java=\"`operations`\"\u003e`operations`\u003c/span\u003e field.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `IngressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressToOperation:ServicePerimeterSpecIngressPolicyIngressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector:ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector:ServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterSpecVpcAccessibleServices:ServicePerimeterSpecVpcAccessibleServices":{"properties":{"allowedServices":{"type":"array","items":{"type":"string"},"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless `enableRestriction` is True.\n"},"enableRestriction":{"type":"boolean","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatus:ServicePerimeterStatus":{"properties":{"accessLevels":{"type":"array","items":{"type":"string"},"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}\n"},"egressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicy:ServicePerimeterStatusEgressPolicy"},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may\nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for\na perimeter bridge.\nStructure is documented below.\n"},"ingressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicy:ServicePerimeterStatusIngressPolicy"},"description":"List of `IngressPolicies` to apply to the perimeter. A perimeter may\nhave multiple `IngressPolicies`, each of which is evaluated\nseparately. Access is granted if any `Ingress Policy` grants it.\nMust be empty for a perimeter bridge.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}\n"},"restrictedServices":{"type":"array","items":{"type":"string"},"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n`storage.googleapis.com` is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.\n"},"vpcAccessibleServices":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusVpcAccessibleServices:ServicePerimeterStatusVpcAccessibleServices","description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicy:ServicePerimeterStatusEgressPolicy":{"properties":{"egressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressFrom:ServicePerimeterStatusEgressPolicyEgressFrom","description":"Defines conditions on the source of a request causing this `EgressPolicy` to apply.\nStructure is documented below.\n"},"egressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressTo:ServicePerimeterStatusEgressPolicyEgressTo","description":"Defines the conditions on the `ApiOperation` and destination resources that\ncause this `EgressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressFrom:ServicePerimeterStatusEgressPolicyEgressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"A list of identities that are allowed access through this `EgressPolicy`.\nShould be in the format of email address. The email address should\nrepresent individual user or service account only.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will\nbe allowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sourceRestriction":{"type":"string","description":"Whether to enforce traffic restrictions based on \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field. If the \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.\nPossible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressFromSource:ServicePerimeterStatusEgressPolicyEgressFromSource"},"description":"Sources that this EgressPolicy authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressFromSource:ServicePerimeterStatusEgressPolicyEgressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressTo:ServicePerimeterStatusEgressPolicyEgressTo":{"properties":{"externalResources":{"type":"array","items":{"type":"string"},"description":"A list of external resources that are allowed to be accessed. A request\nmatches if it contains an external resource in this list (Example:\ns3://bucket/path). Currently '*' is not allowed.\n"},"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressToOperation:ServicePerimeterStatusEgressPolicyEgressToOperation"},"description":"A list of `ApiOperations` that this egress rule applies to. A request matches\nif it contains an operation/service in this list.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, that match this to stanza. A request matches\nif it contains a resource in this list. If * is specified for resources,\nthen this `EgressTo` rule will authorize access to all resources outside\nthe perimeter.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `EgressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressToOperation:ServicePerimeterStatusEgressPolicyEgressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector:ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector:ServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicy:ServicePerimeterStatusIngressPolicy":{"properties":{"ingressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressFrom:ServicePerimeterStatusIngressPolicyIngressFrom","description":"Defines the conditions on the source of a request causing this `IngressPolicy`\nto apply.\nStructure is documented below.\n"},"ingressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressTo:ServicePerimeterStatusIngressPolicyIngressTo","description":"Defines the conditions on the `ApiOperation` and request destination that cause\nthis `IngressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressFrom:ServicePerimeterStatusIngressPolicyIngressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent\nindividual user or service account only.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will be\nallowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressFromSource:ServicePerimeterStatusIngressPolicyIngressFromSource"},"description":"Sources that this `IngressPolicy` authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressFromSource:ServicePerimeterStatusIngressPolicyIngressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressTo:ServicePerimeterStatusIngressPolicyIngressTo":{"properties":{"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressToOperation:ServicePerimeterStatusIngressPolicyIngressToOperation"},"description":"A list of `ApiOperations` the sources specified in corresponding `IngressFrom`\nare allowed to perform in this `ServicePerimeter`.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, protected by this `ServicePerimeter`\nthat are allowed to be accessed by sources defined in the\ncorresponding `IngressFrom`. A request matches if it contains\na resource in this list. If `*` is specified for resources,\nthen this `IngressTo` rule will authorize access to all\nresources inside the perimeter, provided that the request\nalso matches the \u003cspan pulumi-lang-nodejs=\"`operations`\" pulumi-lang-dotnet=\"`Operations`\" pulumi-lang-go=\"`operations`\" pulumi-lang-python=\"`operations`\" pulumi-lang-yaml=\"`operations`\" pulumi-lang-java=\"`operations`\"\u003e`operations`\u003c/span\u003e field.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `IngressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressToOperation:ServicePerimeterStatusIngressPolicyIngressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector:ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector:ServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimeterStatusVpcAccessibleServices:ServicePerimeterStatusVpcAccessibleServices":{"properties":{"allowedServices":{"type":"array","items":{"type":"string"},"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless `enableRestriction` is True.\n"},"enableRestriction":{"type":"boolean","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeter:ServicePerimetersServicePerimeter":{"properties":{"createTime":{"type":"string","description":"(Output)\nTime the AccessPolicy was created in UTC.\n"},"description":{"type":"string","description":"Description of the ServicePerimeter and its use. Does not affect\nbehavior.\n"},"name":{"type":"string","description":"Resource name for the ServicePerimeter. The\u003cspan pulumi-lang-nodejs=\" shortName \" pulumi-lang-dotnet=\" ShortName \" pulumi-lang-go=\" shortName \" pulumi-lang-python=\" short_name \" pulumi-lang-yaml=\" shortName \" pulumi-lang-java=\" shortName \"\u003e short_name \u003c/span\u003ecomponent must\nbegin with a letter and only include alphanumeric and '_'.\nFormat: accessPolicies/{policy_id}/servicePerimeters/{short_name}\n","willReplaceOnChanges":true},"perimeterType":{"type":"string","description":"Specifies the type of the Perimeter. There are two types: regular and\nbridge. Regular Service Perimeter contains resources, access levels,\nand restricted services. Every resource can be in at most\nONE regular Service Perimeter.\nIn addition to being in a regular service perimeter, a resource can also\nbe in zero or more perimeter bridges. A perimeter bridge only contains\nresources. Cross project operations are permitted if all effected\nresources share some perimeter (whether bridge or regular). Perimeter\nBridge does not contain access levels or services: those are governed\nentirely by the regular perimeter that resource is in.\nPerimeter Bridges are typically useful when building more complex\ntopologies with many independent perimeters that need to share some data\nwith a common perimeter, but should not be able to share data among\nthemselves.\nDefault value is `PERIMETER_TYPE_REGULAR`.\nPossible values are: `PERIMETER_TYPE_REGULAR`, `PERIMETER_TYPE_BRIDGE`.\n","willReplaceOnChanges":true},"spec":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpec:ServicePerimetersServicePerimeterSpec","description":"Proposed (or dry run) ServicePerimeter configuration.\nThis configuration allows to specify and test ServicePerimeter configuration\nwithout enforcing actual access restrictions. Only allowed to be set when\nthe `useExplicitDryRunSpec` flag is set.\nStructure is documented below.\n"},"status":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatus:ServicePerimetersServicePerimeterStatus","description":"ServicePerimeter configuration. Specifies sets of resources,\nrestricted services and access levels that determine\nperimeter content and boundaries.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the Policy.\n"},"updateTime":{"type":"string","description":"(Output)\nTime the AccessPolicy was updated in UTC.\n"},"useExplicitDryRunSpec":{"type":"boolean","description":"Use explicit dry run spec flag. Ordinarily, a dry-run spec implicitly exists\nfor all Service Perimeters, and that spec is identical to the status for those\nService Perimeters. When this flag is set, it inhibits the generation of the\nimplicit spec, thereby allowing the user to explicitly provide a\nconfiguration (\"spec\") to use in a dry-run version of the Service Perimeter.\nThis allows the user to test changes to the enforced config (\"status\") without\nactually enforcing them. This testing is done through analyzing the differences\nbetween currently enforced and suggested restrictions. useExplicitDryRunSpec must\nbet set to True if any of the fields in the spec are set to non-default values.\n"}},"type":"object","required":["name","title"],"language":{"nodejs":{"requiredOutputs":["createTime","name","title","updateTime"]}}},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpec:ServicePerimetersServicePerimeterSpec":{"properties":{"accessLevels":{"type":"array","items":{"type":"string"},"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}\n"},"egressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicy:ServicePerimetersServicePerimeterSpecEgressPolicy"},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may\nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for\na perimeter bridge.\nStructure is documented below.\n"},"ingressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicy:ServicePerimetersServicePerimeterSpecIngressPolicy"},"description":"List of `IngressPolicies` to apply to the perimeter. A perimeter may\nhave multiple `IngressPolicies`, each of which is evaluated\nseparately. Access is granted if any `Ingress Policy` grants it.\nMust be empty for a perimeter bridge.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}\n"},"restrictedServices":{"type":"array","items":{"type":"string"},"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n`storage.googleapis.com` is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.\n"},"vpcAccessibleServices":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecVpcAccessibleServices:ServicePerimetersServicePerimeterSpecVpcAccessibleServices","description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicy:ServicePerimetersServicePerimeterSpecEgressPolicy":{"properties":{"egressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressFrom:ServicePerimetersServicePerimeterSpecEgressPolicyEgressFrom","description":"Defines conditions on the source of a request causing this `EgressPolicy` to apply.\nStructure is documented below.\n"},"egressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressTo:ServicePerimetersServicePerimeterSpecEgressPolicyEgressTo","description":"Defines the conditions on the `ApiOperation` and destination resources that\ncause this `EgressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressFrom:ServicePerimetersServicePerimeterSpecEgressPolicyEgressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"Identities can be an individual user, service account, Google group,\nor third-party identity. For third-party identity, only single identities\nare supported and other identity types are not supported.The v1 identities\nthat have the prefix user, group and serviceAccount in\nhttps://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will\nbe allowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sourceRestriction":{"type":"string","description":"Whether to enforce traffic restrictions based on \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field. If the \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.\nPossible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSource:ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSource"},"description":"Sources that this EgressPolicy authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSource:ServicePerimetersServicePerimeterSpecEgressPolicyEgressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressTo:ServicePerimetersServicePerimeterSpecEgressPolicyEgressTo":{"properties":{"externalResources":{"type":"array","items":{"type":"string"},"description":"A list of external resources that are allowed to be accessed. A request\nmatches if it contains an external resource in this list (Example:\ns3://bucket/path). Currently '*' is not allowed.\n"},"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperation:ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperation"},"description":"A list of `ApiOperations` that this egress rule applies to. A request matches\nif it contains an operation/service in this list.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, that match this to stanza. A request matches\nif it contains a resource in this list. If * is specified for resources,\nthen this `EgressTo` rule will authorize access to all resources outside\nthe perimeter.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `EgressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperation:ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector:ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector:ServicePerimetersServicePerimeterSpecEgressPolicyEgressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicy:ServicePerimetersServicePerimeterSpecIngressPolicy":{"properties":{"ingressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressFrom:ServicePerimetersServicePerimeterSpecIngressPolicyIngressFrom","description":"Defines the conditions on the source of a request causing this `IngressPolicy`\nto apply.\nStructure is documented below.\n"},"ingressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressTo:ServicePerimetersServicePerimeterSpecIngressPolicyIngressTo","description":"Defines the conditions on the `ApiOperation` and request destination that cause\nthis `IngressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressFrom:ServicePerimetersServicePerimeterSpecIngressPolicyIngressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent\nindividual user or service account only.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will be\nallowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSource:ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSource"},"description":"Sources that this `IngressPolicy` authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSource:ServicePerimetersServicePerimeterSpecIngressPolicyIngressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressTo:ServicePerimetersServicePerimeterSpecIngressPolicyIngressTo":{"properties":{"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperation:ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperation"},"description":"A list of `ApiOperations` the sources specified in corresponding `IngressFrom`\nare allowed to perform in this `ServicePerimeter`.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, protected by this `ServicePerimeter`\nthat are allowed to be accessed by sources defined in the\ncorresponding `IngressFrom`. A request matches if it contains\na resource in this list. If `*` is specified for resources,\nthen this `IngressTo` rule will authorize access to all\nresources inside the perimeter, provided that the request\nalso matches the \u003cspan pulumi-lang-nodejs=\"`operations`\" pulumi-lang-dotnet=\"`Operations`\" pulumi-lang-go=\"`operations`\" pulumi-lang-python=\"`operations`\" pulumi-lang-yaml=\"`operations`\" pulumi-lang-java=\"`operations`\"\u003e`operations`\u003c/span\u003e field.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `IngressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperation:ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector:ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector:ServicePerimetersServicePerimeterSpecIngressPolicyIngressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterSpecVpcAccessibleServices:ServicePerimetersServicePerimeterSpecVpcAccessibleServices":{"properties":{"allowedServices":{"type":"array","items":{"type":"string"},"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless `enableRestriction` is True.\n"},"enableRestriction":{"type":"boolean","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatus:ServicePerimetersServicePerimeterStatus":{"properties":{"accessLevels":{"type":"array","items":{"type":"string"},"description":"A list of AccessLevel resource names that allow resources within\nthe ServicePerimeter to be accessed from the internet.\nAccessLevels listed must be in the same policy as this\nServicePerimeter. Referencing a nonexistent AccessLevel is a\nsyntax error. If no AccessLevel names are listed, resources within\nthe perimeter can only be accessed via GCP calls with request\norigins within the perimeter. For Service Perimeter Bridge, must\nbe empty.\nFormat: accessPolicies/{policy_id}/accessLevels/{access_level_name}\n"},"egressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicy:ServicePerimetersServicePerimeterStatusEgressPolicy"},"description":"List of EgressPolicies to apply to the perimeter. A perimeter may\nhave multiple EgressPolicies, each of which is evaluated separately.\nAccess is granted if any EgressPolicy grants it. Must be empty for\na perimeter bridge.\nStructure is documented below.\n"},"ingressPolicies":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicy:ServicePerimetersServicePerimeterStatusIngressPolicy"},"description":"List of `IngressPolicies` to apply to the perimeter. A perimeter may\nhave multiple `IngressPolicies`, each of which is evaluated\nseparately. Access is granted if any `Ingress Policy` grants it.\nMust be empty for a perimeter bridge.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of GCP resources that are inside of the service perimeter.\nCurrently only projects are allowed.\nFormat: projects/{project_number}\n"},"restrictedServices":{"type":"array","items":{"type":"string"},"description":"GCP services that are subject to the Service Perimeter\nrestrictions. Must contain a list of services. For example, if\n`storage.googleapis.com` is specified, access to the storage\nbuckets inside the perimeter must meet the perimeter's access\nrestrictions.\n"},"vpcAccessibleServices":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusVpcAccessibleServices:ServicePerimetersServicePerimeterStatusVpcAccessibleServices","description":"Specifies how APIs are allowed to communicate within the Service\nPerimeter.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicy:ServicePerimetersServicePerimeterStatusEgressPolicy":{"properties":{"egressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressFrom:ServicePerimetersServicePerimeterStatusEgressPolicyEgressFrom","description":"Defines conditions on the source of a request causing this `EgressPolicy` to apply.\nStructure is documented below.\n"},"egressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressTo:ServicePerimetersServicePerimeterStatusEgressPolicyEgressTo","description":"Defines the conditions on the `ApiOperation` and destination resources that\ncause this `EgressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressFrom:ServicePerimetersServicePerimeterStatusEgressPolicyEgressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"Identities can be an individual user, service account, Google group,\nor third-party identity. For third-party identity, only single identities\nare supported and other identity types are not supported.The v1 identities\nthat have the prefix user, group and serviceAccount in\nhttps://cloud.google.com/iam/docs/principal-identifiers#v1 are supported.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access to outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will\nbe allowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sourceRestriction":{"type":"string","description":"Whether to enforce traffic restrictions based on \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field. If the \u003cspan pulumi-lang-nodejs=\"`sources`\" pulumi-lang-dotnet=\"`Sources`\" pulumi-lang-go=\"`sources`\" pulumi-lang-python=\"`sources`\" pulumi-lang-yaml=\"`sources`\" pulumi-lang-java=\"`sources`\"\u003e`sources`\u003c/span\u003e field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.\nPossible values are: `SOURCE_RESTRICTION_UNSPECIFIED`, `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSource:ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSource"},"description":"Sources that this EgressPolicy authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSource:ServicePerimetersServicePerimeterStatusEgressPolicyEgressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressTo:ServicePerimetersServicePerimeterStatusEgressPolicyEgressTo":{"properties":{"externalResources":{"type":"array","items":{"type":"string"},"description":"A list of external resources that are allowed to be accessed. A request\nmatches if it contains an external resource in this list (Example:\ns3://bucket/path). Currently '*' is not allowed.\n"},"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperation:ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperation"},"description":"A list of `ApiOperations` that this egress rule applies to. A request matches\nif it contains an operation/service in this list.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, that match this to stanza. A request matches\nif it contains a resource in this list. If * is specified for resources,\nthen this `EgressTo` rule will authorize access to all resources outside\nthe perimeter.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `EgressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperation:ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector:ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector:ServicePerimetersServicePerimeterStatusEgressPolicyEgressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicy:ServicePerimetersServicePerimeterStatusIngressPolicy":{"properties":{"ingressFrom":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressFrom:ServicePerimetersServicePerimeterStatusIngressPolicyIngressFrom","description":"Defines the conditions on the source of a request causing this `IngressPolicy`\nto apply.\nStructure is documented below.\n"},"ingressTo":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressTo:ServicePerimetersServicePerimeterStatusIngressPolicyIngressTo","description":"Defines the conditions on the `ApiOperation` and request destination that cause\nthis `IngressPolicy` to apply.\nStructure is documented below.\n"},"title":{"type":"string","description":"Human readable title. Must be unique within the perimeter. Does not affect behavior.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressFrom:ServicePerimetersServicePerimeterStatusIngressPolicyIngressFrom":{"properties":{"identities":{"type":"array","items":{"type":"string"},"description":"A list of identities that are allowed access through this ingress policy.\nShould be in the format of email address. The email address should represent\nindividual user or service account only.\n"},"identityType":{"type":"string","description":"Specifies the type of identities that are allowed access from outside the\nperimeter. If left unspecified, then members of \u003cspan pulumi-lang-nodejs=\"`identities`\" pulumi-lang-dotnet=\"`Identities`\" pulumi-lang-go=\"`identities`\" pulumi-lang-python=\"`identities`\" pulumi-lang-yaml=\"`identities`\" pulumi-lang-java=\"`identities`\"\u003e`identities`\u003c/span\u003e field will be\nallowed access.\nPossible values are: `IDENTITY_TYPE_UNSPECIFIED`, `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSource:ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSource"},"description":"Sources that this `IngressPolicy` authorizes access from.\nStructure is documented below.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSource:ServicePerimetersServicePerimeterStatusIngressPolicyIngressFromSource":{"properties":{"accessLevel":{"type":"string","description":"An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.\n"},"resource":{"type":"string","description":"A Google Cloud resource that is allowed to egress the perimeter.\nRequests from these resources are allowed to access data outside the perimeter.\nCurrently only projects are allowed. Project format: `projects/{project_number}`.\nThe resource may be in any Google Cloud organization, not just the\norganization that the perimeter is defined in. `*` is not allowed, the\ncase of allowing all Google Cloud resources only is not supported.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressTo:ServicePerimetersServicePerimeterStatusIngressPolicyIngressTo":{"properties":{"operations":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperation:ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperation"},"description":"A list of `ApiOperations` the sources specified in corresponding `IngressFrom`\nare allowed to perform in this `ServicePerimeter`.\nStructure is documented below.\n"},"resources":{"type":"array","items":{"type":"string"},"description":"A list of resources, currently only projects in the form\n`projects/\u003cprojectnumber\u003e`, protected by this `ServicePerimeter`\nthat are allowed to be accessed by sources defined in the\ncorresponding `IngressFrom`. A request matches if it contains\na resource in this list. If `*` is specified for resources,\nthen this `IngressTo` rule will authorize access to all\nresources inside the perimeter, provided that the request\nalso matches the \u003cspan pulumi-lang-nodejs=\"`operations`\" pulumi-lang-dotnet=\"`Operations`\" pulumi-lang-go=\"`operations`\" pulumi-lang-python=\"`operations`\" pulumi-lang-yaml=\"`operations`\" pulumi-lang-java=\"`operations`\"\u003e`operations`\u003c/span\u003e field.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of IAM roles that represent the set of operations that the sources\nspecified in the corresponding `IngressFrom`\nare allowed to perform.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperation:ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperation":{"properties":{"methodSelectors":{"type":"array","items":{"$ref":"#/types/gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector:ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector"},"description":"API methods or permissions to allow. Method or permission must belong\nto the service specified by `serviceName` field. A single MethodSelector\nentry with `*` specified for the \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e field will allow all methods\nAND permissions for the service specified in `serviceName`.\nStructure is documented below.\n"},"serviceName":{"type":"string","description":"The name of the API whose methods or permissions the `IngressPolicy` or\n`EgressPolicy` want to allow. A single `ApiOperation` with serviceName\nfield set to `*` will allow all methods AND permissions for all services.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector:ServicePerimetersServicePerimeterStatusIngressPolicyIngressToOperationMethodSelector":{"properties":{"method":{"type":"string","description":"Value for \u003cspan pulumi-lang-nodejs=\"`method`\" pulumi-lang-dotnet=\"`Method`\" pulumi-lang-go=\"`method`\" pulumi-lang-python=\"`method`\" pulumi-lang-yaml=\"`method`\" pulumi-lang-java=\"`method`\"\u003e`method`\u003c/span\u003e should be a valid method name for the corresponding\n`serviceName` in `ApiOperation`. If `*` used as value for method,\nthen ALL methods and permissions are allowed.\n"},"permission":{"type":"string","description":"Value for permission should be a valid Cloud IAM permission for the\ncorresponding `serviceName` in `ApiOperation`.\n"}},"type":"object"},"gcp:accesscontextmanager/ServicePerimetersServicePerimeterStatusVpcAccessibleServices:ServicePerimetersServicePerimeterStatusVpcAccessibleServices":{"properties":{"allowedServices":{"type":"array","items":{"type":"string"},"description":"The list of APIs usable within the Service Perimeter.\nMust be empty unless `enableRestriction` is True.\n"},"enableRestriction":{"type":"boolean","description":"Whether to restrict API calls within the Service Perimeter to the\nlist of APIs specified in 'allowedServices'.\n"}},"type":"object"},"gcp:accesscontextmanager/getSupportedServiceSupportedMethod:getSupportedServiceSupportedMethod":{"properties":{"method":{"type":"string","description":"A valid method name for the respective request mode. Must be a fully qualified name, for example, `storage.googleapis.com/BucketService.GetBucket`.\n"},"permission":{"type":"string","description":"A valid Cloud IAM permission for the respective request mode, for example, `storage.buckets.get`.\n"}},"type":"object","required":["method","permission"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:accesscontextmanager/getSupportedServicesSupportedService:getSupportedServicesSupportedService":{"properties":{"availableOnRestrictedVip":{"type":"boolean","description":"True if the service is available on the restricted VIP. Services on the restricted VIP typically either support VPC Service Controls or are core infrastructure services required for the functioning of Google Cloud.\n"},"knownLimitations":{"type":"boolean","description":"True if the service is supported with some limitations. Check [documentation](https://cloud.google.com/vpc-service-controls/docs/supported-products) for details.\n"},"name":{"type":"string","description":"The service name or address of the supported service, such as `storage.googleapis.com`.\n"},"serviceSupportStage":{"type":"string","description":"The support stage of the service. Values are `GA`, `PREVIEW`, and `DEPRECATED`.\n"},"supportStage":{"type":"string","description":"The support stage of the service.\n"},"title":{"type":"string","description":"The name of the supported product, such as 'Cloud Storage'.\n"}},"type":"object","required":["availableOnRestrictedVip","knownLimitations","name","serviceSupportStage","supportStage","title"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/BackupEncryptionConfig:BackupEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n","willReplaceOnChanges":true}},"type":"object"},"gcp:alloydb/BackupEncryptionInfo:BackupEncryptionInfo":{"properties":{"encryptionType":{"type":"string","description":"(Output)\nOutput only. Type of encryption.\n"},"kmsKeyVersions":{"type":"array","items":{"type":"string"},"description":"(Output)\nOutput only. Cloud KMS key versions that are being used to protect the database or the backup.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encryptionType","kmsKeyVersions"]}}},"gcp:alloydb/BackupExpiryQuantity:BackupExpiryQuantity":{"properties":{"retentionCount":{"type":"integer","description":"(Output)\nOutput only. The backup's position among its backups with the same source cluster and type, by descending chronological order create time (i.e. newest first).\n"},"totalRetentionCount":{"type":"integer","description":"(Output)\nOutput only. The length of the quantity-based queue, specified by the backup's retention policy.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["retentionCount","totalRetentionCount"]}}},"gcp:alloydb/ClusterAutomatedBackupPolicy:ClusterAutomatedBackupPolicy":{"properties":{"backupWindow":{"type":"string","description":"The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed.\nThe backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it will default to 1 hour.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"},"enabled":{"type":"boolean","description":"Whether automated backups are enabled.\n"},"encryptionConfig":{"$ref":"#/types/gcp:alloydb/ClusterAutomatedBackupPolicyEncryptionConfig:ClusterAutomatedBackupPolicyEncryptionConfig","description":"EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key).\nStructure is documented below.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to backups created using this configuration.\n"},"location":{"type":"string","description":"The location where the backup will be stored. Currently, the only supported option is to store the backup in the same region as the cluster.\n"},"quantityBasedRetention":{"$ref":"#/types/gcp:alloydb/ClusterAutomatedBackupPolicyQuantityBasedRetention:ClusterAutomatedBackupPolicyQuantityBasedRetention","description":"Quantity-based Backup retention policy to retain recent backups. Conflicts with 'time_based_retention', both can't be set together.\nStructure is documented below.\n"},"timeBasedRetention":{"$ref":"#/types/gcp:alloydb/ClusterAutomatedBackupPolicyTimeBasedRetention:ClusterAutomatedBackupPolicyTimeBasedRetention","description":"Time-based Backup retention policy. Conflicts with 'quantity_based_retention', both can't be set together.\nStructure is documented below.\n"},"weeklySchedule":{"$ref":"#/types/gcp:alloydb/ClusterAutomatedBackupPolicyWeeklySchedule:ClusterAutomatedBackupPolicyWeeklySchedule","description":"Weekly schedule for the Backup.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["backupWindow","enabled","location","weeklySchedule"]}}},"gcp:alloydb/ClusterAutomatedBackupPolicyEncryptionConfig:ClusterAutomatedBackupPolicyEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n"}},"type":"object"},"gcp:alloydb/ClusterAutomatedBackupPolicyQuantityBasedRetention:ClusterAutomatedBackupPolicyQuantityBasedRetention":{"properties":{"count":{"type":"integer","description":"The number of backups to retain.\n"}},"type":"object"},"gcp:alloydb/ClusterAutomatedBackupPolicyTimeBasedRetention:ClusterAutomatedBackupPolicyTimeBasedRetention":{"properties":{"retentionPeriod":{"type":"string","description":"The retention period.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"}},"type":"object"},"gcp:alloydb/ClusterAutomatedBackupPolicyWeeklySchedule:ClusterAutomatedBackupPolicyWeeklySchedule":{"properties":{"daysOfWeeks":{"type":"array","items":{"type":"string"},"description":"The days of the week to perform a backup. At least one day of the week must be provided.\nEach value may be one of: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"startTimes":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/ClusterAutomatedBackupPolicyWeeklyScheduleStartTime:ClusterAutomatedBackupPolicyWeeklyScheduleStartTime"},"description":"The times during the day to start a backup. At least one start time must be provided. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00).\nStructure is documented below.\n"}},"type":"object","required":["startTimes"]},"gcp:alloydb/ClusterAutomatedBackupPolicyWeeklyScheduleStartTime:ClusterAutomatedBackupPolicyWeeklyScheduleStartTime":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Currently, only the value 0 is supported.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Currently, only the value 0 is supported.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Currently, only the value 0 is supported.\n"}},"type":"object"},"gcp:alloydb/ClusterBackupSource:ClusterBackupSource":{"properties":{"backupName":{"type":"string","description":"The name of the backup resource.\n"}},"type":"object"},"gcp:alloydb/ClusterBackupdrBackupSource:ClusterBackupdrBackupSource":{"properties":{"backup":{"type":"string","description":"The name of the BackupDR backup resource.\n"}},"type":"object"},"gcp:alloydb/ClusterContinuousBackupConfig:ClusterContinuousBackupConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether continuous backup recovery is enabled. If not set, defaults to true.\n"},"encryptionConfig":{"$ref":"#/types/gcp:alloydb/ClusterContinuousBackupConfigEncryptionConfig:ClusterContinuousBackupConfigEncryptionConfig","description":"EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key).\nStructure is documented below.\n"},"recoveryWindowDays":{"type":"integer","description":"The numbers of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window.\nIf not set, defaults to 14 days.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["recoveryWindowDays"]}}},"gcp:alloydb/ClusterContinuousBackupConfigEncryptionConfig:ClusterContinuousBackupConfigEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n"}},"type":"object"},"gcp:alloydb/ClusterContinuousBackupInfo:ClusterContinuousBackupInfo":{"properties":{"earliestRestorableTime":{"type":"string","description":"(Output)\nThe earliest restorable time that can be restored to. Output only field.\n"},"enabledTime":{"type":"string","description":"(Output)\nWhen ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled.\n"},"encryptionInfos":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/ClusterContinuousBackupInfoEncryptionInfo:ClusterContinuousBackupInfoEncryptionInfo"},"description":"(Output)\nOutput only. The encryption information for the WALs and backups required for ContinuousBackup.\nStructure is documented below.\n"},"schedules":{"type":"array","items":{"type":"string"},"description":"(Output)\nDays of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["earliestRestorableTime","enabledTime","encryptionInfos","schedules"]}}},"gcp:alloydb/ClusterContinuousBackupInfoEncryptionInfo:ClusterContinuousBackupInfoEncryptionInfo":{"properties":{"encryptionType":{"type":"string","description":"(Output)\nOutput only. Type of encryption.\n"},"kmsKeyVersions":{"type":"array","items":{"type":"string"},"description":"(Output)\nOutput only. Cloud KMS key versions that are being used to protect the database or the backup.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encryptionType","kmsKeyVersions"]}}},"gcp:alloydb/ClusterEncryptionConfig:ClusterEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n","willReplaceOnChanges":true}},"type":"object"},"gcp:alloydb/ClusterEncryptionInfo:ClusterEncryptionInfo":{"properties":{"encryptionType":{"type":"string","description":"(Output)\nOutput only. Type of encryption.\n"},"kmsKeyVersions":{"type":"array","items":{"type":"string"},"description":"(Output)\nOutput only. Cloud KMS key versions that are being used to protect the database or the backup.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encryptionType","kmsKeyVersions"]}}},"gcp:alloydb/ClusterInitialUser:ClusterInitialUser":{"properties":{"password":{"type":"string","description":"The initial password for the user.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n(Optional, Write-Only)\nThe initial password for the user.\n**Note**: This property is write-only and will not be read from the API.\n\n\u003e **Note:** One of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e can only be set.\n","secret":true},"passwordWoVersion":{"type":"string","description":"Triggers update of \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e write-only. Increment this value when an update to \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e is needed. For more info see [updating write-only arguments](https://www.terraform.io/docs/providers/google/guides/using_write_only_arguments.html#updating-write-only-arguments)\n"},"user":{"type":"string","description":"The database username.\n"}},"type":"object"},"gcp:alloydb/ClusterMaintenanceUpdatePolicy:ClusterMaintenanceUpdatePolicy":{"properties":{"maintenanceWindows":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/ClusterMaintenanceUpdatePolicyMaintenanceWindow:ClusterMaintenanceUpdatePolicyMaintenanceWindow"},"description":"Preferred windows to perform maintenance. Currently limited to 1.\nStructure is documented below.\n"}},"type":"object"},"gcp:alloydb/ClusterMaintenanceUpdatePolicyMaintenanceWindow:ClusterMaintenanceUpdatePolicyMaintenanceWindow":{"properties":{"day":{"type":"string","description":"Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"startTime":{"$ref":"#/types/gcp:alloydb/ClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime:ClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime","description":"Preferred time to start the maintenance operation on the specified day. Maintenance will start within 1 hour of this time.\nStructure is documented below.\n"}},"type":"object","required":["day","startTime"]},"gcp:alloydb/ClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime:ClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Currently, only the value 0 is supported.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Currently, only the value 0 is supported.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Currently, only the value 0 is supported.\n"}},"type":"object","required":["hours"]},"gcp:alloydb/ClusterMigrationSource:ClusterMigrationSource":{"properties":{"hostPort":{"type":"string","description":"The host and port of the on-premises instance in host:port format\n"},"referenceId":{"type":"string","description":"Place holder for the external source identifier(e.g DMS job name) that created the cluster.\n"},"sourceType":{"type":"string","description":"Type of migration source.\n"}},"type":"object"},"gcp:alloydb/ClusterNetworkConfig:ClusterNetworkConfig":{"properties":{"allocatedIpRange":{"type":"string","description":"The name of the allocated IP range for the private IP AlloyDB cluster. For example: \"google-managed-services-default\".\nIf set, the instance IPs for this cluster will be created in the allocated range.\n"},"network":{"type":"string","description":"The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster.\nIt is specified in the form: \"projects/{projectNumber}/global/networks/{network_id}\".\n"}},"type":"object"},"gcp:alloydb/ClusterPscConfig:ClusterPscConfig":{"properties":{"pscEnabled":{"type":"boolean","description":"Create an instance that allows connections from Private Service Connect endpoints to the instance.\n"},"serviceOwnedProjectNumber":{"type":"integer","description":"(Output)\nThe project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.\nIn case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceOwnedProjectNumber"]}}},"gcp:alloydb/ClusterRestoreBackupSource:ClusterRestoreBackupSource":{"properties":{"backupName":{"type":"string","description":"The name of the backup that this cluster is restored from.\n","willReplaceOnChanges":true}},"type":"object","required":["backupName"]},"gcp:alloydb/ClusterRestoreBackupdrBackupSource:ClusterRestoreBackupdrBackupSource":{"properties":{"backup":{"type":"string","description":"The name of the BackupDR backup that this cluster is restored from. It must be of the format \"projects/[PROJECT]/locations/[LOCATION]/backupVaults/[VAULT_ID]/dataSources/[DATASOURCE_ID]/backups/[BACKUP_ID]\"\n","willReplaceOnChanges":true}},"type":"object","required":["backup"]},"gcp:alloydb/ClusterRestoreBackupdrPitrSource:ClusterRestoreBackupdrPitrSource":{"properties":{"dataSource":{"type":"string","description":"The name of the BackupDR data source that this cluster is restore from. It must be of the format \"projects/[PROJECT]/locations/[LOCATION]/backupVaults/[VAULT_ID]/dataSources/[DATASOURCE_ID]\"\n","willReplaceOnChanges":true},"pointInTime":{"type":"string","description":"The point in time that this cluster is restored to, in RFC 3339 format.\n","willReplaceOnChanges":true}},"type":"object","required":["dataSource","pointInTime"]},"gcp:alloydb/ClusterRestoreContinuousBackupSource:ClusterRestoreContinuousBackupSource":{"properties":{"cluster":{"type":"string","description":"The name of the source cluster that this cluster is restored from.\n","willReplaceOnChanges":true},"pointInTime":{"type":"string","description":"The point in time that this cluster is restored to, in RFC 3339 format.\n","willReplaceOnChanges":true}},"type":"object","required":["cluster","pointInTime"]},"gcp:alloydb/ClusterSecondaryConfig:ClusterSecondaryConfig":{"properties":{"primaryClusterName":{"type":"string","description":"Name of the primary cluster must be in the format\n'projects/{project}/locations/{location}/clusters/{cluster_id}'\n"}},"type":"object","required":["primaryClusterName"]},"gcp:alloydb/ClusterTrialMetadata:ClusterTrialMetadata":{"properties":{"endTime":{"type":"string","description":"End time of the trial cluster.\n"},"graceEndTime":{"type":"string","description":"Grace end time of the trial cluster.\n"},"startTime":{"type":"string","description":"Start time of the trial cluster.\n"},"upgradeTime":{"type":"string","description":"Upgrade time of the trial cluster to standard cluster.\n"}},"type":"object"},"gcp:alloydb/InstanceClientConnectionConfig:InstanceClientConnectionConfig":{"properties":{"requireConnectors":{"type":"boolean","description":"Configuration to enforce connectors only (ex: AuthProxy) connections to the database.\n"},"sslConfig":{"$ref":"#/types/gcp:alloydb/InstanceClientConnectionConfigSslConfig:InstanceClientConnectionConfigSslConfig","description":"SSL config option for this instance.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sslConfig"]}}},"gcp:alloydb/InstanceClientConnectionConfigSslConfig:InstanceClientConnectionConfigSslConfig":{"properties":{"sslMode":{"type":"string","description":"SSL mode. Specifies client-server SSL/TLS connection behavior.\nPossible values are: `ENCRYPTED_ONLY`, `ALLOW_UNENCRYPTED_AND_ENCRYPTED`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sslMode"]}}},"gcp:alloydb/InstanceConnectionPoolConfig:InstanceConnectionPoolConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enabled Managed Connection Pool.\n"},"flags":{"type":"object","additionalProperties":{"type":"string"},"description":"Flags for configuring managed connection pooling when it is enabled.\nThese flags will only be set if `connection_pool_config.enabled` is\ntrue.\nPlease see\nhttps://cloud.google.com/alloydb/docs/configure-managed-connection-pooling#configuration-options\nfor a comprehensive list of flags that can be set. To specify the flags\nin Terraform, please remove the \"connection-pooling-\" prefix and use\nunderscores instead of dashes in the name. For example,\n\"connection-pooling-pool-mode\" would be \u003cspan pulumi-lang-nodejs=\"\"poolMode\"\" pulumi-lang-dotnet=\"\"PoolMode\"\" pulumi-lang-go=\"\"poolMode\"\" pulumi-lang-python=\"\"pool_mode\"\" pulumi-lang-yaml=\"\"poolMode\"\" pulumi-lang-java=\"\"poolMode\"\"\u003e\"pool_mode\"\u003c/span\u003e.\n"},"poolerCount":{"type":"integer","description":"(Output)\nThe number of running poolers per instance.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","poolerCount"]}}},"gcp:alloydb/InstanceMachineConfig:InstanceMachineConfig":{"properties":{"cpuCount":{"type":"integer","description":"The number of CPU's in the VM instance.\n"},"machineType":{"type":"string","description":"Machine type of the VM instance.\nE.g. \"n2-highmem-4\", \"n2-highmem-8\", \"c4a-highmem-4-lssd\".\n\u003cspan pulumi-lang-nodejs=\"`cpuCount`\" pulumi-lang-dotnet=\"`CpuCount`\" pulumi-lang-go=\"`cpuCount`\" pulumi-lang-python=\"`cpu_count`\" pulumi-lang-yaml=\"`cpuCount`\" pulumi-lang-java=\"`cpuCount`\"\u003e`cpu_count`\u003c/span\u003e must match the number of vCPUs in the machine type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpuCount","machineType"]}}},"gcp:alloydb/InstanceNetworkConfig:InstanceNetworkConfig":{"properties":{"allocatedIpRangeOverride":{"type":"string","description":"Name of the allocated IP range for the private IP AlloyDB instance, for example: \"google-managed-services-default\".\nIf set, the instance IPs will be created from this allocated range and will override the IP range used by the parent cluster.\nThe range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z?.\n","willReplaceOnChanges":true},"authorizedExternalNetworks":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/InstanceNetworkConfigAuthorizedExternalNetwork:InstanceNetworkConfigAuthorizedExternalNetwork"},"description":"A list of external networks authorized to access this instance. This\nfield is only allowed to be set when \u003cspan pulumi-lang-nodejs=\"`enablePublicIp`\" pulumi-lang-dotnet=\"`EnablePublicIp`\" pulumi-lang-go=\"`enablePublicIp`\" pulumi-lang-python=\"`enable_public_ip`\" pulumi-lang-yaml=\"`enablePublicIp`\" pulumi-lang-java=\"`enablePublicIp`\"\u003e`enable_public_ip`\u003c/span\u003e is set to\ntrue.\nStructure is documented below.\n"},"enableOutboundPublicIp":{"type":"boolean","description":"Enabling outbound public ip for the instance.\n"},"enablePublicIp":{"type":"boolean","description":"Enabling public ip for the instance. If a user wishes to disable this,\nplease also clear the list of the authorized external networks set on\nthe same instance.\n"}},"type":"object"},"gcp:alloydb/InstanceNetworkConfigAuthorizedExternalNetwork:InstanceNetworkConfigAuthorizedExternalNetwork":{"properties":{"cidrRange":{"type":"string","description":"CIDR range for one authorized network of the instance.\n"}},"type":"object"},"gcp:alloydb/InstanceObservabilityConfig:InstanceObservabilityConfig":{"properties":{"assistiveExperiencesEnabled":{"type":"boolean","description":"Whether assistive experiences are enabled for this AlloyDB instance.\n"},"enabled":{"type":"boolean","description":"Observability feature status for an instance.\n"},"maxQueryStringLength":{"type":"integer","description":"Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid.\n"},"preserveComments":{"type":"boolean","description":"Preserve comments in the query string.\n"},"queryPlansPerMinute":{"type":"integer","description":"Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 200 is considered valid.\n"},"recordApplicationTags":{"type":"boolean","description":"Record application tags for an instance. This flag is turned \"on\" by default.\n"},"trackActiveQueries":{"type":"boolean","description":"Track actively running queries. If not set, default value is \"off\".\n"},"trackWaitEventTypes":{"type":"boolean","description":"Record wait event types during query execution for an instance.\n"},"trackWaitEvents":{"type":"boolean","description":"Record wait events during query execution for an instance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["assistiveExperiencesEnabled","enabled","maxQueryStringLength","preserveComments","queryPlansPerMinute","recordApplicationTags","trackActiveQueries","trackWaitEventTypes","trackWaitEvents"]}}},"gcp:alloydb/InstancePscInstanceConfig:InstancePscInstanceConfig":{"properties":{"allowedConsumerProjects":{"type":"array","items":{"type":"string"},"description":"List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.\nThese should be specified as project numbers only.\n"},"pscAutoConnections":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/InstancePscInstanceConfigPscAutoConnection:InstancePscInstanceConfigPscAutoConnection"},"description":"Configurations for setting up PSC service automation.\nStructure is documented below.\n"},"pscDnsName":{"type":"string","description":"(Output)\nThe DNS name of the instance for PSC connectivity.\nName convention: \u003cuid\u003e.\u003cuid\u003e.\u003cregion\u003e.alloydb-psc.goog\n"},"pscInterfaceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/InstancePscInstanceConfigPscInterfaceConfig:InstancePscInstanceConfigPscInterfaceConfig"},"description":"Configurations for setting up PSC interfaces attached to the instance\nwhich are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.\nStructure is documented below.\n"},"serviceAttachmentLink":{"type":"string","description":"(Output)\nThe service attachment created when Private Service Connect (PSC) is enabled for the instance.\nThe name of the resource will be in the format of\n`projects/\u003calloydb-tenant-project-number\u003e/regions/\u003cregion-name\u003e/serviceAttachments/\u003cservice-attachment-name\u003e`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pscDnsName","serviceAttachmentLink"]}}},"gcp:alloydb/InstancePscInstanceConfigPscAutoConnection:InstancePscInstanceConfigPscAutoConnection":{"properties":{"consumerNetwork":{"type":"string","description":"The consumer network for the PSC service automation, example:\n\"projects/vpc-host-project/global/networks/default\".\nThe consumer network might be hosted a different project than the\nconsumer project. The API expects the consumer project specified to be\nthe project ID (and not the project number)\n"},"consumerNetworkStatus":{"type":"string","description":"(Output)\nThe status of the service connection policy.\n"},"consumerProject":{"type":"string","description":"The consumer project to which the PSC service automation endpoint will\nbe created. The API expects the consumer project to be the project ID(\nand not the project number).\n"},"ipAddress":{"type":"string","description":"(Output)\nThe IP address of the PSC service automation endpoint.\n"},"status":{"type":"string","description":"(Output)\nThe status of the PSC service automation connection.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["consumerNetworkStatus","ipAddress","status"]}}},"gcp:alloydb/InstancePscInstanceConfigPscInterfaceConfig:InstancePscInstanceConfigPscInterfaceConfig":{"properties":{"networkAttachmentResource":{"type":"string","description":"The network attachment resource created in the consumer project to which the PSC interface will be linked.\nThis is of the format: \"projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}\".\nThe network attachment must be in the same region as the instance.\n"}},"type":"object"},"gcp:alloydb/InstanceQueryInsightsConfig:InstanceQueryInsightsConfig":{"properties":{"queryPlansPerMinute":{"type":"integer","description":"Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid.\n"},"queryStringLength":{"type":"integer","description":"Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid.\n"},"recordApplicationTags":{"type":"boolean","description":"Record application tags for an instance. This flag is turned \"on\" by default.\n"},"recordClientAddress":{"type":"boolean","description":"Record client address for an instance. Client address is PII information. This flag is turned \"on\" by default.\n"}},"type":"object"},"gcp:alloydb/InstanceReadPoolConfig:InstanceReadPoolConfig":{"properties":{"nodeCount":{"type":"integer","description":"Read capacity, i.e. number of nodes in a read pool instance.\n"}},"type":"object"},"gcp:alloydb/getClusterAutomatedBackupPolicy:getClusterAutomatedBackupPolicy":{"properties":{"backupWindow":{"type":"string","description":"The length of the time window during which a backup can be taken. If a backup does not succeed within this time window, it will be canceled and considered failed.\n\nThe backup window must be at least 5 minutes long. There is no upper bound on the window. If not set, it will default to 1 hour.\n\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"},"enabled":{"type":"boolean","description":"Whether automated backups are enabled.\n"},"encryptionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterAutomatedBackupPolicyEncryptionConfig:getClusterAutomatedBackupPolicyEncryptionConfig"},"description":"EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key).\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to backups created using this configuration.\n"},"location":{"type":"string","description":"(optional)\nThe canonical id of the location.If it is not provided, the provider project is used. For example: us-east1.\n"},"quantityBasedRetentions":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterAutomatedBackupPolicyQuantityBasedRetention:getClusterAutomatedBackupPolicyQuantityBasedRetention"},"description":"Quantity-based Backup retention policy to retain recent backups. Conflicts with 'time_based_retention', both can't be set together.\n"},"timeBasedRetentions":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterAutomatedBackupPolicyTimeBasedRetention:getClusterAutomatedBackupPolicyTimeBasedRetention"},"description":"Time-based Backup retention policy. Conflicts with 'quantity_based_retention', both can't be set together.\n"},"weeklySchedules":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterAutomatedBackupPolicyWeeklySchedule:getClusterAutomatedBackupPolicyWeeklySchedule"},"description":"Weekly schedule for the Backup.\n"}},"type":"object","required":["backupWindow","enabled","encryptionConfigs","labels","location","quantityBasedRetentions","timeBasedRetentions","weeklySchedules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterAutomatedBackupPolicyEncryptionConfig:getClusterAutomatedBackupPolicyEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterAutomatedBackupPolicyQuantityBasedRetention:getClusterAutomatedBackupPolicyQuantityBasedRetention":{"properties":{"count":{"type":"integer","description":"The number of backups to retain.\n"}},"type":"object","required":["count"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterAutomatedBackupPolicyTimeBasedRetention:getClusterAutomatedBackupPolicyTimeBasedRetention":{"properties":{"retentionPeriod":{"type":"string","description":"The retention period.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"}},"type":"object","required":["retentionPeriod"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterAutomatedBackupPolicyWeeklySchedule:getClusterAutomatedBackupPolicyWeeklySchedule":{"properties":{"daysOfWeeks":{"type":"array","items":{"type":"string"},"description":"The days of the week to perform a backup. At least one day of the week must be provided. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]\n"},"startTimes":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterAutomatedBackupPolicyWeeklyScheduleStartTime:getClusterAutomatedBackupPolicyWeeklyScheduleStartTime"},"description":"The times during the day to start a backup. At least one start time must be provided. The start times are assumed to be in UTC and to be an exact hour (e.g., 04:00:00).\n"}},"type":"object","required":["daysOfWeeks","startTimes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterAutomatedBackupPolicyWeeklyScheduleStartTime:getClusterAutomatedBackupPolicyWeeklyScheduleStartTime":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Currently, only the value 0 is supported.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Currently, only the value 0 is supported.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Currently, only the value 0 is supported.\n"}},"type":"object","required":["hours","minutes","nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterBackupSource:getClusterBackupSource":{"properties":{"backupName":{"type":"string","description":"The name of the backup resource.\n"}},"type":"object","required":["backupName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterBackupdrBackupSource:getClusterBackupdrBackupSource":{"properties":{"backup":{"type":"string","description":"The name of the BackupDR backup resource.\n"}},"type":"object","required":["backup"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterContinuousBackupConfig:getClusterContinuousBackupConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether continuous backup recovery is enabled. If not set, defaults to true.\n"},"encryptionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterContinuousBackupConfigEncryptionConfig:getClusterContinuousBackupConfigEncryptionConfig"},"description":"EncryptionConfig describes the encryption config of a cluster or a backup that is encrypted with a CMEK (customer-managed encryption key).\n"},"recoveryWindowDays":{"type":"integer","description":"The numbers of days that are eligible to restore from using PITR. To support the entire recovery window, backups and logs are retained for one day more than the recovery window.\n\nIf not set, defaults to 14 days.\n"}},"type":"object","required":["enabled","encryptionConfigs","recoveryWindowDays"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterContinuousBackupConfigEncryptionConfig:getClusterContinuousBackupConfigEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterContinuousBackupInfo:getClusterContinuousBackupInfo":{"properties":{"earliestRestorableTime":{"type":"string","description":"The earliest restorable time that can be restored to. Output only field.\n"},"enabledTime":{"type":"string","description":"When ContinuousBackup was most recently enabled. Set to null if ContinuousBackup is not enabled.\n"},"encryptionInfos":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterContinuousBackupInfoEncryptionInfo:getClusterContinuousBackupInfoEncryptionInfo"},"description":"Output only. The encryption information for the WALs and backups required for ContinuousBackup.\n"},"schedules":{"type":"array","items":{"type":"string"},"description":"Days of the week on which a continuous backup is taken. Output only field. Ignored if passed into the request.\n"}},"type":"object","required":["earliestRestorableTime","enabledTime","encryptionInfos","schedules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterContinuousBackupInfoEncryptionInfo:getClusterContinuousBackupInfoEncryptionInfo":{"properties":{"encryptionType":{"type":"string","description":"Output only. Type of encryption.\n"},"kmsKeyVersions":{"type":"array","items":{"type":"string"},"description":"Output only. Cloud KMS key versions that are being used to protect the database or the backup.\n"}},"type":"object","required":["encryptionType","kmsKeyVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterEncryptionConfig:getClusterEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The fully-qualified resource name of the KMS key. Each Cloud KMS key is regionalized and has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME].\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterEncryptionInfo:getClusterEncryptionInfo":{"properties":{"encryptionType":{"type":"string","description":"Output only. Type of encryption.\n"},"kmsKeyVersions":{"type":"array","items":{"type":"string"},"description":"Output only. Cloud KMS key versions that are being used to protect the database or the backup.\n"}},"type":"object","required":["encryptionType","kmsKeyVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterInitialUser:getClusterInitialUser":{"properties":{"password":{"type":"string","description":"The initial password for the user.\n"},"passwordWo":{"type":"string","description":"The initial password for the user.\n"},"passwordWoVersion":{"type":"string","description":"Triggers update of 'password_wo' write-only. Increment this value when an update to 'password_wo' is needed. For more info see [updating write-only arguments](https://www.terraform.io/docs/providers/google/guides/using_write_only_arguments.html#updating-write-only-arguments)\n"},"user":{"type":"string","description":"The database username.\n"}},"type":"object","required":["password","passwordWo","passwordWoVersion","user"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterMaintenanceUpdatePolicy:getClusterMaintenanceUpdatePolicy":{"properties":{"maintenanceWindows":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterMaintenanceUpdatePolicyMaintenanceWindow:getClusterMaintenanceUpdatePolicyMaintenanceWindow"},"description":"Preferred windows to perform maintenance. Currently limited to 1.\n"}},"type":"object","required":["maintenanceWindows"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterMaintenanceUpdatePolicyMaintenanceWindow:getClusterMaintenanceUpdatePolicyMaintenanceWindow":{"properties":{"day":{"type":"string","description":"Preferred day of the week for maintenance, e.g. MONDAY, TUESDAY, etc. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]\n"},"startTimes":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime:getClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime"},"description":"Preferred time to start the maintenance operation on the specified day. Maintenance will start within 1 hour of this time.\n"}},"type":"object","required":["day","startTimes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime:getClusterMaintenanceUpdatePolicyMaintenanceWindowStartTime":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Currently, only the value 0 is supported.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Currently, only the value 0 is supported.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Currently, only the value 0 is supported.\n"}},"type":"object","required":["hours","minutes","nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterMigrationSource:getClusterMigrationSource":{"properties":{"hostPort":{"type":"string","description":"The host and port of the on-premises instance in host:port format\n"},"referenceId":{"type":"string","description":"Place holder for the external source identifier(e.g DMS job name) that created the cluster.\n"},"sourceType":{"type":"string","description":"Type of migration source.\n"}},"type":"object","required":["hostPort","referenceId","sourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterNetworkConfig:getClusterNetworkConfig":{"properties":{"allocatedIpRange":{"type":"string","description":"The name of the allocated IP range for the private IP AlloyDB cluster. For example: \"google-managed-services-default\".\nIf set, the instance IPs for this cluster will be created in the allocated range.\n"},"network":{"type":"string","description":"The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster.\nIt is specified in the form: \"projects/{projectNumber}/global/networks/{network_id}\".\n"}},"type":"object","required":["allocatedIpRange","network"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterPscConfig:getClusterPscConfig":{"properties":{"pscEnabled":{"type":"boolean","description":"Create an instance that allows connections from Private Service Connect endpoints to the instance.\n"},"serviceOwnedProjectNumber":{"type":"integer","description":"The project number that needs to be allowlisted on the network attachment to enable outbound connectivity, if the network attachment is configured to ACCEPT_MANUAL connections.\nIn case the network attachment is configured to ACCEPT_AUTOMATIC, this project number does not need to be allowlisted explicitly.\n"}},"type":"object","required":["pscEnabled","serviceOwnedProjectNumber"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterRestoreBackupSource:getClusterRestoreBackupSource":{"properties":{"backupName":{"type":"string","description":"The name of the backup that this cluster is restored from.\n"}},"type":"object","required":["backupName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterRestoreBackupdrBackupSource:getClusterRestoreBackupdrBackupSource":{"properties":{"backup":{"type":"string","description":"The name of the BackupDR backup that this cluster is restored from. It must be of the format \"projects/[PROJECT]/locations/[LOCATION]/backupVaults/[VAULT_ID]/dataSources/[DATASOURCE_ID]/backups/[BACKUP_ID]\"\n"}},"type":"object","required":["backup"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterRestoreBackupdrPitrSource:getClusterRestoreBackupdrPitrSource":{"properties":{"dataSource":{"type":"string","description":"The name of the BackupDR data source that this cluster is restore from. It must be of the format \"projects/[PROJECT]/locations/[LOCATION]/backupVaults/[VAULT_ID]/dataSources/[DATASOURCE_ID]\"\n"},"pointInTime":{"type":"string","description":"The point in time that this cluster is restored to, in RFC 3339 format.\n"}},"type":"object","required":["dataSource","pointInTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterRestoreContinuousBackupSource:getClusterRestoreContinuousBackupSource":{"properties":{"cluster":{"type":"string","description":"The name of the source cluster that this cluster is restored from.\n"},"pointInTime":{"type":"string","description":"The point in time that this cluster is restored to, in RFC 3339 format.\n"}},"type":"object","required":["cluster","pointInTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterSecondaryConfig:getClusterSecondaryConfig":{"properties":{"primaryClusterName":{"type":"string","description":"Name of the primary cluster must be in the format\n'projects/{project}/locations/{location}/clusters/{cluster_id}'\n"}},"type":"object","required":["primaryClusterName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getClusterTrialMetadata:getClusterTrialMetadata":{"properties":{"endTime":{"type":"string","description":"End time of the trial cluster.\n"},"graceEndTime":{"type":"string","description":"Grace end time of the trial cluster.\n"},"startTime":{"type":"string","description":"Start time of the trial cluster.\n"},"upgradeTime":{"type":"string","description":"Upgrade time of the trial cluster to standard cluster.\n"}},"type":"object","required":["endTime","graceEndTime","startTime","upgradeTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceClientConnectionConfig:getInstanceClientConnectionConfig":{"properties":{"requireConnectors":{"type":"boolean","description":"Configuration to enforce connectors only (ex: AuthProxy) connections to the database.\n"},"sslConfigs":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getInstanceClientConnectionConfigSslConfig:getInstanceClientConnectionConfigSslConfig"},"description":"SSL config option for this instance.\n"}},"type":"object","required":["requireConnectors","sslConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceClientConnectionConfigSslConfig:getInstanceClientConnectionConfigSslConfig":{"properties":{"sslMode":{"type":"string","description":"SSL mode. Specifies client-server SSL/TLS connection behavior. Possible values: [\"ENCRYPTED_ONLY\", \"ALLOW_UNENCRYPTED_AND_ENCRYPTED\"]\n"}},"type":"object","required":["sslMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceConnectionPoolConfig:getInstanceConnectionPoolConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enabled Managed Connection Pool.\n"},"flags":{"type":"object","additionalProperties":{"type":"string"},"description":"Flags for configuring managed connection pooling when it is enabled.\nThese flags will only be set if 'connection_pool_config.enabled' is\ntrue.\nPlease see\nhttps://cloud.google.com/alloydb/docs/configure-managed-connection-pooling#configuration-options\nfor a comprehensive list of flags that can be set. To specify the flags\nin Terraform, please remove the \"connection-pooling-\" prefix and use\nunderscores instead of dashes in the name. For example,\n\"connection-pooling-pool-mode\" would be \u003cspan pulumi-lang-nodejs=\"\"poolMode\"\" pulumi-lang-dotnet=\"\"PoolMode\"\" pulumi-lang-go=\"\"poolMode\"\" pulumi-lang-python=\"\"pool_mode\"\" pulumi-lang-yaml=\"\"poolMode\"\" pulumi-lang-java=\"\"poolMode\"\"\u003e\"pool_mode\"\u003c/span\u003e.\n"},"poolerCount":{"type":"integer","description":"The number of running poolers per instance.\n"}},"type":"object","required":["enabled","flags","poolerCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceMachineConfig:getInstanceMachineConfig":{"properties":{"cpuCount":{"type":"integer","description":"The number of CPU's in the VM instance.\n"},"machineType":{"type":"string","description":"Machine type of the VM instance.\nE.g. \"n2-highmem-4\", \"n2-highmem-8\", \"c4a-highmem-4-lssd\".\n'cpu_count' must match the number of vCPUs in the machine type.\n"}},"type":"object","required":["cpuCount","machineType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceNetworkConfig:getInstanceNetworkConfig":{"properties":{"allocatedIpRangeOverride":{"type":"string","description":"Name of the allocated IP range for the private IP AlloyDB instance, for example: \"google-managed-services-default\".\nIf set, the instance IPs will be created from this allocated range and will override the IP range used by the parent cluster.\nThe range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z?.\n"},"authorizedExternalNetworks":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getInstanceNetworkConfigAuthorizedExternalNetwork:getInstanceNetworkConfigAuthorizedExternalNetwork"},"description":"A list of external networks authorized to access this instance. This\nfield is only allowed to be set when 'enable_public_ip' is set to\ntrue.\n"},"enableOutboundPublicIp":{"type":"boolean","description":"Enabling outbound public ip for the instance.\n"},"enablePublicIp":{"type":"boolean","description":"Enabling public ip for the instance. If a user wishes to disable this,\nplease also clear the list of the authorized external networks set on\nthe same instance.\n"}},"type":"object","required":["allocatedIpRangeOverride","authorizedExternalNetworks","enableOutboundPublicIp","enablePublicIp"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceNetworkConfigAuthorizedExternalNetwork:getInstanceNetworkConfigAuthorizedExternalNetwork":{"properties":{"cidrRange":{"type":"string","description":"CIDR range for one authorized network of the instance.\n"}},"type":"object","required":["cidrRange"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceObservabilityConfig:getInstanceObservabilityConfig":{"properties":{"assistiveExperiencesEnabled":{"type":"boolean","description":"Whether assistive experiences are enabled for this AlloyDB instance.\n"},"enabled":{"type":"boolean","description":"Observability feature status for an instance.\n"},"maxQueryStringLength":{"type":"integer","description":"Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid.\n"},"preserveComments":{"type":"boolean","description":"Preserve comments in the query string.\n"},"queryPlansPerMinute":{"type":"integer","description":"Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 200 is considered valid.\n"},"recordApplicationTags":{"type":"boolean","description":"Record application tags for an instance. This flag is turned \"on\" by default.\n"},"trackActiveQueries":{"type":"boolean","description":"Track actively running queries. If not set, default value is \"off\".\n"},"trackWaitEventTypes":{"type":"boolean","description":"Record wait event types during query execution for an instance.\n"},"trackWaitEvents":{"type":"boolean","description":"Record wait events during query execution for an instance.\n"}},"type":"object","required":["assistiveExperiencesEnabled","enabled","maxQueryStringLength","preserveComments","queryPlansPerMinute","recordApplicationTags","trackActiveQueries","trackWaitEventTypes","trackWaitEvents"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstancePscInstanceConfig:getInstancePscInstanceConfig":{"properties":{"allowedConsumerProjects":{"type":"array","items":{"type":"string"},"description":"List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance.\nThese should be specified as project numbers only.\n"},"pscAutoConnections":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getInstancePscInstanceConfigPscAutoConnection:getInstancePscInstanceConfigPscAutoConnection"},"description":"Configurations for setting up PSC service automation.\n"},"pscDnsName":{"type":"string","description":"The DNS name of the instance for PSC connectivity.\nName convention: \u003cuid\u003e.\u003cuid\u003e.\u003cregion\u003e.alloydb-psc.goog\n"},"pscInterfaceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:alloydb/getInstancePscInstanceConfigPscInterfaceConfig:getInstancePscInstanceConfigPscInterfaceConfig"},"description":"Configurations for setting up PSC interfaces attached to the instance\nwhich are used for outbound connectivity. Currently, AlloyDB supports only 0 or 1 PSC interface.\n"},"serviceAttachmentLink":{"type":"string","description":"The service attachment created when Private Service Connect (PSC) is enabled for the instance.\nThe name of the resource will be in the format of\n'projects/\u003calloydb-tenant-project-number\u003e/regions/\u003cregion-name\u003e/serviceAttachments/\u003cservice-attachment-name\u003e'\n"}},"type":"object","required":["allowedConsumerProjects","pscAutoConnections","pscDnsName","pscInterfaceConfigs","serviceAttachmentLink"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstancePscInstanceConfigPscAutoConnection:getInstancePscInstanceConfigPscAutoConnection":{"properties":{"consumerNetwork":{"type":"string","description":"The consumer network for the PSC service automation, example:\n\"projects/vpc-host-project/global/networks/default\".\nThe consumer network might be hosted a different project than the\nconsumer project. The API expects the consumer project specified to be\nthe project ID (and not the project number)\n"},"consumerNetworkStatus":{"type":"string","description":"The status of the service connection policy.\n"},"consumerProject":{"type":"string","description":"The consumer project to which the PSC service automation endpoint will\nbe created. The API expects the consumer project to be the project ID(\nand not the project number).\n"},"ipAddress":{"type":"string","description":"The IP address of the PSC service automation endpoint.\n"},"status":{"type":"string","description":"The status of the PSC service automation connection.\n"}},"type":"object","required":["consumerNetwork","consumerNetworkStatus","consumerProject","ipAddress","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstancePscInstanceConfigPscInterfaceConfig:getInstancePscInstanceConfigPscInterfaceConfig":{"properties":{"networkAttachmentResource":{"type":"string","description":"The network attachment resource created in the consumer project to which the PSC interface will be linked.\nThis is of the format: \"projects/${CONSUMER_PROJECT}/regions/${REGION}/networkAttachments/${NETWORK_ATTACHMENT_NAME}\".\nThe network attachment must be in the same region as the instance.\n"}},"type":"object","required":["networkAttachmentResource"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceQueryInsightsConfig:getInstanceQueryInsightsConfig":{"properties":{"queryPlansPerMinute":{"type":"integer","description":"Number of query execution plans captured by Insights per minute for all queries combined. The default value is 5. Any integer between 0 and 20 is considered valid.\n"},"queryStringLength":{"type":"integer","description":"Query string length. The default value is 1024. Any integer between 256 and 4500 is considered valid.\n"},"recordApplicationTags":{"type":"boolean","description":"Record application tags for an instance. This flag is turned \"on\" by default.\n"},"recordClientAddress":{"type":"boolean","description":"Record client address for an instance. Client address is PII information. This flag is turned \"on\" by default.\n"}},"type":"object","required":["queryPlansPerMinute","queryStringLength","recordApplicationTags","recordClientAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getInstanceReadPoolConfig:getInstanceReadPoolConfig":{"properties":{"nodeCount":{"type":"integer","description":"Read capacity, i.e. number of nodes in a read pool instance.\n"}},"type":"object","required":["nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getLocationsLocation:getLocationsLocation":{"properties":{"displayName":{"type":"string","description":"The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Cross-service attributes for the location. For example `{\"cloud.googleapis.com/region\": \"us-east1\"}`.\n"},"locationId":{"type":"string","description":"The canonical id for this location. For example: \"us-east1\"..\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Service-specific metadata. For example the available capacity at the given location.\n"},"name":{"type":"string","description":"Resource name for the location, which may vary between implementations. For example: \"projects/example-project/locations/us-east1\".\n"}},"type":"object","required":["displayName","labels","locationId","metadata","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getSupportedDatabaseFlagsSupportedDatabaseFlag:getSupportedDatabaseFlagsSupportedDatabaseFlag":{"properties":{"acceptsMultipleValues":{"type":"boolean","description":"Whether the database flag accepts multiple values. If true, a comma-separated list of stringified values may be specified.\n"},"flagName":{"type":"string","description":"The name of the database flag, e.g. \u003cspan pulumi-lang-nodejs=\"\"maxAllowedPackets\"\" pulumi-lang-dotnet=\"\"MaxAllowedPackets\"\" pulumi-lang-go=\"\"maxAllowedPackets\"\" pulumi-lang-python=\"\"max_allowed_packets\"\" pulumi-lang-yaml=\"\"maxAllowedPackets\"\" pulumi-lang-java=\"\"maxAllowedPackets\"\"\u003e\"max_allowed_packets\"\u003c/span\u003e. The is a possibly key for the Instance.database_flags map field.\n"},"integerRestrictions":{"$ref":"#/types/gcp:alloydb/getSupportedDatabaseFlagsSupportedDatabaseFlagIntegerRestrictions:getSupportedDatabaseFlagsSupportedDatabaseFlagIntegerRestrictions","description":"Restriction on `INTEGER` type value. Specifies the minimum value and the maximum value that can be specified, if applicable.\n"},"name":{"type":"string","description":"The name of the flag resource, following Google Cloud conventions, e.g.: * projects/{project}/locations/{location}/flags/{flag} This field currently has no semantic meaning.\n"},"requiresDbRestart":{"type":"boolean","description":"Whether setting or updating this flag on an Instance requires a database restart. If a flag that requires database restart is set, the backend will automatically restart the database (making sure to satisfy any availability SLO's).\n"},"stringRestrictions":{"$ref":"#/types/gcp:alloydb/getSupportedDatabaseFlagsSupportedDatabaseFlagStringRestrictions:getSupportedDatabaseFlagsSupportedDatabaseFlagStringRestrictions","description":"Restriction on `STRING` type value. The list of allowed values, if bounded. This field will be empty if there is a unbounded number of allowed values.\n"},"supportedDbVersions":{"type":"array","items":{"type":"string"},"description":"Major database engine versions for which this flag is supported. The supported values are `POSTGRES_14` and `DATABASE_VERSION_UNSPECIFIED`.\n"},"valueType":{"type":"string","description":"ValueType describes the semantic type of the value that the flag accepts. Regardless of the ValueType, the Instance.database_flags field accepts the stringified version of the value, i.e. \"20\" or \"3.14\". The supported values are `VALUE_TYPE_UNSPECIFIED`, `STRING`, `INTEGER`, `FLOAT` and `NONE`.\n"}},"type":"object","required":["acceptsMultipleValues","flagName","integerRestrictions","name","requiresDbRestart","stringRestrictions","supportedDbVersions","valueType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getSupportedDatabaseFlagsSupportedDatabaseFlagIntegerRestrictions:getSupportedDatabaseFlagsSupportedDatabaseFlagIntegerRestrictions":{"properties":{"maxValue":{"type":"string","description":"The maximum value that can be specified, if applicable.\n"},"minValue":{"type":"string","description":"The minimum value that can be specified, if applicable.\n"}},"type":"object","required":["maxValue","minValue"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:alloydb/getSupportedDatabaseFlagsSupportedDatabaseFlagStringRestrictions:getSupportedDatabaseFlagsSupportedDatabaseFlagStringRestrictions":{"properties":{"allowedValues":{"type":"array","items":{"type":"string"},"description":"The list of allowed values, if bounded. This field will be empty if there is a unbounded number of allowed values.\n"}},"type":"object","required":["allowedValues"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apigateway/ApiConfigGatewayConfig:ApiConfigGatewayConfig":{"properties":{"backendConfig":{"$ref":"#/types/gcp:apigateway/ApiConfigGatewayConfigBackendConfig:ApiConfigGatewayConfigBackendConfig","description":"Backend settings that are applied to all backends of the Gateway.\nStructure is documented below.\n"}},"type":"object","required":["backendConfig"]},"gcp:apigateway/ApiConfigGatewayConfigBackendConfig:ApiConfigGatewayConfigBackendConfig":{"properties":{"googleServiceAccount":{"type":"string","description":"Google Cloud IAM service account used to sign OIDC tokens for backends that have authentication configured\n(https://cloud.google.com/service-infrastructure/docs/service-management/reference/rest/v1/services.configs#backend).\n","willReplaceOnChanges":true}},"type":"object","required":["googleServiceAccount"]},"gcp:apigateway/ApiConfigGrpcService:ApiConfigGrpcService":{"properties":{"fileDescriptorSet":{"$ref":"#/types/gcp:apigateway/ApiConfigGrpcServiceFileDescriptorSet:ApiConfigGrpcServiceFileDescriptorSet","description":"Input only. File descriptor set, generated by protoc.\nTo generate, use protoc with imports and source info included. For an example test.proto file, the following command would put the value in a new file named out.pb.\n$ protoc --include_imports --include_source_info test.proto -o out.pb\nStructure is documented below.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/gcp:apigateway/ApiConfigGrpcServiceSource:ApiConfigGrpcServiceSource"},"description":"Uncompiled proto files associated with the descriptor set, used for display purposes (server-side compilation is not supported). These should match the inputs to 'protoc' command used to generate fileDescriptorSet.\nStructure is documented below.\n"}},"type":"object","required":["fileDescriptorSet"]},"gcp:apigateway/ApiConfigGrpcServiceFileDescriptorSet:ApiConfigGrpcServiceFileDescriptorSet":{"properties":{"contents":{"type":"string","description":"Base64 encoded content of the file.\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The file path (full or relative path). This is typically the path of the file when it is uploaded.\n","willReplaceOnChanges":true}},"type":"object","required":["contents","path"]},"gcp:apigateway/ApiConfigGrpcServiceSource:ApiConfigGrpcServiceSource":{"properties":{"contents":{"type":"string","description":"Base64 encoded content of the file.\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The file path (full or relative path). This is typically the path of the file when it is uploaded.\n","willReplaceOnChanges":true}},"type":"object","required":["contents","path"]},"gcp:apigateway/ApiConfigIamBindingCondition:ApiConfigIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigateway/ApiConfigIamMemberCondition:ApiConfigIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigateway/ApiConfigManagedServiceConfig:ApiConfigManagedServiceConfig":{"properties":{"contents":{"type":"string","description":"Base64 encoded content of the file.\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The file path (full or relative path). This is typically the path of the file when it is uploaded.\n","willReplaceOnChanges":true}},"type":"object","required":["contents","path"]},"gcp:apigateway/ApiConfigOpenapiDocument:ApiConfigOpenapiDocument":{"properties":{"document":{"$ref":"#/types/gcp:apigateway/ApiConfigOpenapiDocumentDocument:ApiConfigOpenapiDocumentDocument","description":"The OpenAPI Specification document file.\nStructure is documented below.\n"}},"type":"object","required":["document"]},"gcp:apigateway/ApiConfigOpenapiDocumentDocument:ApiConfigOpenapiDocumentDocument":{"properties":{"contents":{"type":"string","description":"Base64 encoded content of the file.\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The file path (full or relative path). This is typically the path of the file when it is uploaded.\n","willReplaceOnChanges":true}},"type":"object","required":["contents","path"]},"gcp:apigateway/ApiIamBindingCondition:ApiIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigateway/ApiIamMemberCondition:ApiIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigateway/GatewayIamBindingCondition:GatewayIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigateway/GatewayIamMemberCondition:GatewayIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigee/AddonsConfigAddonsConfig:AddonsConfigAddonsConfig":{"properties":{"advancedApiOpsConfig":{"$ref":"#/types/gcp:apigee/AddonsConfigAddonsConfigAdvancedApiOpsConfig:AddonsConfigAddonsConfigAdvancedApiOpsConfig","description":"Configuration for the Advanced API Ops add-on.\nStructure is documented below.\n"},"apiSecurityConfig":{"$ref":"#/types/gcp:apigee/AddonsConfigAddonsConfigApiSecurityConfig:AddonsConfigAddonsConfigApiSecurityConfig","description":"Configuration for the API Security add-on.\nStructure is documented below.\n"},"connectorsPlatformConfig":{"$ref":"#/types/gcp:apigee/AddonsConfigAddonsConfigConnectorsPlatformConfig:AddonsConfigAddonsConfigConnectorsPlatformConfig","description":"Configuration for the Monetization add-on.\nStructure is documented below.\n"},"integrationConfig":{"$ref":"#/types/gcp:apigee/AddonsConfigAddonsConfigIntegrationConfig:AddonsConfigAddonsConfigIntegrationConfig","description":"Configuration for the Integration add-on.\nStructure is documented below.\n"},"monetizationConfig":{"$ref":"#/types/gcp:apigee/AddonsConfigAddonsConfigMonetizationConfig:AddonsConfigAddonsConfigMonetizationConfig","description":"Configuration for the Monetization add-on.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/AddonsConfigAddonsConfigAdvancedApiOpsConfig:AddonsConfigAddonsConfigAdvancedApiOpsConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that specifies whether the Advanced API Ops add-on is enabled.\n"}},"type":"object"},"gcp:apigee/AddonsConfigAddonsConfigApiSecurityConfig:AddonsConfigAddonsConfigApiSecurityConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that specifies whether the API security add-on is enabled.\n"},"expiresAt":{"type":"string","description":"(Output)\nTime at which the API Security add-on expires in in milliseconds since epoch. If unspecified, the add-on will never expire.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["expiresAt"]}}},"gcp:apigee/AddonsConfigAddonsConfigConnectorsPlatformConfig:AddonsConfigAddonsConfigConnectorsPlatformConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that specifies whether the Connectors Platform add-on is enabled.\n"},"expiresAt":{"type":"string","description":"(Output)\nTime at which the Connectors Platform add-on expires in milliseconds since epoch. If unspecified, the add-on will never expire.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["expiresAt"]}}},"gcp:apigee/AddonsConfigAddonsConfigIntegrationConfig:AddonsConfigAddonsConfigIntegrationConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that specifies whether the Integration add-on is enabled.\n"}},"type":"object"},"gcp:apigee/AddonsConfigAddonsConfigMonetizationConfig:AddonsConfigAddonsConfigMonetizationConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that specifies whether the Monetization add-on is enabled.\n"}},"type":"object"},"gcp:apigee/ApiMetaData:ApiMetaData":{"properties":{"createdAt":{"type":"string","description":"Time at which the API proxy was created, in milliseconds since epoch.\n"},"lastModifiedAt":{"type":"string","description":"Time at which the API proxy was most recently modified, in milliseconds since epoch.\n"},"subType":{"type":"string","description":"The type of entity described\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","lastModifiedAt","subType"]}}},"gcp:apigee/ApiProductAttribute:ApiProductAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute.\n"},"value":{"type":"string","description":"Value of the attribute.\n"}},"type":"object"},"gcp:apigee/ApiProductGraphqlOperationGroup:ApiProductGraphqlOperationGroup":{"properties":{"operationConfigType":{"type":"string","description":"Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`proxy`\" pulumi-lang-dotnet=\"`Proxy`\" pulumi-lang-go=\"`proxy`\" pulumi-lang-python=\"`proxy`\" pulumi-lang-yaml=\"`proxy`\" pulumi-lang-java=\"`proxy`\"\u003e`proxy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`remoteservice`\" pulumi-lang-dotnet=\"`Remoteservice`\" pulumi-lang-go=\"`remoteservice`\" pulumi-lang-python=\"`remoteservice`\" pulumi-lang-yaml=\"`remoteservice`\" pulumi-lang-java=\"`remoteservice`\"\u003e`remoteservice`\u003c/span\u003e.\n"},"operationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductGraphqlOperationGroupOperationConfig:ApiProductGraphqlOperationGroupOperationConfig"},"description":"List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/ApiProductGraphqlOperationGroupOperationConfig:ApiProductGraphqlOperationGroupOperationConfig":{"properties":{"apiSource":{"type":"string","description":"Required. Name of the API proxy with which the gRPC operation and quota are associated.\n"},"attributes":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductGraphqlOperationGroupOperationConfigAttribute:ApiProductGraphqlOperationGroupOperationConfigAttribute"},"description":"Custom attributes associated with the operation.\nStructure is documented below.\n"},"operations":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductGraphqlOperationGroupOperationConfigOperation:ApiProductGraphqlOperationGroupOperationConfigOperation"},"description":"Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.\nNote: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.\nStructure is documented below.\n"},"quota":{"$ref":"#/types/gcp:apigee/ApiProductGraphqlOperationGroupOperationConfigQuota:ApiProductGraphqlOperationGroupOperationConfigQuota","description":"Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/ApiProductGraphqlOperationGroupOperationConfigAttribute:ApiProductGraphqlOperationGroupOperationConfigAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute.\n"},"value":{"type":"string","description":"Value of the attribute.\n"}},"type":"object"},"gcp:apigee/ApiProductGraphqlOperationGroupOperationConfigOperation:ApiProductGraphqlOperationGroupOperationConfigOperation":{"properties":{"operation":{"type":"string","description":"GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.\n"},"operationTypes":{"type":"array","items":{"type":"string"},"description":"Required. GraphQL operation types. Valid values include query or mutation.\nNote: Apigee does not currently support subscription types.\n"}},"type":"object"},"gcp:apigee/ApiProductGraphqlOperationGroupOperationConfigQuota:ApiProductGraphqlOperationGroupOperationConfigQuota":{"properties":{"interval":{"type":"string","description":"Required. Time interval over which the number of request messages is calculated.\n"},"limit":{"type":"string","description":"Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.\n"},"timeUnit":{"type":"string","description":"Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.\n"}},"type":"object"},"gcp:apigee/ApiProductGrpcOperationGroup:ApiProductGrpcOperationGroup":{"properties":{"operationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductGrpcOperationGroupOperationConfig:ApiProductGrpcOperationGroupOperationConfig"},"description":"Required. List of operation configurations for either Apigee API proxies that are associated with this API product.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/ApiProductGrpcOperationGroupOperationConfig:ApiProductGrpcOperationGroupOperationConfig":{"properties":{"apiSource":{"type":"string","description":"Required. Name of the API proxy with which the gRPC operation and quota are associated.\n"},"attributes":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductGrpcOperationGroupOperationConfigAttribute:ApiProductGrpcOperationGroupOperationConfigAttribute"},"description":"Custom attributes associated with the operation.\nStructure is documented below.\n"},"methods":{"type":"array","items":{"type":"string"},"description":"List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy.\nExample: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply [\"ListPets\", \"GetPet\"].\nNote: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.\n"},"quota":{"$ref":"#/types/gcp:apigee/ApiProductGrpcOperationGroupOperationConfigQuota:ApiProductGrpcOperationGroupOperationConfigQuota","description":"Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.\nStructure is documented below.\n"},"service":{"type":"string","description":"Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.\n"}},"type":"object"},"gcp:apigee/ApiProductGrpcOperationGroupOperationConfigAttribute:ApiProductGrpcOperationGroupOperationConfigAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute.\n"},"value":{"type":"string","description":"Value of the attribute.\n"}},"type":"object"},"gcp:apigee/ApiProductGrpcOperationGroupOperationConfigQuota:ApiProductGrpcOperationGroupOperationConfigQuota":{"properties":{"interval":{"type":"string","description":"Required. Time interval over which the number of request messages is calculated.\n"},"limit":{"type":"string","description":"Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.\n"},"timeUnit":{"type":"string","description":"Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.\n"}},"type":"object"},"gcp:apigee/ApiProductOperationGroup:ApiProductOperationGroup":{"properties":{"operationConfigType":{"type":"string","description":"Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`proxy`\" pulumi-lang-dotnet=\"`Proxy`\" pulumi-lang-go=\"`proxy`\" pulumi-lang-python=\"`proxy`\" pulumi-lang-yaml=\"`proxy`\" pulumi-lang-java=\"`proxy`\"\u003e`proxy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`remoteservice`\" pulumi-lang-dotnet=\"`Remoteservice`\" pulumi-lang-go=\"`remoteservice`\" pulumi-lang-python=\"`remoteservice`\" pulumi-lang-yaml=\"`remoteservice`\" pulumi-lang-java=\"`remoteservice`\"\u003e`remoteservice`\u003c/span\u003e.\n"},"operationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductOperationGroupOperationConfig:ApiProductOperationGroupOperationConfig"},"description":"Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/ApiProductOperationGroupOperationConfig:ApiProductOperationGroupOperationConfig":{"properties":{"apiSource":{"type":"string","description":"Required. Name of the API proxy with which the gRPC operation and quota are associated.\n"},"attributes":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductOperationGroupOperationConfigAttribute:ApiProductOperationGroupOperationConfigAttribute"},"description":"Custom attributes associated with the operation.\nStructure is documented below.\n"},"operations":{"type":"array","items":{"$ref":"#/types/gcp:apigee/ApiProductOperationGroupOperationConfigOperation:ApiProductOperationGroupOperationConfigOperation"},"description":"Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.\nNote: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.\nStructure is documented below.\n"},"quota":{"$ref":"#/types/gcp:apigee/ApiProductOperationGroupOperationConfigQuota:ApiProductOperationGroupOperationConfigQuota","description":"Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/ApiProductOperationGroupOperationConfigAttribute:ApiProductOperationGroupOperationConfigAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute.\n"},"value":{"type":"string","description":"Value of the attribute.\n"}},"type":"object"},"gcp:apigee/ApiProductOperationGroupOperationConfigOperation:ApiProductOperationGroupOperationConfigOperation":{"properties":{"methods":{"type":"array","items":{"type":"string"},"description":"Methods refers to the REST verbs, when none specified, all verb types are allowed.\n"},"resource":{"type":"string","description":"Required. REST resource path associated with the API proxy or remote service.\n"}},"type":"object"},"gcp:apigee/ApiProductOperationGroupOperationConfigQuota:ApiProductOperationGroupOperationConfigQuota":{"properties":{"interval":{"type":"string","description":"Required. Time interval over which the number of request messages is calculated.\n"},"limit":{"type":"string","description":"Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.\n"},"timeUnit":{"type":"string","description":"Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.\n"}},"type":"object"},"gcp:apigee/AppGroupAttribute:AppGroupAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute\n"},"value":{"type":"string","description":"Value of the attribute\n"}},"type":"object"},"gcp:apigee/DeveloperAppAttribute:DeveloperAppAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute\n"},"value":{"type":"string","description":"Value of the attribute\n"}},"type":"object"},"gcp:apigee/DeveloperAppCredential:DeveloperAppCredential":{"properties":{"apiProducts":{"type":"array","items":{"$ref":"#/types/gcp:apigee/DeveloperAppCredentialApiProduct:DeveloperAppCredentialApiProduct"},"description":"List of API products associated with the developer app.\n"},"attributes":{"type":"array","items":{"$ref":"#/types/gcp:apigee/DeveloperAppCredentialAttribute:DeveloperAppCredentialAttribute"},"description":"Developer attributes (name/value pairs). The custom attribute limit is 18.\nStructure is documented below.\n"},"consumerKey":{"type":"string","description":"(Output)\nConsumer key.\n"},"consumerSecret":{"type":"string","description":"(Output)\nSecret key.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"expiresAt":{"type":"string","description":"(Output)\nTime the credential will expire in milliseconds since epoch.\n"},"issuedAt":{"type":"string","description":"(Output)\nTime the credential was issued in milliseconds since epoch.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"Scopes to apply to the developer app.\nThe specified scopes must already exist for the API product that\nyou associate with the developer app.\n"},"status":{"type":"string","description":"Status of the credential. Valid values include approved or revoked.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiProducts","attributes","consumerKey","consumerSecret","expiresAt","issuedAt","scopes","status"]}}},"gcp:apigee/DeveloperAppCredentialApiProduct:DeveloperAppCredentialApiProduct":{"properties":{"apiproduct":{"type":"string","description":"(Output)\nName of the API product.\n"},"status":{"type":"string","description":"Status of the credential. Valid values include approved or revoked.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiproduct","status"]}}},"gcp:apigee/DeveloperAppCredentialAttribute:DeveloperAppCredentialAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute\n"},"value":{"type":"string","description":"Value of the attribute\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","value"]}}},"gcp:apigee/DeveloperAttribute:DeveloperAttribute":{"properties":{"name":{"type":"string","description":"Key of the attribute\n"},"value":{"type":"string","description":"Value of the attribute\n"}},"type":"object"},"gcp:apigee/DnsZonePeeringConfig:DnsZonePeeringConfig":{"properties":{"targetNetworkId":{"type":"string","description":"The name of the producer VPC network.\n","willReplaceOnChanges":true},"targetProjectId":{"type":"string","description":"The ID of the project that contains the producer VPC network.\n","willReplaceOnChanges":true}},"type":"object","required":["targetNetworkId","targetProjectId"]},"gcp:apigee/EnvironmentClientIpResolutionConfig:EnvironmentClientIpResolutionConfig":{"properties":{"headerIndexAlgorithm":{"$ref":"#/types/gcp:apigee/EnvironmentClientIpResolutionConfigHeaderIndexAlgorithm:EnvironmentClientIpResolutionConfigHeaderIndexAlgorithm","description":"Resolves the client ip based on a custom header.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/EnvironmentClientIpResolutionConfigHeaderIndexAlgorithm:EnvironmentClientIpResolutionConfigHeaderIndexAlgorithm":{"properties":{"ipHeaderIndex":{"type":"integer","description":"The index of the ip in the header. Positive indices 0, 1, 2, 3 chooses indices from the left (first ips). Negative indices -1, -2, -3 chooses indices from the right (last ips).\n"},"ipHeaderName":{"type":"string","description":"The name of the header to extract the client ip from. We are currently only supporting the X-Forwarded-For header.\n"}},"type":"object","required":["ipHeaderIndex","ipHeaderName"]},"gcp:apigee/EnvironmentIamBindingCondition:EnvironmentIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigee/EnvironmentIamMemberCondition:EnvironmentIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:apigee/EnvironmentNodeConfig:EnvironmentNodeConfig":{"properties":{"currentAggregateNodeCount":{"type":"string","description":"(Output)\nThe current total number of gateway nodes that each environment currently has across\nall instances.\n"},"maxNodeCount":{"type":"string","description":"The maximum total number of gateway nodes that the is reserved for all instances that\nhas the specified environment. If not specified, the default is determined by the\nrecommended maximum number of nodes for that gateway.\n"},"minNodeCount":{"type":"string","description":"The minimum total number of gateway nodes that the is reserved for all instances that\nhas the specified environment. If not specified, the default is determined by the\nrecommended minimum number of nodes for that gateway.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currentAggregateNodeCount"]}}},"gcp:apigee/EnvironmentProperties:EnvironmentProperties":{"properties":{"properties":{"type":"array","items":{"$ref":"#/types/gcp:apigee/EnvironmentPropertiesProperty:EnvironmentPropertiesProperty"},"description":"List of all properties in the object.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/EnvironmentPropertiesProperty:EnvironmentPropertiesProperty":{"properties":{"name":{"type":"string","description":"The property key.\n"},"value":{"type":"string","description":"The property value.\n"}},"type":"object"},"gcp:apigee/InstanceAccessLoggingConfig:InstanceAccessLoggingConfig":{"properties":{"enabled":{"type":"boolean","description":"Boolean flag that specifies whether the customer access log feature is enabled.\n","willReplaceOnChanges":true},"filter":{"type":"string","description":"Ship the access log entries that match the statusCode defined in the filter.\nThe statusCode is the only expected/supported filter field. (Ex: statusCode)\nThe filter will parse it to the Common Expression Language semantics for expression\nevaluation to build the filter condition. (Ex: \"filter\": statusCode \u003e= 200 \u0026\u0026 statusCode \u003c 300 )\n","willReplaceOnChanges":true}},"type":"object","required":["enabled"]},"gcp:apigee/KeystoresAliasesKeyCertFileCertsInfo:KeystoresAliasesKeyCertFileCertsInfo":{"properties":{"basicConstraints":{"type":"string","description":"(Output)\nX.509 basic constraints extension.\n"},"expiryDate":{"type":"string","description":"(Output)\nX.509 notAfter validity period in milliseconds since epoch.\n"},"isValid":{"type":"string","description":"(Output)\nFlag that specifies whether the certificate is valid.\nFlag is set to Yes if the certificate is valid, No if expired, or Not yet if not yet valid.\n"},"issuer":{"type":"string","description":"(Output)\nX.509 issuer.\n"},"publicKey":{"type":"string","description":"(Output)\nPublic key component of the X.509 subject public key info.\n"},"serialNumber":{"type":"string","description":"(Output)\nX.509 serial number.\n"},"sigAlgName":{"type":"string","description":"(Output)\nX.509 signatureAlgorithm.\n"},"subject":{"type":"string","description":"(Output)\nX.509 subject.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"(Output)\nX.509 subject alternative names (SANs) extension.\n"},"validFrom":{"type":"string","description":"(Output)\nX.509 notBefore validity period in milliseconds since epoch.\n"},"version":{"type":"integer","description":"(Output)\nX.509 version.\n"}},"type":"object","required":["basicConstraints","expiryDate","isValid","issuer","publicKey","serialNumber","sigAlgName","subject","subjectAlternativeNames","validFrom","version"]},"gcp:apigee/KeystoresAliasesKeyCertFileTimeouts:KeystoresAliasesKeyCertFileTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n"},"read":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n"}},"type":"object"},"gcp:apigee/KeystoresAliasesPkcs12CertsInfo:KeystoresAliasesPkcs12CertsInfo":{"properties":{"certInfos":{"type":"array","items":{"$ref":"#/types/gcp:apigee/KeystoresAliasesPkcs12CertsInfoCertInfo:KeystoresAliasesPkcs12CertsInfoCertInfo"},"description":"(Output)\nList of all properties in the object.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["certInfos"]}}},"gcp:apigee/KeystoresAliasesPkcs12CertsInfoCertInfo:KeystoresAliasesPkcs12CertsInfoCertInfo":{"properties":{"basicConstraints":{"type":"string","description":"(Output)\nX.509 basic constraints extension.\n"},"expiryDate":{"type":"string","description":"(Output)\nX.509 notAfter validity period in milliseconds since epoch.\n"},"isValid":{"type":"string","description":"(Output)\nFlag that specifies whether the certificate is valid.\nFlag is set to Yes if the certificate is valid, No if expired, or Not yet if not yet valid.\n"},"issuer":{"type":"string","description":"(Output)\nX.509 issuer.\n"},"publicKey":{"type":"string","description":"(Output)\nPublic key component of the X.509 subject public key info.\n"},"serialNumber":{"type":"string","description":"(Output)\nX.509 serial number.\n"},"sigAlgName":{"type":"string","description":"(Output)\nX.509 signatureAlgorithm.\n"},"subject":{"type":"string","description":"(Output)\nX.509 subject.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"(Output)\nX.509 subject alternative names (SANs) extension.\n"},"validFrom":{"type":"string","description":"(Output)\nX.509 notBefore validity period in milliseconds since epoch.\n"},"version":{"type":"integer","description":"(Output)\nX.509 version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["basicConstraints","expiryDate","isValid","issuer","publicKey","serialNumber","sigAlgName","subject","subjectAlternativeNames","validFrom","version"]}}},"gcp:apigee/KeystoresAliasesSelfSignedCertCertsInfo:KeystoresAliasesSelfSignedCertCertsInfo":{"properties":{"certInfos":{"type":"array","items":{"$ref":"#/types/gcp:apigee/KeystoresAliasesSelfSignedCertCertsInfoCertInfo:KeystoresAliasesSelfSignedCertCertsInfoCertInfo"},"description":"(Output)\nList of all properties in the object.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["certInfos"]}}},"gcp:apigee/KeystoresAliasesSelfSignedCertCertsInfoCertInfo:KeystoresAliasesSelfSignedCertCertsInfoCertInfo":{"properties":{"basicConstraints":{"type":"string","description":"(Output)\nX.509 basic constraints extension.\n"},"expiryDate":{"type":"string","description":"(Output)\nX.509 notAfter validity period in milliseconds since epoch.\n"},"isValid":{"type":"string","description":"(Output)\nFlag that specifies whether the certificate is valid.\nFlag is set to Yes if the certificate is valid, No if expired, or Not yet if not yet valid.\n"},"issuer":{"type":"string","description":"(Output)\nX.509 issuer.\n"},"publicKey":{"type":"string","description":"(Output)\nPublic key component of the X.509 subject public key info.\n"},"serialNumber":{"type":"string","description":"(Output)\nX.509 serial number.\n"},"sigAlgName":{"type":"string","description":"(Output)\nX.509 signatureAlgorithm.\n"},"subject":{"type":"string","description":"Subject details.\nStructure is documented below.\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"(Output)\nX.509 subject alternative names (SANs) extension.\n"},"validFrom":{"type":"string","description":"(Output)\nX.509 notBefore validity period in milliseconds since epoch.\n"},"version":{"type":"integer","description":"(Output)\nX.509 version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["basicConstraints","expiryDate","isValid","issuer","publicKey","serialNumber","sigAlgName","subject","subjectAlternativeNames","validFrom","version"]}}},"gcp:apigee/KeystoresAliasesSelfSignedCertSubject:KeystoresAliasesSelfSignedCertSubject":{"properties":{"commonName":{"type":"string","description":"Common name of the organization. Maximum length is 64 characters.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"Two-letter country code. Example, IN for India, US for United States of America.\n","willReplaceOnChanges":true},"email":{"type":"string","description":"Email address. Max 255 characters.\n","willReplaceOnChanges":true},"locality":{"type":"string","description":"City or town name. Maximum length is 128 characters.\n","willReplaceOnChanges":true},"org":{"type":"string","description":"Organization name. Maximum length is 64 characters.\n","willReplaceOnChanges":true},"orgUnit":{"type":"string","description":"Organization team name. Maximum length is 64 characters.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"State or district name. Maximum length is 128 characters.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apigee/KeystoresAliasesSelfSignedCertSubjectAlternativeDnsNames:KeystoresAliasesSelfSignedCertSubjectAlternativeDnsNames":{"properties":{"subjectAlternativeName":{"type":"string","description":"Subject Alternative Name\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apigee/OrganizationProperties:OrganizationProperties":{"properties":{"properties":{"type":"array","items":{"$ref":"#/types/gcp:apigee/OrganizationPropertiesProperty:OrganizationPropertiesProperty"},"description":"List of all properties in the object.\nStructure is documented below.\n"}},"type":"object"},"gcp:apigee/OrganizationPropertiesProperty:OrganizationPropertiesProperty":{"properties":{"name":{"type":"string","description":"Name of the property.\n"},"value":{"type":"string","description":"Value of the property.\n"}},"type":"object"},"gcp:apigee/SecurityActionAllow:SecurityActionAllow":{"type":"object"},"gcp:apigee/SecurityActionConditionConfig:SecurityActionConditionConfig":{"properties":{"accessTokens":{"type":"array","items":{"type":"string"},"description":"A list of accessTokens. Limit 1000 per action.\n","willReplaceOnChanges":true},"apiKeys":{"type":"array","items":{"type":"string"},"description":"A list of API keys. Limit 1000 per action.\n","willReplaceOnChanges":true},"apiProducts":{"type":"array","items":{"type":"string"},"description":"A list of API Products. Limit 1000 per action.\n","willReplaceOnChanges":true},"asns":{"type":"array","items":{"type":"string"},"description":"A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet)\nThis uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.\n","willReplaceOnChanges":true},"botReasons":{"type":"array","items":{"type":"string"},"description":"A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper,\nOAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper,\nSearch Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.\n","willReplaceOnChanges":true},"developerApps":{"type":"array","items":{"type":"string"},"description":"A list of developer apps. Limit 1000 per action.\n","willReplaceOnChanges":true},"developers":{"type":"array","items":{"type":"string"},"description":"A list of developers. Limit 1000 per action.\n","willReplaceOnChanges":true},"httpMethods":{"type":"array","items":{"type":"string"},"description":"Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods.\nAccepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.\n","willReplaceOnChanges":true},"ipAddressRanges":{"type":"array","items":{"type":"string"},"description":"A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.\n","willReplaceOnChanges":true},"regionCodes":{"type":"array","items":{"type":"string"},"description":"A list of countries/region codes to act on, e.g. US. This follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.\n","willReplaceOnChanges":true},"userAgents":{"type":"array","items":{"type":"string"},"description":"A list of user agents to deny. We look for exact matches. Limit 50 per action.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apigee/SecurityActionDeny:SecurityActionDeny":{"properties":{"responseCode":{"type":"integer","description":"The HTTP response code if the Action = DENY.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apigee/SecurityActionFlag:SecurityActionFlag":{"properties":{"headers":{"type":"array","items":{"$ref":"#/types/gcp:apigee/SecurityActionFlagHeader:SecurityActionFlagHeader"},"description":"A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction.\nLimit 5 headers per SecurityAction.\nAt least one is mandatory.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apigee/SecurityActionFlagHeader:SecurityActionFlagHeader":{"properties":{"name":{"type":"string","description":"The header name to be sent to the target.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The header value to be sent to the target.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apigee/SecurityFeedbackFeedbackContext:SecurityFeedbackFeedbackContext":{"properties":{"attribute":{"type":"string","description":"The attribute the user is providing feedback about.\nPossible values are: `ATTRIBUTE_ENVIRONMENTS`, `ATTRIBUTE_IP_ADDRESS_RANGES`.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The values of the attribute the user is providing feedback about, separated by commas.\n"}},"type":"object","required":["attribute","values"]},"gcp:apigee/SecurityMonitoringConditionIncludeAllResources:SecurityMonitoringConditionIncludeAllResources":{"type":"object"},"gcp:apigee/SecurityProfileV2ProfileAssessmentConfig:SecurityProfileV2ProfileAssessmentConfig":{"properties":{"assessment":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"weight":{"type":"string","description":"The weight of the assessment.\nPossible values are: `MINOR`, `MODERATE`, `MAJOR`.\n"}},"type":"object","required":["assessment","weight"]},"gcp:apigee/SharedflowMetaData:SharedflowMetaData":{"properties":{"createdAt":{"type":"string","description":"Time at which the API proxy was created, in milliseconds since epoch.\n"},"lastModifiedAt":{"type":"string","description":"Time at which the API proxy was most recently modified, in milliseconds since epoch.\n"},"subType":{"type":"string","description":"The type of entity described\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","lastModifiedAt","subType"]}}},"gcp:apigee/TargetServerSSlInfo:TargetServerSSlInfo":{"properties":{"ciphers":{"type":"array","items":{"type":"string"},"description":"The SSL/TLS cipher suites to be used. For programmable proxies, it must be one of the cipher suite names listed in: http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#ciphersuites. For configurable proxies, it must follow the configuration specified in: https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Cipher-suite-configuration. This setting has no effect for configurable proxies when negotiating TLS 1.3.\n"},"clientAuthEnabled":{"type":"boolean","description":"Enables two-way TLS.\n"},"commonName":{"$ref":"#/types/gcp:apigee/TargetServerSSlInfoCommonName:TargetServerSSlInfoCommonName","description":"The TLS Common Name of the certificate.\nStructure is documented below.\n"},"enabled":{"type":"boolean","description":"Enables TLS. If false, neither one-way nor two-way TLS will be enabled.\n"},"enforce":{"type":"boolean","description":"If true, TLS is strictly enforced.\n"},"ignoreValidationErrors":{"type":"boolean","description":"If true, Edge ignores TLS certificate errors. Valid when configuring TLS for target servers and target endpoints, and when configuring virtual hosts that use 2-way TLS. When used with a target endpoint/target server, if the backend system uses SNI and returns a cert with a subject Distinguished Name (DN) that does not match the hostname, there is no way to ignore the error and the connection fails.\n"},"keyAlias":{"type":"string","description":"Required if clientAuthEnabled is true. The resource ID for the alias containing the private key and cert.\n"},"keyStore":{"type":"string","description":"Required if clientAuthEnabled is true. The resource ID of the keystore.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The TLS versioins to be used.\n"},"trustStore":{"type":"string","description":"The resource ID of the truststore.\n"}},"type":"object","required":["enabled"]},"gcp:apigee/TargetServerSSlInfoCommonName:TargetServerSSlInfoCommonName":{"properties":{"value":{"type":"string","description":"The TLS Common Name string of the certificate.\n"},"wildcardMatch":{"type":"boolean","description":"Indicates whether the cert should be matched against as a wildcard cert.\n"}},"type":"object"},"gcp:apihub/ApiHubInstanceConfig:ApiHubInstanceConfig":{"properties":{"cmekKeyName":{"type":"string","description":"Optional. The Customer Managed Encryption Key (CMEK) used for data encryption.\nThe CMEK name should follow the format of\n`projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`,\nwhere the location must match the instance location.\nIf the CMEK is not provided, a GMEK will be created for the instance.\n","willReplaceOnChanges":true},"disableSearch":{"type":"boolean","description":"Optional. If true, the search will be disabled for the instance. The default value\nis false.\n","willReplaceOnChanges":true},"encryptionType":{"type":"string","description":"Optional. Encryption type for the region. If the encryption type is CMEK, the\u003cspan pulumi-lang-nodejs=\"\ncmekKeyName \" pulumi-lang-dotnet=\"\nCmekKeyName \" pulumi-lang-go=\"\ncmekKeyName \" pulumi-lang-python=\"\ncmek_key_name \" pulumi-lang-yaml=\"\ncmekKeyName \" pulumi-lang-java=\"\ncmekKeyName \"\u003e\ncmek_key_name \u003c/span\u003emust be provided. If no encryption type is provided,\nGMEK will be used.\nPossible values:\nENCRYPTION_TYPE_UNSPECIFIED\nGMEK\nCMEK\n","willReplaceOnChanges":true},"vertexLocation":{"type":"string","description":"Optional. The name of the Vertex AI location where the data store is stored.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["encryptionType"]}}},"gcp:apihub/CurationEndpoint:CurationEndpoint":{"properties":{"applicationIntegrationEndpointDetails":{"$ref":"#/types/gcp:apihub/CurationEndpointApplicationIntegrationEndpointDetails:CurationEndpointApplicationIntegrationEndpointDetails","description":"The details of the Application Integration endpoint to be triggered for\ncuration.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["applicationIntegrationEndpointDetails"]},"gcp:apihub/CurationEndpointApplicationIntegrationEndpointDetails:CurationEndpointApplicationIntegrationEndpointDetails":{"properties":{"triggerId":{"type":"string","description":"The API trigger ID of the Application Integration workflow.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The endpoint URI should be a valid REST URI for triggering an Application\nIntegration.\nFormat:\n`https://integrations.googleapis.com/v1/{name=projects/*/locations/*/integrations/*}:execute`\nor\n`https://{location}-integrations.googleapis.com/v1/{name=projects/*/locations/*/integrations/*}:execute`\n","willReplaceOnChanges":true}},"type":"object","required":["triggerId","uri"]},"gcp:apihub/CurationPluginInstanceAction:CurationPluginInstanceAction":{"properties":{"actionId":{"type":"string","description":"(Output)\nThe action ID that is using the curation.\nThis should map to one of the action IDs specified\nin action configs in the plugin.\n"},"pluginInstance":{"type":"string","description":"(Output)\nPlugin instance that is using the curation.\nFormat is\n`projects/{project}/locations/{locati on}/plugins/{plugin}/instances/{instance}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["actionId","pluginInstance"]}}},"gcp:apihub/PluginActionsConfig:PluginActionsConfig":{"properties":{"description":{"type":"string","description":"The description of the operation performed by the action.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"The display name of the action.\n","willReplaceOnChanges":true},"id":{"type":"string","description":"The id of the action.\n","willReplaceOnChanges":true},"triggerMode":{"type":"string","description":"The trigger mode supported by the action.\nPossible values:\nTRIGGER_MODE_UNSPECIFIED\nAPI_HUB_ON_DEMAND_TRIGGER\nAPI_HUB_SCHEDULE_TRIGGER\nNON_API_HUB_MANAGED\n","willReplaceOnChanges":true}},"type":"object","required":["description","displayName","id","triggerMode"]},"gcp:apihub/PluginConfigTemplate:PluginConfigTemplate":{"properties":{"additionalConfigTemplates":{"type":"array","items":{"$ref":"#/types/gcp:apihub/PluginConfigTemplateAdditionalConfigTemplate:PluginConfigTemplateAdditionalConfigTemplate"},"description":"The list of additional configuration variables for the plugin's\nconfiguration.\nStructure is documented below.\n","willReplaceOnChanges":true},"authConfigTemplate":{"$ref":"#/types/gcp:apihub/PluginConfigTemplateAuthConfigTemplate:PluginConfigTemplateAuthConfigTemplate","description":"AuthConfigTemplate represents the authentication template for a plugin.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apihub/PluginConfigTemplateAdditionalConfigTemplate:PluginConfigTemplateAdditionalConfigTemplate":{"properties":{"description":{"type":"string","description":"Description.\n","willReplaceOnChanges":true},"enumOptions":{"type":"array","items":{"$ref":"#/types/gcp:apihub/PluginConfigTemplateAdditionalConfigTemplateEnumOption:PluginConfigTemplateAdditionalConfigTemplateEnumOption"},"description":"Enum options. To be populated if `ValueType` is `ENUM`.\nStructure is documented below.\n","willReplaceOnChanges":true},"id":{"type":"string","description":"ID of the config variable. Must be unique within the configuration.\n","willReplaceOnChanges":true},"multiSelectOptions":{"type":"array","items":{"$ref":"#/types/gcp:apihub/PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption:PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption"},"description":"Multi select options. To be populated if `ValueType` is `MULTI_SELECT`.\nStructure is documented below.\n","willReplaceOnChanges":true},"required":{"type":"boolean","description":"Flag represents that this `ConfigVariable` must be provided for a\nPluginInstance.\n","willReplaceOnChanges":true},"validationRegex":{"type":"string","description":"Regular expression in RE2 syntax used for validating the \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e of a\n`ConfigVariable`.\n","willReplaceOnChanges":true},"valueType":{"type":"string","description":"Type of the parameter: string, int, bool etc.\nPossible values:\nVALUE_TYPE_UNSPECIFIED\nSTRING\nINT\nBOOL\nSECRET\nENUM\nMULTI_SELECT\nMULTI_STRING\nMULTI_INT\n","willReplaceOnChanges":true}},"type":"object","required":["id","valueType"]},"gcp:apihub/PluginConfigTemplateAdditionalConfigTemplateEnumOption:PluginConfigTemplateAdditionalConfigTemplateEnumOption":{"properties":{"description":{"type":"string","description":"Description of the option.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Display name of the option.\n","willReplaceOnChanges":true},"id":{"type":"string","description":"Id of the option.\n","willReplaceOnChanges":true}},"type":"object","required":["displayName","id"]},"gcp:apihub/PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption:PluginConfigTemplateAdditionalConfigTemplateMultiSelectOption":{"properties":{"description":{"type":"string","description":"Description of the option.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"Display name of the option.\n","willReplaceOnChanges":true},"id":{"type":"string","description":"Id of the option.\n","willReplaceOnChanges":true}},"type":"object","required":["displayName","id"]},"gcp:apihub/PluginConfigTemplateAuthConfigTemplate:PluginConfigTemplateAuthConfigTemplate":{"properties":{"serviceAccount":{"$ref":"#/types/gcp:apihub/PluginConfigTemplateAuthConfigTemplateServiceAccount:PluginConfigTemplateAuthConfigTemplateServiceAccount","description":"Config for Google service account authentication.\nStructure is documented below.\n","willReplaceOnChanges":true},"supportedAuthTypes":{"type":"array","items":{"type":"string"},"description":"The list of authentication types supported by the plugin.\n","willReplaceOnChanges":true}},"type":"object","required":["supportedAuthTypes"]},"gcp:apihub/PluginConfigTemplateAuthConfigTemplateServiceAccount:PluginConfigTemplateAuthConfigTemplateServiceAccount":{"properties":{"serviceAccount":{"type":"string","description":"The service account to be used for authenticating request.\nThe `iam.serviceAccounts.getAccessToken` permission should be granted on\nthis service account to the impersonator service account.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceAccount"]},"gcp:apihub/PluginDocumentation:PluginDocumentation":{"properties":{"externalUri":{"type":"string","description":"The uri of the externally hosted documentation.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apihub/PluginHostingService:PluginHostingService":{"properties":{"serviceUri":{"type":"string","description":"The URI of the service implemented by the plugin developer, used to\ninvoke the plugin's functionality. This information is only required for\nuser defined plugins.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:apihub/PluginInstanceAction:PluginInstanceAction":{"properties":{"actionId":{"type":"string","description":"This should map to one of the action id specified\nin\u003cspan pulumi-lang-nodejs=\" actionsConfig \" pulumi-lang-dotnet=\" ActionsConfig \" pulumi-lang-go=\" actionsConfig \" pulumi-lang-python=\" actions_config \" pulumi-lang-yaml=\" actionsConfig \" pulumi-lang-java=\" actionsConfig \"\u003e actions_config \u003c/span\u003ein the plugin.\n","willReplaceOnChanges":true},"curationConfig":{"$ref":"#/types/gcp:apihub/PluginInstanceActionCurationConfig:PluginInstanceActionCurationConfig","description":"The curation information for this plugin instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"hubInstanceActions":{"type":"array","items":{"$ref":"#/types/gcp:apihub/PluginInstanceActionHubInstanceAction:PluginInstanceActionHubInstanceAction"},"description":"(Output)\nThe execution status for the plugin instance.\nStructure is documented below.\n"},"scheduleCronExpression":{"type":"string","description":"The schedule for this plugin instance action. This can only be set if the\nplugin supports API_HUB_SCHEDULE_TRIGGER mode for this action.\n","willReplaceOnChanges":true},"scheduleTimeZone":{"type":"string","description":"The time zone for the schedule cron expression. If not provided, UTC will\nbe used.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedActionsHubInstanceAction\"\" pulumi-lang-dotnet=\"\"NestedActionsHubInstanceAction\"\" pulumi-lang-go=\"\"nestedActionsHubInstanceAction\"\" pulumi-lang-python=\"\"nested_actions_hub_instance_action\"\" pulumi-lang-yaml=\"\"nestedActionsHubInstanceAction\"\" pulumi-lang-java=\"\"nestedActionsHubInstanceAction\"\"\u003e\"nested_actions_hub_instance_action\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`hubInstanceAction`\" pulumi-lang-dotnet=\"`HubInstanceAction`\" pulumi-lang-go=\"`hubInstanceAction`\" pulumi-lang-python=\"`hub_instance_action`\" pulumi-lang-yaml=\"`hubInstanceAction`\" pulumi-lang-java=\"`hubInstanceAction`\"\u003e`hub_instance_action`\u003c/span\u003e block contains:\n","willReplaceOnChanges":true},"state":{"type":"string","description":"(Output)\nThe current state of the plugin action in the plugin instance.\nPossible values:\nSTATE_UNSPECIFIED\nENABLED\nDISABLED\nENABLING\nDISABLING\nERROR\n"}},"type":"object","required":["actionId"],"language":{"nodejs":{"requiredOutputs":["actionId","curationConfig","hubInstanceActions","scheduleCronExpression","scheduleTimeZone","state"]}}},"gcp:apihub/PluginInstanceActionCurationConfig:PluginInstanceActionCurationConfig":{"properties":{"curationType":{"type":"string","description":"Possible values:\nCURATION_TYPE_UNSPECIFIED\nDEFAULT_CURATION_FOR_API_METADATA\nCUSTOM_CURATION_FOR_API_METADATA\n","willReplaceOnChanges":true},"customCuration":{"$ref":"#/types/gcp:apihub/PluginInstanceActionCurationConfigCustomCuration:PluginInstanceActionCurationConfigCustomCuration","description":"Custom curation information for this plugin instance.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["curationType"]}}},"gcp:apihub/PluginInstanceActionCurationConfigCustomCuration:PluginInstanceActionCurationConfigCustomCuration":{"properties":{"curation":{"type":"string","description":"The unique name of the curation resource. This will be the name of the\ncuration resource in the format:\n`projects/{project}/locations/{location}/curations/{curation}`\n","willReplaceOnChanges":true}},"type":"object","required":["curation"]},"gcp:apihub/PluginInstanceActionHubInstanceAction:PluginInstanceActionHubInstanceAction":{"properties":{"currentExecutionState":{"type":"string","description":"The current state of the execution.\nPossible values:\nCURRENT_EXECUTION_STATE_UNSPECIFIED\nRUNNING\nNOT_RUNNING\n"},"lastExecutions":{"type":"array","items":{"$ref":"#/types/gcp:apihub/PluginInstanceActionHubInstanceActionLastExecution:PluginInstanceActionHubInstanceActionLastExecution"},"description":"The result of the last execution of the plugin instance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currentExecutionState","lastExecutions"]}}},"gcp:apihub/PluginInstanceActionHubInstanceActionLastExecution:PluginInstanceActionHubInstanceActionLastExecution":{"properties":{"endTime":{"type":"string","description":"The last execution end time of the plugin instance.\n"},"errorMessage":{"type":"string","description":"Error message describing the failure, if any, during Create, Delete or\nApplyConfig operation corresponding to the plugin instance.This field will\nonly be populated if the plugin instance is in the ERROR or FAILED state.\n"},"result":{"type":"string","description":"The result of the last execution of the plugin instance.\nPossible values:\nRESULT_UNSPECIFIED\nSUCCEEDED\nFAILED\n"},"startTime":{"type":"string","description":"The last execution start time of the plugin instance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endTime","errorMessage","result","startTime"]}}},"gcp:apihub/PluginInstanceAuthConfig:PluginInstanceAuthConfig":{"properties":{"apiKeyConfig":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigApiKeyConfig:PluginInstanceAuthConfigApiKeyConfig","description":"Config for authentication with API key.\nStructure is documented below.\n","willReplaceOnChanges":true},"authType":{"type":"string","description":"Possible values:\nAUTH_TYPE_UNSPECIFIED\nNO_AUTH\nGOOGLE_SERVICE_ACCOUNT\nUSER_PASSWORD\nAPI_KEY\nOAUTH2_CLIENT_CREDENTIALS\n","willReplaceOnChanges":true},"googleServiceAccountConfig":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigGoogleServiceAccountConfig:PluginInstanceAuthConfigGoogleServiceAccountConfig","description":"Config for Google service account authentication.\nStructure is documented below.\n","willReplaceOnChanges":true},"oauth2ClientCredentialsConfig":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigOauth2ClientCredentialsConfig:PluginInstanceAuthConfigOauth2ClientCredentialsConfig","description":"Parameters to support Oauth 2.0 client credentials grant authentication.\nSee https://tools.ietf.org/html/rfc6749#section-1.3.4 for more details.\nStructure is documented below.\n","willReplaceOnChanges":true},"userPasswordConfig":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigUserPasswordConfig:PluginInstanceAuthConfigUserPasswordConfig","description":"Parameters to support Username and Password Authentication.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["authType"]},"gcp:apihub/PluginInstanceAuthConfigApiKeyConfig:PluginInstanceAuthConfigApiKeyConfig":{"properties":{"apiKey":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigApiKeyConfigApiKey:PluginInstanceAuthConfigApiKeyConfigApiKey","description":"Secret provides a reference to entries in Secret Manager.\nStructure is documented below.\n","willReplaceOnChanges":true},"httpElementLocation":{"type":"string","description":"The location of the API key.\nThe default value is QUERY.\nPossible values:\nHTTP_ELEMENT_LOCATION_UNSPECIFIED\nQUERY\nHEADER\nPATH\nBODY\nCOOKIE\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The parameter name of the API key.\nE.g. If the API request is \"https://example.com/act?api_key=\",\n\u003cspan pulumi-lang-nodejs=\"\"apiKey\"\" pulumi-lang-dotnet=\"\"ApiKey\"\" pulumi-lang-go=\"\"apiKey\"\" pulumi-lang-python=\"\"api_key\"\" pulumi-lang-yaml=\"\"apiKey\"\" pulumi-lang-java=\"\"apiKey\"\"\u003e\"api_key\"\u003c/span\u003e would be the parameter name.\n","willReplaceOnChanges":true}},"type":"object","required":["apiKey","httpElementLocation","name"]},"gcp:apihub/PluginInstanceAuthConfigApiKeyConfigApiKey:PluginInstanceAuthConfigApiKeyConfigApiKey":{"properties":{"secretVersion":{"type":"string","description":"The resource name of the secret version in the format,\nformat as: `projects/*/secrets/*/versions/*`.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedAuthConfigOauth2ClientCredentialsConfig\"\" pulumi-lang-dotnet=\"\"NestedAuthConfigOauth2ClientCredentialsConfig\"\" pulumi-lang-go=\"\"nestedAuthConfigOauth2ClientCredentialsConfig\"\" pulumi-lang-python=\"\"nested_auth_config_oauth2_client_credentials_config\"\" pulumi-lang-yaml=\"\"nestedAuthConfigOauth2ClientCredentialsConfig\"\" pulumi-lang-java=\"\"nestedAuthConfigOauth2ClientCredentialsConfig\"\"\u003e\"nested_auth_config_oauth2_client_credentials_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`oauth2ClientCredentialsConfig`\" pulumi-lang-dotnet=\"`Oauth2ClientCredentialsConfig`\" pulumi-lang-go=\"`oauth2ClientCredentialsConfig`\" pulumi-lang-python=\"`oauth2_client_credentials_config`\" pulumi-lang-yaml=\"`oauth2ClientCredentialsConfig`\" pulumi-lang-java=\"`oauth2ClientCredentialsConfig`\"\u003e`oauth2_client_credentials_config`\u003c/span\u003e block supports:\n","willReplaceOnChanges":true}},"type":"object","required":["secretVersion"]},"gcp:apihub/PluginInstanceAuthConfigGoogleServiceAccountConfig:PluginInstanceAuthConfigGoogleServiceAccountConfig":{"properties":{"serviceAccount":{"type":"string","description":"The service account to be used for authenticating request.\nThe `iam.serviceAccounts.getAccessToken` permission should be granted on\nthis service account to the impersonator service account.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceAccount"]},"gcp:apihub/PluginInstanceAuthConfigOauth2ClientCredentialsConfig:PluginInstanceAuthConfigOauth2ClientCredentialsConfig":{"properties":{"clientId":{"type":"string","description":"The client identifier.\n","willReplaceOnChanges":true},"clientSecret":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigOauth2ClientCredentialsConfigClientSecret:PluginInstanceAuthConfigOauth2ClientCredentialsConfigClientSecret","description":"Secret provides a reference to entries in Secret Manager.\n","willReplaceOnChanges":true}},"type":"object","required":["clientId","clientSecret"]},"gcp:apihub/PluginInstanceAuthConfigOauth2ClientCredentialsConfigClientSecret:PluginInstanceAuthConfigOauth2ClientCredentialsConfigClientSecret":{"properties":{"secretVersion":{"type":"string","description":"The resource name of the secret version in the format,\nformat as: `projects/*/secrets/*/versions/*`.\n","willReplaceOnChanges":true}},"type":"object","required":["secretVersion"]},"gcp:apihub/PluginInstanceAuthConfigUserPasswordConfig:PluginInstanceAuthConfigUserPasswordConfig":{"properties":{"password":{"$ref":"#/types/gcp:apihub/PluginInstanceAuthConfigUserPasswordConfigPassword:PluginInstanceAuthConfigUserPasswordConfigPassword","description":"Secret provides a reference to entries in Secret Manager.\nStructure is documented below.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username.\n","willReplaceOnChanges":true}},"type":"object","required":["password","username"]},"gcp:apihub/PluginInstanceAuthConfigUserPasswordConfigPassword:PluginInstanceAuthConfigUserPasswordConfigPassword":{"properties":{"secretVersion":{"type":"string","description":"The resource name of the secret version in the format,\nformat as: `projects/*/secrets/*/versions/*`.\n","willReplaceOnChanges":true}},"type":"object","required":["secretVersion"]},"gcp:appengine/ApplicationFeatureSettings:ApplicationFeatureSettings":{"properties":{"splitHealthChecks":{"type":"boolean","description":"Set to false to use the legacy health check instead of the readiness\nand liveness checks.\n"}},"type":"object","required":["splitHealthChecks"]},"gcp:appengine/ApplicationIap:ApplicationIap":{"properties":{"enabled":{"type":"boolean","description":"(Optional) Whether the serving infrastructure will authenticate and authorize all incoming requests. \n(default is false)\n"},"oauth2ClientId":{"type":"string","description":"OAuth2 client ID to use for the authentication flow.\n"},"oauth2ClientSecret":{"type":"string","description":"OAuth2 client secret to use for the authentication flow.\nThe SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.\n","secret":true},"oauth2ClientSecretSha256":{"type":"string","description":"Hex-encoded SHA-256 hash of the client secret.\n","secret":true}},"type":"object","required":["oauth2ClientId","oauth2ClientSecret"],"language":{"nodejs":{"requiredOutputs":["oauth2ClientId","oauth2ClientSecret","oauth2ClientSecretSha256"]}}},"gcp:appengine/ApplicationUrlDispatchRule:ApplicationUrlDispatchRule":{"properties":{"domain":{"type":"string"},"path":{"type":"string"},"service":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domain","path","service"]}}},"gcp:appengine/ApplicationUrlDispatchRulesDispatchRule:ApplicationUrlDispatchRulesDispatchRule":{"properties":{"domain":{"type":"string","description":"Domain name to match against. The wildcard \"*\" is supported if specified before a period: \"*.\".\nDefaults to matching all domains: \"*\".\n"},"path":{"type":"string","description":"Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.\nThe sum of the lengths of the domain and path may not exceed 100 characters.\n"},"service":{"type":"string","description":"Pathname within the host. Must start with a \"/\". A single \"*\" can be included at the end of the path.\nThe sum of the lengths of the domain and path may not exceed 100 characters.\n"}},"type":"object","required":["path","service"]},"gcp:appengine/DomainMappingResourceRecord:DomainMappingResourceRecord":{"properties":{"name":{"type":"string","description":"Relative name of the object affected by this record. Only applicable for CNAME records. Example: 'www'.\n"},"rrdata":{"type":"string","description":"Data for this record. Values vary by record type, as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1).\n"},"type":{"type":"string","description":"Resource record type. Example: `AAAA`.\nPossible values are: `A`, `AAAA`, `CNAME`.\n"}},"type":"object"},"gcp:appengine/DomainMappingSslSettings:DomainMappingSslSettings":{"properties":{"certificateId":{"type":"string","description":"ID of the AuthorizedCertificate resource configuring SSL for the application. Clearing this field will\nremove SSL support.\nBy default, a managed certificate is automatically created for every domain mapping. To omit SSL support\nor to configure SSL manually, specify `SslManagementType.MANUAL` on a `CREATE` or `UPDATE` request. You must be\nauthorized to administer the `AuthorizedCertificate` resource to manually map it to a DomainMapping resource.\nExample: 12345.\n"},"pendingManagedCertificateId":{"type":"string","description":"(Output)\nID of the managed `AuthorizedCertificate` resource currently being provisioned, if applicable. Until the new\nmanaged certificate has been successfully provisioned, the previous SSL state will be preserved. Once the\nprovisioning process completes, the `certificateId` field will reflect the new managed certificate and this\nfield will be left empty. To remove SSL support while there is still a pending managed certificate, clear the\n`certificateId` field with an update request.\n"},"sslManagementType":{"type":"string","description":"SSL management type for this domain. If `AUTOMATIC`, a managed certificate is automatically provisioned.\nIf `MANUAL`, `certificateId` must be manually specified in order to configure SSL for this domain.\nPossible values are: `AUTOMATIC`, `MANUAL`.\n"}},"type":"object","required":["sslManagementType"],"language":{"nodejs":{"requiredOutputs":["certificateId","pendingManagedCertificateId","sslManagementType"]}}},"gcp:appengine/EngineSplitTrafficSplit:EngineSplitTrafficSplit":{"properties":{"allocations":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping from version IDs within the service to fractional (0.000, 1] allocations of traffic for that version. Each version can be specified only once, but some versions in the service may not have any traffic allocation. Services that have traffic allocated cannot be deleted until either the service is deleted or their traffic allocation is removed. Allocations must sum to 1. Up to two decimal place precision is supported for IP-based splits and up to three decimal places is supported for cookie-based splits.\n"},"shardBy":{"type":"string","description":"Mechanism used to determine which version a request is sent to. The traffic selection algorithm will be stable for either type until allocations are changed.\nPossible values are: `UNSPECIFIED`, `COOKIE`, `IP`, `RANDOM`.\n"}},"type":"object","required":["allocations"]},"gcp:appengine/FlexibleAppVersionApiConfig:FlexibleAppVersionApiConfig":{"properties":{"authFailAction":{"type":"string","description":"Action to take when users access resources that require authentication.\nDefault value is `AUTH_FAIL_ACTION_REDIRECT`.\nPossible values are: `AUTH_FAIL_ACTION_REDIRECT`, `AUTH_FAIL_ACTION_UNAUTHORIZED`.\n"},"login":{"type":"string","description":"Level of login required to access this resource.\nDefault value is `LOGIN_OPTIONAL`.\nPossible values are: `LOGIN_OPTIONAL`, `LOGIN_ADMIN`, `LOGIN_REQUIRED`.\n"},"script":{"type":"string","description":"Path to the script from the application root directory.\n"},"securityLevel":{"type":"string","description":"Security (HTTPS) enforcement for this URL.\nPossible values are: `SECURE_DEFAULT`, `SECURE_NEVER`, `SECURE_OPTIONAL`, `SECURE_ALWAYS`.\n"},"url":{"type":"string","description":"URL to serve the endpoint at.\n"}},"type":"object","required":["script"]},"gcp:appengine/FlexibleAppVersionAutomaticScaling:FlexibleAppVersionAutomaticScaling":{"properties":{"coolDownPeriod":{"type":"string","description":"The time period that the Autoscaler should wait before it starts collecting information from a new instance.\nThis prevents the autoscaler from collecting information when the instance is initializing,\nduring which the collected usage would not be reliable. Default: 120s\n"},"cpuUtilization":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionAutomaticScalingCpuUtilization:FlexibleAppVersionAutomaticScalingCpuUtilization","description":"Target scaling by CPU usage.\nStructure is documented below.\n"},"diskUtilization":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionAutomaticScalingDiskUtilization:FlexibleAppVersionAutomaticScalingDiskUtilization","description":"Target scaling by disk usage.\nStructure is documented below.\n"},"maxConcurrentRequests":{"type":"integer","description":"Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.\nDefaults to a runtime-specific value.\n"},"maxIdleInstances":{"type":"integer","description":"Maximum number of idle instances that should be maintained for this version.\n"},"maxPendingLatency":{"type":"string","description":"Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.\n"},"maxTotalInstances":{"type":"integer","description":"Maximum number of instances that should be started to handle requests for this version. Default: 20\n"},"minIdleInstances":{"type":"integer","description":"Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.\n"},"minPendingLatency":{"type":"string","description":"Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.\n"},"minTotalInstances":{"type":"integer","description":"Minimum number of running instances that should be maintained for this version. Default: 2\n"},"networkUtilization":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionAutomaticScalingNetworkUtilization:FlexibleAppVersionAutomaticScalingNetworkUtilization","description":"Target scaling by network usage.\nStructure is documented below.\n"},"requestUtilization":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionAutomaticScalingRequestUtilization:FlexibleAppVersionAutomaticScalingRequestUtilization","description":"Target scaling by request utilization.\nStructure is documented below.\n"}},"type":"object","required":["cpuUtilization"],"language":{"nodejs":{"requiredOutputs":["cpuUtilization","maxConcurrentRequests"]}}},"gcp:appengine/FlexibleAppVersionAutomaticScalingCpuUtilization:FlexibleAppVersionAutomaticScalingCpuUtilization":{"properties":{"aggregationWindowLength":{"type":"string","description":"Period of time over which CPU utilization is calculated.\n"},"targetUtilization":{"type":"number","description":"Target CPU utilization ratio to maintain when scaling. Must be between 0 and 1.\n"}},"type":"object","required":["targetUtilization"]},"gcp:appengine/FlexibleAppVersionAutomaticScalingDiskUtilization:FlexibleAppVersionAutomaticScalingDiskUtilization":{"properties":{"targetReadBytesPerSecond":{"type":"integer","description":"Target bytes read per second.\n"},"targetReadOpsPerSecond":{"type":"integer","description":"Target ops read per seconds.\n"},"targetWriteBytesPerSecond":{"type":"integer","description":"Target bytes written per second.\n"},"targetWriteOpsPerSecond":{"type":"integer","description":"Target ops written per second.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionAutomaticScalingNetworkUtilization:FlexibleAppVersionAutomaticScalingNetworkUtilization":{"properties":{"targetReceivedBytesPerSecond":{"type":"integer","description":"Target bytes received per second.\n"},"targetReceivedPacketsPerSecond":{"type":"integer","description":"Target packets received per second.\n"},"targetSentBytesPerSecond":{"type":"integer","description":"Target bytes sent per second.\n"},"targetSentPacketsPerSecond":{"type":"integer","description":"Target packets sent per second.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionAutomaticScalingRequestUtilization:FlexibleAppVersionAutomaticScalingRequestUtilization":{"properties":{"targetConcurrentRequests":{"type":"number","description":"Target number of concurrent requests.\n"},"targetRequestCountPerSecond":{"type":"string","description":"Target requests per second.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionDeployment:FlexibleAppVersionDeployment":{"properties":{"cloudBuildOptions":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionDeploymentCloudBuildOptions:FlexibleAppVersionDeploymentCloudBuildOptions","description":"Options for the build operations performed as a part of the version deployment. Only applicable when creating a version using source code directly.\nStructure is documented below.\n"},"container":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionDeploymentContainer:FlexibleAppVersionDeploymentContainer","description":"The Docker image for the container that runs the version.\nStructure is documented below.\n"},"files":{"type":"array","items":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionDeploymentFile:FlexibleAppVersionDeploymentFile"},"description":"Manifest of the files stored in Google Cloud Storage that are included as part of this version.\nAll files must be readable using the credentials supplied with this call.\nStructure is documented below.\n"},"zip":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionDeploymentZip:FlexibleAppVersionDeploymentZip","description":"Zip File\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["container"]}}},"gcp:appengine/FlexibleAppVersionDeploymentCloudBuildOptions:FlexibleAppVersionDeploymentCloudBuildOptions":{"properties":{"appYamlPath":{"type":"string","description":"Path to the yaml file used in deployment, used to determine runtime configuration details.\n"},"cloudBuildTimeout":{"type":"string","description":"The Cloud Build timeout used as part of any dependent builds performed by version creation. Defaults to 10 minutes.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"}},"type":"object","required":["appYamlPath"]},"gcp:appengine/FlexibleAppVersionDeploymentContainer:FlexibleAppVersionDeploymentContainer":{"properties":{"image":{"type":"string","description":"URI to the hosted container image in Google Container Registry. The URI must be fully qualified and include a tag or digest.\nExamples: \"gcr.io/my-project/image:tag\" or \"gcr.io/my-project/image@digest\"\n"}},"type":"object","required":["image"]},"gcp:appengine/FlexibleAppVersionDeploymentFile:FlexibleAppVersionDeploymentFile":{"properties":{"name":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"sha1Sum":{"type":"string","description":"SHA1 checksum of the file\n"},"sourceUrl":{"type":"string","description":"Source URL\n"}},"type":"object","required":["name","sourceUrl"]},"gcp:appengine/FlexibleAppVersionDeploymentZip:FlexibleAppVersionDeploymentZip":{"properties":{"filesCount":{"type":"integer","description":"files count\n"},"sourceUrl":{"type":"string","description":"Source URL\n"}},"type":"object","required":["sourceUrl"]},"gcp:appengine/FlexibleAppVersionEndpointsApiService:FlexibleAppVersionEndpointsApiService":{"properties":{"configId":{"type":"string","description":"Endpoints service configuration ID as specified by the Service Management API. For example \"2016-09-19r1\".\nBy default, the rollout strategy for Endpoints is \"FIXED\". This means that Endpoints starts up with a particular configuration ID.\nWhen a new configuration is rolled out, Endpoints must be given the new configuration ID. The configId field is used to give the configuration ID\nand is required in this case.\nEndpoints also has a rollout strategy called \"MANAGED\". When using this, Endpoints fetches the latest configuration and does not need\nthe configuration ID. In this case, configId must be omitted.\n"},"disableTraceSampling":{"type":"boolean","description":"Enable or disable trace sampling. By default, this is set to false for enabled.\n"},"name":{"type":"string","description":"Endpoints service name which is the name of the \"service\" resource in the Service Management API.\nFor example \"myapi.endpoints.myproject.cloud.goog\"\n"},"rolloutStrategy":{"type":"string","description":"Endpoints rollout strategy. If FIXED, configId must be specified. If MANAGED, configId must be omitted.\nDefault value is `FIXED`.\nPossible values are: `FIXED`, `MANAGED`.\n"}},"type":"object","required":["name"]},"gcp:appengine/FlexibleAppVersionEntrypoint:FlexibleAppVersionEntrypoint":{"properties":{"shell":{"type":"string","description":"The format should be a shell command that can be fed to bash -c.\n"}},"type":"object","required":["shell"]},"gcp:appengine/FlexibleAppVersionFlexibleRuntimeSettings:FlexibleAppVersionFlexibleRuntimeSettings":{"properties":{"operatingSystem":{"type":"string","description":"Operating System of the application runtime.\n"},"runtimeVersion":{"type":"string","description":"The runtime version of an App Engine flexible application.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionHandler:FlexibleAppVersionHandler":{"properties":{"authFailAction":{"type":"string","description":"Actions to take when the user is not logged in.\nPossible values are: `AUTH_FAIL_ACTION_REDIRECT`, `AUTH_FAIL_ACTION_UNAUTHORIZED`.\n"},"login":{"type":"string","description":"Methods to restrict access to a URL based on login status.\nPossible values are: `LOGIN_OPTIONAL`, `LOGIN_ADMIN`, `LOGIN_REQUIRED`.\n"},"redirectHttpResponseCode":{"type":"string","description":"30x code to use when performing redirects for the secure field.\nPossible values are: `REDIRECT_HTTP_RESPONSE_CODE_301`, `REDIRECT_HTTP_RESPONSE_CODE_302`, `REDIRECT_HTTP_RESPONSE_CODE_303`, `REDIRECT_HTTP_RESPONSE_CODE_307`.\n"},"script":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionHandlerScript:FlexibleAppVersionHandlerScript","description":"Executes a script to handle the requests that match this URL pattern.\nOnly the auto value is supported for Node.js in the App Engine standard environment, for example \"script:\" \"auto\".\nStructure is documented below.\n"},"securityLevel":{"type":"string","description":"Security (HTTPS) enforcement for this URL.\nPossible values are: `SECURE_DEFAULT`, `SECURE_NEVER`, `SECURE_OPTIONAL`, `SECURE_ALWAYS`.\n"},"staticFiles":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionHandlerStaticFiles:FlexibleAppVersionHandlerStaticFiles","description":"Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files.\nStatic file handlers describe which files in the application directory are static files, and which URLs serve them.\nStructure is documented below.\n"},"urlRegex":{"type":"string","description":"URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.\nAll URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionHandlerScript:FlexibleAppVersionHandlerScript":{"properties":{"scriptPath":{"type":"string","description":"Path to the script from the application root directory.\n"}},"type":"object","required":["scriptPath"]},"gcp:appengine/FlexibleAppVersionHandlerStaticFiles:FlexibleAppVersionHandlerStaticFiles":{"properties":{"applicationReadable":{"type":"boolean","description":"Whether files should also be uploaded as code data. By default, files declared in static file handlers are\nuploaded as static data and are only served to end users; they cannot be read by the application. If enabled,\nuploads are charged against both your code and static data storage resource quotas.\n"},"expiration":{"type":"string","description":"Time a static file served by this handler should be cached by web proxies and browsers.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example \"3.5s\".\nDefault is '0s'\n"},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers to use for all responses from these URLs.\nAn object containing a list of \"key:value\" value pairs.\".\n"},"mimeType":{"type":"string","description":"MIME type used to serve all files served by this handler.\nDefaults to file-specific MIME types, which are derived from each file's filename extension.\n"},"path":{"type":"string","description":"Path to the static files matched by the URL pattern, from the application root directory.\nThe path can refer to text matched in groupings in the URL pattern.\n"},"requireMatchingFile":{"type":"boolean","description":"Whether this handler should match the request if the file referenced by the handler does not exist.\n"},"uploadPathRegex":{"type":"string","description":"Regular expression that matches the file paths for all files that should be referenced by this handler.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionLivenessCheck:FlexibleAppVersionLivenessCheck":{"properties":{"checkInterval":{"type":"string","description":"Interval between health checks.\n"},"failureThreshold":{"type":"number","description":"Number of consecutive failed checks required before considering the VM unhealthy. Default: 4.\n"},"host":{"type":"string","description":"Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"\n"},"initialDelay":{"type":"string","description":"The initial delay before starting to execute the checks. Default: \"300s\"\n"},"path":{"type":"string","description":"The request path.\n"},"successThreshold":{"type":"number","description":"Number of consecutive successful checks required before considering the VM healthy. Default: 2.\n"},"timeout":{"type":"string","description":"Time before the check is considered failed. Default: \"4s\"\n"}},"type":"object","required":["path"]},"gcp:appengine/FlexibleAppVersionManualScaling:FlexibleAppVersionManualScaling":{"properties":{"instances":{"type":"integer","description":"Number of instances to assign to the service at the start.\n**Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2\nModules API set_num_instances() you must use `lifecycle.ignore_changes = [\u003cspan pulumi-lang-nodejs=\"\"manualScaling\"\" pulumi-lang-dotnet=\"\"ManualScaling\"\" pulumi-lang-go=\"\"manualScaling\"\" pulumi-lang-python=\"\"manual_scaling\"\" pulumi-lang-yaml=\"\"manualScaling\"\" pulumi-lang-java=\"\"manualScaling\"\"\u003e\"manual_scaling\"\u003c/span\u003e[0].instances]` to prevent drift detection.\n"}},"type":"object","required":["instances"]},"gcp:appengine/FlexibleAppVersionNetwork:FlexibleAppVersionNetwork":{"properties":{"forwardedPorts":{"type":"array","items":{"type":"string"},"description":"List of ports, or port pairs, to forward from the virtual machine to the application container.\n"},"instanceIpMode":{"type":"string","description":"(Optional, Beta)\nPrevent instances from receiving an ephemeral external IP address.\nPossible values are: `EXTERNAL`, `INTERNAL`.\n"},"instanceTag":{"type":"string","description":"Tag to apply to the instance during creation.\n"},"name":{"type":"string","description":"Google Compute Engine network where the virtual machines are created. Specify the short name, not the resource path.\n"},"sessionAffinity":{"type":"boolean","description":"Enable session affinity.\n"},"subnetwork":{"type":"string","description":"Google Cloud Platform sub-network where the virtual machines are created. Specify the short name, not the resource path.\nIf the network that the instance is being created in is a Legacy network, then the IP address is allocated from the IPv4Range.\nIf the network that the instance is being created in is an auto Subnet Mode Network, then only network name should be specified (not the subnetworkName) and the IP address is created from the IPCidrRange of the subnetwork that exists in that zone for that network.\nIf the network that the instance is being created in is a custom Subnet Mode Network, then the subnetworkName must be specified and the IP address is created from the IPCidrRange of the subnetwork.\nIf specified, the subnetwork must exist in the same region as the App Engine flexible environment application.\n"}},"type":"object","required":["name"]},"gcp:appengine/FlexibleAppVersionReadinessCheck:FlexibleAppVersionReadinessCheck":{"properties":{"appStartTimeout":{"type":"string","description":"A maximum time limit on application initialization, measured from moment the application successfully\nreplies to a healthcheck until it is ready to serve traffic. Default: \"300s\"\n"},"checkInterval":{"type":"string","description":"Interval between health checks.  Default: \"5s\".\n"},"failureThreshold":{"type":"number","description":"Number of consecutive failed checks required before removing traffic. Default: 2.\n"},"host":{"type":"string","description":"Host header to send when performing a HTTP Readiness check. Example: \"myapp.appspot.com\"\n"},"path":{"type":"string","description":"The request path.\n"},"successThreshold":{"type":"number","description":"Number of consecutive successful checks required before receiving traffic. Default: 2.\n"},"timeout":{"type":"string","description":"Time before the check is considered failed. Default: \"4s\"\n"}},"type":"object","required":["path"]},"gcp:appengine/FlexibleAppVersionResources:FlexibleAppVersionResources":{"properties":{"cpu":{"type":"integer","description":"Number of CPU cores needed.\n"},"diskGb":{"type":"integer","description":"Disk size (GB) needed.\n"},"memoryGb":{"type":"number","description":"Memory (GB) needed.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:appengine/FlexibleAppVersionResourcesVolume:FlexibleAppVersionResourcesVolume"},"description":"List of ports, or port pairs, to forward from the virtual machine to the application container.\nStructure is documented below.\n"}},"type":"object"},"gcp:appengine/FlexibleAppVersionResourcesVolume:FlexibleAppVersionResourcesVolume":{"properties":{"name":{"type":"string","description":"Unique name for the volume.\n"},"sizeGb":{"type":"integer","description":"Volume size in gigabytes.\n"},"volumeType":{"type":"string","description":"Underlying volume type, e.g. 'tmpfs'.\n"}},"type":"object","required":["name","sizeGb","volumeType"]},"gcp:appengine/FlexibleAppVersionVpcAccessConnector:FlexibleAppVersionVpcAccessConnector":{"properties":{"name":{"type":"string","description":"Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.\n"}},"type":"object","required":["name"]},"gcp:appengine/ServiceNetworkSettingsNetworkSettings:ServiceNetworkSettingsNetworkSettings":{"properties":{"ingressTrafficAllowed":{"type":"string","description":"The ingress settings for version or service.\nDefault value is `INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED`.\nPossible values are: `INGRESS_TRAFFIC_ALLOWED_UNSPECIFIED`, `INGRESS_TRAFFIC_ALLOWED_ALL`, `INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY`, `INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LB`.\n"}},"type":"object"},"gcp:appengine/StandardAppVersionAutomaticScaling:StandardAppVersionAutomaticScaling":{"properties":{"maxConcurrentRequests":{"type":"integer","description":"Number of concurrent requests an automatic scaling instance can accept before the scheduler spawns a new instance.\nDefaults to a runtime-specific value.\n"},"maxIdleInstances":{"type":"integer","description":"Maximum number of idle instances that should be maintained for this version.\n"},"maxPendingLatency":{"type":"string","description":"Maximum amount of time that a request should wait in the pending queue before starting a new instance to handle it.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"},"minIdleInstances":{"type":"integer","description":"Minimum number of idle instances that should be maintained for this version. Only applicable for the default version of a service.\n"},"minPendingLatency":{"type":"string","description":"Minimum amount of time a request should wait in the pending queue before starting a new instance to handle it.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"},"standardSchedulerSettings":{"$ref":"#/types/gcp:appengine/StandardAppVersionAutomaticScalingStandardSchedulerSettings:StandardAppVersionAutomaticScalingStandardSchedulerSettings","description":"Scheduler settings for standard environment.\nStructure is documented below.\n"}},"type":"object"},"gcp:appengine/StandardAppVersionAutomaticScalingStandardSchedulerSettings:StandardAppVersionAutomaticScalingStandardSchedulerSettings":{"properties":{"maxInstances":{"type":"integer","description":"Maximum number of instances to run for this version. Set to zero to disable maxInstances configuration.\n**Note:** Starting from March 2025, App Engine sets the maxInstances default for standard environment deployments to 20. This change doesn't impact existing apps. To override the default, specify a new value between 0 and 2147483647, and deploy a new version or redeploy over an existing version. To disable the maxInstances default configuration setting, specify the maximum permitted value 2147483647.\n"},"minInstances":{"type":"integer","description":"Minimum number of instances to run for this version. Set to zero to disable minInstances configuration.\n"},"targetCpuUtilization":{"type":"number","description":"Target CPU utilization ratio to maintain when scaling. Should be a value in the range [0.50, 0.95], zero, or a negative value.\n"},"targetThroughputUtilization":{"type":"number","description":"Target throughput utilization ratio to maintain when scaling. Should be a value in the range [0.50, 0.95], zero, or a negative value.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxInstances"]}}},"gcp:appengine/StandardAppVersionBasicScaling:StandardAppVersionBasicScaling":{"properties":{"idleTimeout":{"type":"string","description":"Duration of time after the last request that an instance must wait before the instance is shut down.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n"},"maxInstances":{"type":"integer","description":"Maximum number of instances to create for this version. Must be in the range [1.0, 200.0].\n"}},"type":"object","required":["maxInstances"]},"gcp:appengine/StandardAppVersionDeployment:StandardAppVersionDeployment":{"properties":{"files":{"type":"array","items":{"$ref":"#/types/gcp:appengine/StandardAppVersionDeploymentFile:StandardAppVersionDeploymentFile"},"description":"Manifest of the files stored in Google Cloud Storage that are included as part of this version.\nAll files must be readable using the credentials supplied with this call.\nStructure is documented below.\n"},"zip":{"$ref":"#/types/gcp:appengine/StandardAppVersionDeploymentZip:StandardAppVersionDeploymentZip","description":"Zip File\nStructure is documented below.\n"}},"type":"object"},"gcp:appengine/StandardAppVersionDeploymentFile:StandardAppVersionDeploymentFile":{"properties":{"name":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"sha1Sum":{"type":"string","description":"SHA1 checksum of the file\n"},"sourceUrl":{"type":"string","description":"Source URL\n"}},"type":"object","required":["name","sourceUrl"]},"gcp:appengine/StandardAppVersionDeploymentZip:StandardAppVersionDeploymentZip":{"properties":{"filesCount":{"type":"integer","description":"files count\n"},"sourceUrl":{"type":"string","description":"Source URL\n"}},"type":"object","required":["sourceUrl"]},"gcp:appengine/StandardAppVersionEntrypoint:StandardAppVersionEntrypoint":{"properties":{"shell":{"type":"string","description":"The format should be a shell command that can be fed to bash -c.\n"}},"type":"object","required":["shell"]},"gcp:appengine/StandardAppVersionHandler:StandardAppVersionHandler":{"properties":{"authFailAction":{"type":"string","description":"Actions to take when the user is not logged in.\nPossible values are: `AUTH_FAIL_ACTION_REDIRECT`, `AUTH_FAIL_ACTION_UNAUTHORIZED`.\n"},"login":{"type":"string","description":"Methods to restrict access to a URL based on login status.\nPossible values are: `LOGIN_OPTIONAL`, `LOGIN_ADMIN`, `LOGIN_REQUIRED`.\n"},"redirectHttpResponseCode":{"type":"string","description":"30x code to use when performing redirects for the secure field.\nPossible values are: `REDIRECT_HTTP_RESPONSE_CODE_301`, `REDIRECT_HTTP_RESPONSE_CODE_302`, `REDIRECT_HTTP_RESPONSE_CODE_303`, `REDIRECT_HTTP_RESPONSE_CODE_307`.\n"},"script":{"$ref":"#/types/gcp:appengine/StandardAppVersionHandlerScript:StandardAppVersionHandlerScript","description":"Executes a script to handle the requests that match this URL pattern.\nOnly the auto value is supported for Node.js in the App Engine standard environment, for example \"script:\" \"auto\".\nStructure is documented below.\n"},"securityLevel":{"type":"string","description":"Security (HTTPS) enforcement for this URL.\nPossible values are: `SECURE_DEFAULT`, `SECURE_NEVER`, `SECURE_OPTIONAL`, `SECURE_ALWAYS`.\n"},"staticFiles":{"$ref":"#/types/gcp:appengine/StandardAppVersionHandlerStaticFiles:StandardAppVersionHandlerStaticFiles","description":"Files served directly to the user for a given URL, such as images, CSS stylesheets, or JavaScript source files. Static file handlers describe which files in the application directory are static files, and which URLs serve them.\nStructure is documented below.\n"},"urlRegex":{"type":"string","description":"URL prefix. Uses regular expression syntax, which means regexp special characters must be escaped, but should not contain groupings.\nAll URLs that begin with this prefix are handled by this handler, using the portion of the URL after the prefix as part of the file path.\n"}},"type":"object"},"gcp:appengine/StandardAppVersionHandlerScript:StandardAppVersionHandlerScript":{"properties":{"scriptPath":{"type":"string","description":"Path to the script from the application root directory.\n"}},"type":"object","required":["scriptPath"]},"gcp:appengine/StandardAppVersionHandlerStaticFiles:StandardAppVersionHandlerStaticFiles":{"properties":{"applicationReadable":{"type":"boolean","description":"Whether files should also be uploaded as code data. By default, files declared in static file handlers are uploaded as\nstatic data and are only served to end users; they cannot be read by the application. If enabled, uploads are charged\nagainst both your code and static data storage resource quotas.\n"},"expiration":{"type":"string","description":"Time a static file served by this handler should be cached by web proxies and browsers.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example \"3.5s\".\n"},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers to use for all responses from these URLs.\nAn object containing a list of \"key:value\" value pairs.\".\n"},"mimeType":{"type":"string","description":"MIME type used to serve all files served by this handler.\nDefaults to file-specific MIME types, which are derived from each file's filename extension.\n"},"path":{"type":"string","description":"Path to the static files matched by the URL pattern, from the application root directory. The path can refer to text matched in groupings in the URL pattern.\n"},"requireMatchingFile":{"type":"boolean","description":"Whether this handler should match the request if the file referenced by the handler does not exist.\n"},"uploadPathRegex":{"type":"string","description":"Regular expression that matches the file paths for all files that should be referenced by this handler.\n"}},"type":"object"},"gcp:appengine/StandardAppVersionLibrary:StandardAppVersionLibrary":{"properties":{"name":{"type":"string","description":"Name of the library. Example \"django\".\n"},"version":{"type":"string","description":"Version of the library to select, or \"latest\".\n"}},"type":"object"},"gcp:appengine/StandardAppVersionManualScaling:StandardAppVersionManualScaling":{"properties":{"instances":{"type":"integer","description":"Number of instances to assign to the service at the start.\n**Note:** When managing the number of instances at runtime through the App Engine Admin API or the (now deprecated) Python 2\nModules API set_num_instances() you must use `lifecycle.ignore_changes = [\u003cspan pulumi-lang-nodejs=\"\"manualScaling\"\" pulumi-lang-dotnet=\"\"ManualScaling\"\" pulumi-lang-go=\"\"manualScaling\"\" pulumi-lang-python=\"\"manual_scaling\"\" pulumi-lang-yaml=\"\"manualScaling\"\" pulumi-lang-java=\"\"manualScaling\"\"\u003e\"manual_scaling\"\u003c/span\u003e[0].instances]` to prevent drift detection.\n"}},"type":"object","required":["instances"]},"gcp:appengine/StandardAppVersionVpcAccessConnector:StandardAppVersionVpcAccessConnector":{"properties":{"egressSetting":{"type":"string","description":"The egress setting for the connector, controlling what traffic is diverted through it.\n"},"name":{"type":"string","description":"Full Serverless VPC Access Connector name e.g. /projects/my-project/locations/us-central1/connectors/c1.\n"}},"type":"object","required":["name"]},"gcp:apphub/ApplicationAttributes:ApplicationAttributes":{"properties":{"businessOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ApplicationAttributesBusinessOwner:ApplicationAttributesBusinessOwner"},"description":"Optional. Business team that ensures user needs are met and value is delivered\nStructure is documented below.\n"},"criticality":{"$ref":"#/types/gcp:apphub/ApplicationAttributesCriticality:ApplicationAttributesCriticality","description":"Criticality of the Application, Service, or Workload\nStructure is documented below.\n"},"developerOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ApplicationAttributesDeveloperOwner:ApplicationAttributesDeveloperOwner"},"description":"Optional. Developer team that owns development and coding.\nStructure is documented below.\n"},"environment":{"$ref":"#/types/gcp:apphub/ApplicationAttributesEnvironment:ApplicationAttributesEnvironment","description":"Environment of the Application, Service, or Workload\nStructure is documented below.\n"},"operatorOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ApplicationAttributesOperatorOwner:ApplicationAttributesOperatorOwner"},"description":"Optional. Operator team that ensures runtime and operations.\nStructure is documented below.\n"}},"type":"object"},"gcp:apphub/ApplicationAttributesBusinessOwner:ApplicationAttributesBusinessOwner":{"properties":{"displayName":{"type":"string","description":"Optional. Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/ApplicationAttributesCriticality:ApplicationAttributesCriticality":{"properties":{"type":{"type":"string","description":"Criticality type.\nPossible values are: `MISSION_CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.\n"}},"type":"object","required":["type"]},"gcp:apphub/ApplicationAttributesDeveloperOwner:ApplicationAttributesDeveloperOwner":{"properties":{"displayName":{"type":"string","description":"Optional. Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/ApplicationAttributesEnvironment:ApplicationAttributesEnvironment":{"properties":{"type":{"type":"string","description":"Environment type.\nPossible values are: `PRODUCTION`, `STAGING`, `TEST`, `DEVELOPMENT`.\n"}},"type":"object","required":["type"]},"gcp:apphub/ApplicationAttributesOperatorOwner:ApplicationAttributesOperatorOwner":{"properties":{"displayName":{"type":"string","description":"Optional. Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/ApplicationScope:ApplicationScope":{"properties":{"type":{"type":"string","description":"Required. Scope Type.\nPossible values:\nREGIONAL\nGLOBAL\nPossible values are: `REGIONAL`, `GLOBAL`.\n"}},"type":"object","required":["type"]},"gcp:apphub/ServiceAttributes:ServiceAttributes":{"properties":{"businessOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceAttributesBusinessOwner:ServiceAttributesBusinessOwner"},"description":"Business team that ensures user needs are met and value is delivered\nStructure is documented below.\n"},"criticality":{"$ref":"#/types/gcp:apphub/ServiceAttributesCriticality:ServiceAttributesCriticality","description":"Criticality of the Application, Service, or Workload\nStructure is documented below.\n"},"developerOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceAttributesDeveloperOwner:ServiceAttributesDeveloperOwner"},"description":"Developer team that owns development and coding.\nStructure is documented below.\n"},"environment":{"$ref":"#/types/gcp:apphub/ServiceAttributesEnvironment:ServiceAttributesEnvironment","description":"Environment of the Application, Service, or Workload\nStructure is documented below.\n"},"operatorOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceAttributesOperatorOwner:ServiceAttributesOperatorOwner"},"description":"Operator team that ensures runtime and operations.\nStructure is documented below.\n"}},"type":"object"},"gcp:apphub/ServiceAttributesBusinessOwner:ServiceAttributesBusinessOwner":{"properties":{"displayName":{"type":"string","description":"Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/ServiceAttributesCriticality:ServiceAttributesCriticality":{"properties":{"type":{"type":"string","description":"Criticality type.\nPossible values are: `MISSION_CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.\n"}},"type":"object","required":["type"]},"gcp:apphub/ServiceAttributesDeveloperOwner:ServiceAttributesDeveloperOwner":{"properties":{"displayName":{"type":"string","description":"Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/ServiceAttributesEnvironment:ServiceAttributesEnvironment":{"properties":{"type":{"type":"string","description":"Environment type.\nPossible values are: `PRODUCTION`, `STAGING`, `TEST`, `DEVELOPMENT`.\n"}},"type":"object","required":["type"]},"gcp:apphub/ServiceAttributesOperatorOwner:ServiceAttributesOperatorOwner":{"properties":{"displayName":{"type":"string","description":"Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/ServiceServiceProperty:ServiceServiceProperty":{"properties":{"extendedMetadatas":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceServicePropertyExtendedMetadata:ServiceServicePropertyExtendedMetadata"},"description":"(Output)\nOutput only. Additional metadata specific to the resource type.\nStructure is documented below.\n"},"functionalTypes":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceServicePropertyFunctionalType:ServiceServicePropertyFunctionalType"},"description":"(Output)\nOutput only. The type of the service.\nStructure is documented below.\n"},"gcpProject":{"type":"string","description":"(Output)\nOutput only. The service project identifier that the underlying cloud resource resides in.\n"},"identities":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceServicePropertyIdentity:ServiceServicePropertyIdentity"},"description":"(Output)\nThe identity associated with the service.\nStructure is documented below.\n"},"location":{"type":"string","description":"Part of \u003cspan pulumi-lang-nodejs=\"`parent`\" pulumi-lang-dotnet=\"`Parent`\" pulumi-lang-go=\"`parent`\" pulumi-lang-python=\"`parent`\" pulumi-lang-yaml=\"`parent`\" pulumi-lang-java=\"`parent`\"\u003e`parent`\u003c/span\u003e.  Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}\n"},"registrationTypes":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceServicePropertyRegistrationType:ServiceServicePropertyRegistrationType"},"description":"(Output)\nOutput only. The registration type of the service.\nStructure is documented below.\n"},"zone":{"type":"string","description":"(Output)\nOutput only. The location that the underlying resource resides in if it is zonal, for example, us-west1-a).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["extendedMetadatas","functionalTypes","gcpProject","identities","location","registrationTypes","zone"]}}},"gcp:apphub/ServiceServicePropertyExtendedMetadata:ServiceServicePropertyExtendedMetadata":{"properties":{"key":{"type":"string","description":"(Output)\nThe key of the extended metadata.\n"},"values":{"type":"array","items":{"$ref":"#/types/gcp:apphub/ServiceServicePropertyExtendedMetadataValue:ServiceServicePropertyExtendedMetadataValue"},"description":"(Output)\nThe value of the extended metadata.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","values"]}}},"gcp:apphub/ServiceServicePropertyExtendedMetadataValue:ServiceServicePropertyExtendedMetadataValue":{"properties":{"extendedMetadataSchema":{"type":"string","description":"(Output)\nThe resource name for the Extended Metadata Schema.\n"},"metadataStruct":{"type":"string","description":"(Output)\nThe metadata contents as a JSON string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["extendedMetadataSchema","metadataStruct"]}}},"gcp:apphub/ServiceServicePropertyFunctionalType:ServiceServicePropertyFunctionalType":{"properties":{"type":{"type":"string","description":"(Output)\nOutput only. The registration type of a service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["type"]}}},"gcp:apphub/ServiceServicePropertyIdentity:ServiceServicePropertyIdentity":{"properties":{"principal":{"type":"string","description":"(Output)\nThe principal of the identity.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["principal"]}}},"gcp:apphub/ServiceServicePropertyRegistrationType:ServiceServicePropertyRegistrationType":{"properties":{"type":{"type":"string","description":"(Output)\nOutput only. The registration type of a service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["type"]}}},"gcp:apphub/ServiceServiceReference:ServiceServiceReference":{"properties":{"uri":{"type":"string","description":"(Output)\nOutput only. The underlying resource URI (For example, URI of Forwarding Rule, URL Map,\nand Backend Service).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["uri"]}}},"gcp:apphub/WorkloadAttributes:WorkloadAttributes":{"properties":{"businessOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadAttributesBusinessOwner:WorkloadAttributesBusinessOwner"},"description":"Business team that ensures user needs are met and value is delivered\nStructure is documented below.\n"},"criticality":{"$ref":"#/types/gcp:apphub/WorkloadAttributesCriticality:WorkloadAttributesCriticality","description":"Criticality of the Application, Service, or Workload\nStructure is documented below.\n"},"developerOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadAttributesDeveloperOwner:WorkloadAttributesDeveloperOwner"},"description":"Developer team that owns development and coding.\nStructure is documented below.\n"},"environment":{"$ref":"#/types/gcp:apphub/WorkloadAttributesEnvironment:WorkloadAttributesEnvironment","description":"Environment of the Application, Service, or Workload\nStructure is documented below.\n"},"operatorOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadAttributesOperatorOwner:WorkloadAttributesOperatorOwner"},"description":"Operator team that ensures runtime and operations.\nStructure is documented below.\n"}},"type":"object"},"gcp:apphub/WorkloadAttributesBusinessOwner:WorkloadAttributesBusinessOwner":{"properties":{"displayName":{"type":"string","description":"Contact's name.\n"},"email":{"type":"string","description":"Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/WorkloadAttributesCriticality:WorkloadAttributesCriticality":{"properties":{"type":{"type":"string","description":"Criticality type.\nPossible values are: `MISSION_CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.\n"}},"type":"object","required":["type"]},"gcp:apphub/WorkloadAttributesDeveloperOwner:WorkloadAttributesDeveloperOwner":{"properties":{"displayName":{"type":"string","description":"Contact's name.\n"},"email":{"type":"string","description":"Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/WorkloadAttributesEnvironment:WorkloadAttributesEnvironment":{"properties":{"type":{"type":"string","description":"Environment type.\nPossible values are: `PRODUCTION`, `STAGING`, `TEST`, `DEVELOPMENT`.\n"}},"type":"object","required":["type"]},"gcp:apphub/WorkloadAttributesOperatorOwner:WorkloadAttributesOperatorOwner":{"properties":{"displayName":{"type":"string","description":"Contact's name.\n"},"email":{"type":"string","description":"Email address of the contacts.\n"}},"type":"object","required":["email"]},"gcp:apphub/WorkloadWorkloadProperty:WorkloadWorkloadProperty":{"properties":{"extendedMetadatas":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadWorkloadPropertyExtendedMetadata:WorkloadWorkloadPropertyExtendedMetadata"},"description":"(Output)\nOutput only. Additional metadata specific to the resource type.\nStructure is documented below.\n"},"functionalTypes":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadWorkloadPropertyFunctionalType:WorkloadWorkloadPropertyFunctionalType"},"description":"(Output)\nOutput only. The functional type of a service or workload.\nStructure is documented below.\n"},"gcpProject":{"type":"string","description":"(Output)\nOutput only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.\n"},"identities":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadWorkloadPropertyIdentity:WorkloadWorkloadPropertyIdentity"},"description":"(Output)\nThe identity associated with the workload.\nStructure is documented below.\n"},"location":{"type":"string","description":"Part of \u003cspan pulumi-lang-nodejs=\"`parent`\" pulumi-lang-dotnet=\"`Parent`\" pulumi-lang-go=\"`parent`\" pulumi-lang-python=\"`parent`\" pulumi-lang-yaml=\"`parent`\" pulumi-lang-java=\"`parent`\"\u003e`parent`\u003c/span\u003e.  Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}\n"},"zone":{"type":"string","description":"(Output)\nOutput only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["extendedMetadatas","functionalTypes","gcpProject","identities","location","zone"]}}},"gcp:apphub/WorkloadWorkloadPropertyExtendedMetadata:WorkloadWorkloadPropertyExtendedMetadata":{"properties":{"key":{"type":"string","description":"(Output)\nThe key of the extended metadata.\n"},"values":{"type":"array","items":{"$ref":"#/types/gcp:apphub/WorkloadWorkloadPropertyExtendedMetadataValue:WorkloadWorkloadPropertyExtendedMetadataValue"},"description":"(Output)\nThe value of the extended metadata.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","values"]}}},"gcp:apphub/WorkloadWorkloadPropertyExtendedMetadataValue:WorkloadWorkloadPropertyExtendedMetadataValue":{"properties":{"extendedMetadataSchema":{"type":"string","description":"(Output)\nThe resource name for the Extended Metadata Schema.\n"},"metadataStruct":{"type":"string","description":"(Output)\nThe metadata contents as a JSON string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["extendedMetadataSchema","metadataStruct"]}}},"gcp:apphub/WorkloadWorkloadPropertyFunctionalType:WorkloadWorkloadPropertyFunctionalType":{"properties":{"type":{"type":"string","description":"(Output)\nOutput only. The functional type of a service or workload.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["type"]}}},"gcp:apphub/WorkloadWorkloadPropertyIdentity:WorkloadWorkloadPropertyIdentity":{"properties":{"principal":{"type":"string","description":"(Output)\nThe principal of the identity.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["principal"]}}},"gcp:apphub/WorkloadWorkloadReference:WorkloadWorkloadReference":{"properties":{"uri":{"type":"string","description":"(Output)\nOutput only. The underlying compute resource uri.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["uri"]}}},"gcp:apphub/getApplicationAttribute:getApplicationAttribute":{"properties":{"businessOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/getApplicationAttributeBusinessOwner:getApplicationAttributeBusinessOwner"},"description":"Optional. Business team that ensures user needs are met and value is delivered\n"},"criticalities":{"type":"array","items":{"$ref":"#/types/gcp:apphub/getApplicationAttributeCriticality:getApplicationAttributeCriticality"},"description":"Criticality of the Application, Service, or Workload\n"},"developerOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/getApplicationAttributeDeveloperOwner:getApplicationAttributeDeveloperOwner"},"description":"Optional. Developer team that owns development and coding.\n"},"environments":{"type":"array","items":{"$ref":"#/types/gcp:apphub/getApplicationAttributeEnvironment:getApplicationAttributeEnvironment"},"description":"Environment of the Application, Service, or Workload\n"},"operatorOwners":{"type":"array","items":{"$ref":"#/types/gcp:apphub/getApplicationAttributeOperatorOwner:getApplicationAttributeOperatorOwner"},"description":"Optional. Operator team that ensures runtime and operations.\n"}},"type":"object","required":["businessOwners","criticalities","developerOwners","environments","operatorOwners"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getApplicationAttributeBusinessOwner:getApplicationAttributeBusinessOwner":{"properties":{"displayName":{"type":"string","description":"Optional. Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["displayName","email"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getApplicationAttributeCriticality:getApplicationAttributeCriticality":{"properties":{"type":{"type":"string","description":"Criticality type. Possible values: [\"MISSION_CRITICAL\", \"HIGH\", \"MEDIUM\", \"LOW\"]\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getApplicationAttributeDeveloperOwner:getApplicationAttributeDeveloperOwner":{"properties":{"displayName":{"type":"string","description":"Optional. Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["displayName","email"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getApplicationAttributeEnvironment:getApplicationAttributeEnvironment":{"properties":{"type":{"type":"string","description":"Environment type. Possible values: [\"PRODUCTION\", \"STAGING\", \"TEST\", \"DEVELOPMENT\"]\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getApplicationAttributeOperatorOwner:getApplicationAttributeOperatorOwner":{"properties":{"displayName":{"type":"string","description":"Optional. Contact's name.\n"},"email":{"type":"string","description":"Required. Email address of the contacts.\n"}},"type":"object","required":["displayName","email"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getApplicationScope:getApplicationScope":{"properties":{"type":{"type":"string","description":"Required. Scope Type. \n Possible values:\nREGIONAL\nGLOBAL Possible values: [\"REGIONAL\", \"GLOBAL\"]\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getDiscoveredServiceServiceProperty:getDiscoveredServiceServiceProperty":{"properties":{"gcpProject":{"type":"string","description":"The service project identifier that the underlying cloud resource resides in.\n"},"location":{"type":"string","description":"The location of the discovered service.\n"},"zone":{"type":"string","description":"The location that the underlying resource resides in if it is zonal.\n"}},"type":"object","required":["gcpProject","location","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getDiscoveredServiceServiceReference:getDiscoveredServiceServiceReference":{"properties":{"path":{"type":"string","description":"Additional path under the resource URI.\n"},"uri":{"type":"string","description":"The underlying resource URI.\n"}},"type":"object","required":["path","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getDiscoveredWorkloadWorkloadProperty:getDiscoveredWorkloadWorkloadProperty":{"properties":{"gcpProject":{"type":"string","description":"The service project identifier that the underlying cloud resource resides in.\n"},"location":{"type":"string","description":"The location of the discovered workload.\n"},"zone":{"type":"string","description":"The location that the underlying resource resides in if it is zonal.\n"}},"type":"object","required":["gcpProject","location","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:apphub/getDiscoveredWorkloadWorkloadReference:getDiscoveredWorkloadWorkloadReference":{"properties":{"uri":{"type":"string","description":"The underlying resource URI.\n"}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:applicationintegration/AuthConfigClientCertificate:AuthConfigClientCertificate":{"properties":{"encryptedPrivateKey":{"type":"string","description":"The ssl certificate encoded in PEM format. This string must include the begin header and end footer lines.\n"},"passphrase":{"type":"string","description":"'passphrase' should be left unset if private key is not encrypted.\nNote that 'passphrase' is not the password for web server, but an extra layer of security to protected private key.\n"},"sslCertificate":{"type":"string","description":"The ssl certificate encoded in PEM format. This string must include the begin header and end footer lines.\n"}},"type":"object","required":["encryptedPrivateKey","sslCertificate"]},"gcp:applicationintegration/AuthConfigDecryptedCredential:AuthConfigDecryptedCredential":{"properties":{"authToken":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialAuthToken:AuthConfigDecryptedCredentialAuthToken","description":"Auth token credential.\nStructure is documented below.\n"},"credentialType":{"type":"string","description":"Credential type associated with auth configs.\n"},"jwt":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialJwt:AuthConfigDecryptedCredentialJwt","description":"JWT credential.\nStructure is documented below.\n"},"oauth2AuthorizationCode":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2AuthorizationCode:AuthConfigDecryptedCredentialOauth2AuthorizationCode","description":"OAuth2 authorization code credential.\nStructure is documented below.\n"},"oauth2ClientCredentials":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentials:AuthConfigDecryptedCredentialOauth2ClientCredentials","description":"OAuth2 client credentials.\nStructure is documented below.\n"},"oidcToken":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOidcToken:AuthConfigDecryptedCredentialOidcToken","description":"Google OIDC ID Token.\nStructure is documented below.\n"},"serviceAccountCredentials":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialServiceAccountCredentials:AuthConfigDecryptedCredentialServiceAccountCredentials","description":"Service account credential.\nStructure is documented below.\n"},"usernameAndPassword":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialUsernameAndPassword:AuthConfigDecryptedCredentialUsernameAndPassword","description":"Username and password credential.\nStructure is documented below.\n"}},"type":"object","required":["credentialType"]},"gcp:applicationintegration/AuthConfigDecryptedCredentialAuthToken:AuthConfigDecryptedCredentialAuthToken":{"properties":{"token":{"type":"string","description":"The token for the auth type.\n"},"type":{"type":"string","description":"Authentication type, e.g. \"Basic\", \"Bearer\", etc.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialJwt:AuthConfigDecryptedCredentialJwt":{"properties":{"jwt":{"type":"string","description":"(Output)\nThe token calculated by the header, payload and signature.\n"},"jwtHeader":{"type":"string","description":"Identifies which algorithm is used to generate the signature.\n"},"jwtPayload":{"type":"string","description":"Contains a set of claims. The JWT specification defines seven Registered Claim Names which are the standard fields commonly included in tokens. Custom claims are usually also included, depending on the purpose of the token.\n"},"secret":{"type":"string","description":"User's pre-shared secret to sign the token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["jwt"]}}},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2AuthorizationCode:AuthConfigDecryptedCredentialOauth2AuthorizationCode":{"properties":{"authEndpoint":{"type":"string","description":"The auth url endpoint to send the auth code request to.\n"},"clientId":{"type":"string","description":"The client's id.\n"},"clientSecret":{"type":"string","description":"The client's secret.\n"},"scope":{"type":"string","description":"A space-delimited list of requested scope permissions.\n"},"tokenEndpoint":{"type":"string","description":"The token url endpoint to send the token request to.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentials:AuthConfigDecryptedCredentialOauth2ClientCredentials":{"properties":{"clientId":{"type":"string","description":"The client's ID.\n"},"clientSecret":{"type":"string","description":"The client's secret.\n"},"requestType":{"type":"string","description":"Represent how to pass parameters to fetch access token Possible values: [\"REQUEST_TYPE_UNSPECIFIED\", \"REQUEST_BODY\", \"QUERY_PARAMETERS\", \"ENCODED_HEADER\"]\n"},"scope":{"type":"string","description":"A space-delimited list of requested scope permissions.\n"},"tokenEndpoint":{"type":"string","description":"The token endpoint is used by the client to obtain an access token by presenting its authorization grant or refresh token.\n"},"tokenParams":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParams:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParams","description":"Token parameters for the auth request.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParams:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParams":{"properties":{"entries":{"type":"array","items":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntry:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntry"},"description":"A list of parameter map entries.\nStructure is documented below.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntry:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntry":{"properties":{"key":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKey:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKey","description":"Key of the map entry.\nStructure is documented below.\n"},"value":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValue:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValue","description":"Value of the map entry.\nStructure is documented below.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKey:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKey":{"properties":{"literalValue":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKeyLiteralValue:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKeyLiteralValue","description":"Passing a literal value\nStructure is documented below.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKeyLiteralValue:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryKeyLiteralValue":{"properties":{"stringValue":{"type":"string","description":"String.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValue:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValue":{"properties":{"literalValue":{"$ref":"#/types/gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValueLiteralValue:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValueLiteralValue","description":"Passing a literal value\nStructure is documented below.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValueLiteralValue:AuthConfigDecryptedCredentialOauth2ClientCredentialsTokenParamsEntryValueLiteralValue":{"properties":{"stringValue":{"type":"string","description":"String.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialOidcToken:AuthConfigDecryptedCredentialOidcToken":{"properties":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for.\n"},"serviceAccountEmail":{"type":"string","description":"The service account email to be used as the identity for the token.\n"},"token":{"type":"string","description":"(Output)\nID token obtained for the service account.\n"},"tokenExpireTime":{"type":"string","description":"(Output)\nThe approximate time until the token retrieved is valid.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["token","tokenExpireTime"]}}},"gcp:applicationintegration/AuthConfigDecryptedCredentialServiceAccountCredentials:AuthConfigDecryptedCredentialServiceAccountCredentials":{"properties":{"scope":{"type":"string","description":"A space-delimited list of requested scope permissions.\n"},"serviceAccount":{"type":"string","description":"Name of the service account that has the permission to make the request.\n"}},"type":"object"},"gcp:applicationintegration/AuthConfigDecryptedCredentialUsernameAndPassword:AuthConfigDecryptedCredentialUsernameAndPassword":{"properties":{"password":{"type":"string","description":"Password to be used.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedDecryptedCredentialOauth2AuthorizationCode\"\" pulumi-lang-dotnet=\"\"NestedDecryptedCredentialOauth2AuthorizationCode\"\" pulumi-lang-go=\"\"nestedDecryptedCredentialOauth2AuthorizationCode\"\" pulumi-lang-python=\"\"nested_decrypted_credential_oauth2_authorization_code\"\" pulumi-lang-yaml=\"\"nestedDecryptedCredentialOauth2AuthorizationCode\"\" pulumi-lang-java=\"\"nestedDecryptedCredentialOauth2AuthorizationCode\"\"\u003e\"nested_decrypted_credential_oauth2_authorization_code\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`oauth2AuthorizationCode`\" pulumi-lang-dotnet=\"`Oauth2AuthorizationCode`\" pulumi-lang-go=\"`oauth2AuthorizationCode`\" pulumi-lang-python=\"`oauth2_authorization_code`\" pulumi-lang-yaml=\"`oauth2AuthorizationCode`\" pulumi-lang-java=\"`oauth2AuthorizationCode`\"\u003e`oauth2_authorization_code`\u003c/span\u003e block supports:\n"},"username":{"type":"string","description":"Username to be used.\n"}},"type":"object"},"gcp:applicationintegration/ClientCloudKmsConfig:ClientCloudKmsConfig":{"properties":{"key":{"type":"string","description":"A Cloud KMS key is a named object containing one or more key versions, along\nwith metadata for the key. A key exists on exactly one key ring tied to a\nspecific location.\n","willReplaceOnChanges":true},"keyVersion":{"type":"string","description":"Each version of a key contains key material used for encryption or signing.\nA key's version is represented by an integer, starting at 1. To decrypt data\nor verify a signature, you must use the same key version that was used to\nencrypt or sign the data.\n","willReplaceOnChanges":true},"kmsLocation":{"type":"string","description":"Location name of the key ring, e.g. \"us-west1\".\n","willReplaceOnChanges":true},"kmsProjectId":{"type":"string","description":"The Google Cloud project id of the project where the kms key stored. If empty,\nthe kms key is stored at the same project as customer's project and ecrypted\nwith CMEK, otherwise, the kms key is stored in the tenant project and\nencrypted with GMEK.\n","willReplaceOnChanges":true},"kmsRing":{"type":"string","description":"A key ring organizes keys in a specific Google Cloud location and allows you to\nmanage access control on groups of keys. A key ring's name does not need to be\nunique across a Google Cloud project, but must be unique within a given location.\n","willReplaceOnChanges":true}},"type":"object","required":["key","kmsLocation","kmsRing"]},"gcp:artifactregistry/RepositoryCleanupPolicy:RepositoryCleanupPolicy":{"properties":{"action":{"type":"string","description":"Policy action.\nPossible values are: `DELETE`, `KEEP`.\n"},"condition":{"$ref":"#/types/gcp:artifactregistry/RepositoryCleanupPolicyCondition:RepositoryCleanupPolicyCondition","description":"Policy condition for matching versions.\nStructure is documented below.\n"},"id":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"mostRecentVersions":{"$ref":"#/types/gcp:artifactregistry/RepositoryCleanupPolicyMostRecentVersions:RepositoryCleanupPolicyMostRecentVersions","description":"Policy condition for retaining a minimum number of versions. May only be\nspecified with a Keep action.\nStructure is documented below.\n"}},"type":"object","required":["id"]},"gcp:artifactregistry/RepositoryCleanupPolicyCondition:RepositoryCleanupPolicyCondition":{"properties":{"newerThan":{"type":"string","description":"Match versions newer than a duration.\n"},"olderThan":{"type":"string","description":"Match versions older than a duration.\n"},"packageNamePrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by package prefix. Applied on any prefix match.\n"},"tagPrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by tag prefix. Applied on any prefix match.\n"},"tagState":{"type":"string","description":"Match versions by tag status.\nDefault value is `ANY`.\nPossible values are: `TAGGED`, `UNTAGGED`, `ANY`.\n"},"versionNamePrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by version name prefix. Applied on any prefix match.\n"}},"type":"object"},"gcp:artifactregistry/RepositoryCleanupPolicyMostRecentVersions:RepositoryCleanupPolicyMostRecentVersions":{"properties":{"keepCount":{"type":"integer","description":"Minimum number of versions to keep.\n"},"packageNamePrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by package prefix. Applied on any prefix match.\n"}},"type":"object"},"gcp:artifactregistry/RepositoryDockerConfig:RepositoryDockerConfig":{"properties":{"immutableTags":{"type":"boolean","description":"The repository which enabled this flag prevents all tags from being modified, moved or deleted. This does not prevent tags from being created.\n"}},"type":"object"},"gcp:artifactregistry/RepositoryIamBindingCondition:RepositoryIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:artifactregistry/RepositoryIamMemberCondition:RepositoryIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:artifactregistry/RepositoryMavenConfig:RepositoryMavenConfig":{"properties":{"allowSnapshotOverwrites":{"type":"boolean","description":"The repository with this flag will allow publishing the same\nsnapshot versions.\n","willReplaceOnChanges":true},"versionPolicy":{"type":"string","description":"Version policy defines the versions that the registry will accept.\nDefault value is `VERSION_POLICY_UNSPECIFIED`.\nPossible values are: `VERSION_POLICY_UNSPECIFIED`, `RELEASE`, `SNAPSHOT`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfig:RepositoryRemoteRepositoryConfig":{"properties":{"aptRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigAptRepository:RepositoryRemoteRepositoryConfigAptRepository","description":"Specific settings for an Apt remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"commonRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigCommonRepository:RepositoryRemoteRepositoryConfigCommonRepository","description":"Specific settings for an Artifact Registory remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the remote source.\n","willReplaceOnChanges":true},"disableUpstreamValidation":{"type":"boolean","description":"If true, the remote repository upstream and upstream credentials will\nnot be validated.\n"},"dockerRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigDockerRepository:RepositoryRemoteRepositoryConfigDockerRepository","description":"Specific settings for a Docker remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"mavenRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigMavenRepository:RepositoryRemoteRepositoryConfigMavenRepository","description":"Specific settings for a Maven remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"npmRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigNpmRepository:RepositoryRemoteRepositoryConfigNpmRepository","description":"Specific settings for an Npm remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"pythonRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigPythonRepository:RepositoryRemoteRepositoryConfigPythonRepository","description":"Specific settings for a Python remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"upstreamCredentials":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigUpstreamCredentials:RepositoryRemoteRepositoryConfigUpstreamCredentials","description":"The credentials used to access the remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true},"yumRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigYumRepository:RepositoryRemoteRepositoryConfigYumRepository","description":"Specific settings for an Yum remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigAptRepository:RepositoryRemoteRepositoryConfigAptRepository":{"properties":{"publicRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigAptRepositoryPublicRepository:RepositoryRemoteRepositoryConfigAptRepositoryPublicRepository","description":"One of the publicly available Apt repositories supported by Artifact Registry.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigAptRepositoryPublicRepository:RepositoryRemoteRepositoryConfigAptRepositoryPublicRepository":{"properties":{"repositoryBase":{"type":"string","description":"A common public repository base for Yum.\nPossible values are: `CENTOS`, `CENTOS_DEBUG`, `CENTOS_VAULT`, `CENTOS_STREAM`, `ROCKY`, `EPEL`.\n","willReplaceOnChanges":true},"repositoryPath":{"type":"string","description":"Specific repository from the base, e.g. `\"pub/rocky/9/BaseOS/x86_64/os\"`\n","willReplaceOnChanges":true}},"type":"object","required":["repositoryBase","repositoryPath"]},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigCommonRepository:RepositoryRemoteRepositoryConfigCommonRepository":{"properties":{"uri":{"type":"string","description":"One of:\na. Artifact Registry Repository resource, e.g. `projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY`\nb. URI to the registry, e.g. `\"https://registry-1.docker.io\"`\nc. URI to Artifact Registry Repository, e.g. `\"https://REGION-docker.pkg.dev/UPSTREAM_PROJECT_ID/UPSTREAM_REPOSITORY\"`\n","willReplaceOnChanges":true}},"type":"object","required":["uri"]},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigDockerRepository:RepositoryRemoteRepositoryConfigDockerRepository":{"properties":{"customRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository:RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository","description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\nStructure is documented below.\n","willReplaceOnChanges":true},"publicRepository":{"type":"string","description":"Address of the remote repository.\nPossible values are: `DOCKER_HUB`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository:RepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. `\"https://pypi.io\"`\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigMavenRepository:RepositoryRemoteRepositoryConfigMavenRepository":{"properties":{"customRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository:RepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository","description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\nStructure is documented below.\n","willReplaceOnChanges":true},"publicRepository":{"type":"string","description":"Address of the remote repository.\nPossible values are: `MAVEN_CENTRAL`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository:RepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. `\"https://pypi.io\"`\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigNpmRepository:RepositoryRemoteRepositoryConfigNpmRepository":{"properties":{"customRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository:RepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository","description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\nStructure is documented below.\n","willReplaceOnChanges":true},"publicRepository":{"type":"string","description":"Address of the remote repository.\nPossible values are: `NPMJS`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository:RepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. `\"https://pypi.io\"`\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigPythonRepository:RepositoryRemoteRepositoryConfigPythonRepository":{"properties":{"customRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository:RepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository","description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\nStructure is documented below.\n","willReplaceOnChanges":true},"publicRepository":{"type":"string","description":"Address of the remote repository.\nPossible values are: `PYPI`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository:RepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. `\"https://pypi.io\"`\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigUpstreamCredentials:RepositoryRemoteRepositoryConfigUpstreamCredentials":{"properties":{"usernamePasswordCredentials":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials:RepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials","description":"Use username and password to access the remote repository.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials:RepositoryRemoteRepositoryConfigUpstreamCredentialsUsernamePasswordCredentials":{"properties":{"passwordSecretVersion":{"type":"string","description":"The Secret Manager key version that holds the password to access the\nremote repository. Must be in the format of\n`projects/{project}/secrets/{secret}/versions/{version}`.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The username to access the remote repository.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigYumRepository:RepositoryRemoteRepositoryConfigYumRepository":{"properties":{"publicRepository":{"$ref":"#/types/gcp:artifactregistry/RepositoryRemoteRepositoryConfigYumRepositoryPublicRepository:RepositoryRemoteRepositoryConfigYumRepositoryPublicRepository","description":"One of the publicly available Yum repositories supported by Artifact Registry.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:artifactregistry/RepositoryRemoteRepositoryConfigYumRepositoryPublicRepository:RepositoryRemoteRepositoryConfigYumRepositoryPublicRepository":{"properties":{"repositoryBase":{"type":"string","description":"A common public repository base for Yum.\nPossible values are: `CENTOS`, `CENTOS_DEBUG`, `CENTOS_VAULT`, `CENTOS_STREAM`, `ROCKY`, `EPEL`.\n","willReplaceOnChanges":true},"repositoryPath":{"type":"string","description":"Specific repository from the base, e.g. `\"pub/rocky/9/BaseOS/x86_64/os\"`\n","willReplaceOnChanges":true}},"type":"object","required":["repositoryBase","repositoryPath"]},"gcp:artifactregistry/RepositoryVirtualRepositoryConfig:RepositoryVirtualRepositoryConfig":{"properties":{"upstreamPolicies":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/RepositoryVirtualRepositoryConfigUpstreamPolicy:RepositoryVirtualRepositoryConfigUpstreamPolicy"},"description":"Policies that configure the upstream artifacts distributed by the Virtual\nRepository. Upstream policies cannot be set on a standard repository.\nStructure is documented below.\n"}},"type":"object"},"gcp:artifactregistry/RepositoryVirtualRepositoryConfigUpstreamPolicy:RepositoryVirtualRepositoryConfigUpstreamPolicy":{"properties":{"id":{"type":"string","description":"The user-provided ID of the upstream policy.\n"},"priority":{"type":"integer","description":"Entries with a greater priority value take precedence in the pull order.\n"},"repository":{"type":"string","description":"A reference to the repository resource, for example:\n\"projects/p1/locations/us-central1/repository/repo1\".\n"}},"type":"object"},"gcp:artifactregistry/RepositoryVulnerabilityScanningConfig:RepositoryVulnerabilityScanningConfig":{"properties":{"enablementConfig":{"type":"string","description":"This configures whether vulnerability scanning is automatically performed for artifacts pushed to this repository.\nPossible values are: `INHERITED`, `DISABLED`.\n"},"enablementState":{"type":"string","description":"(Output)\nThis field returns whether scanning is active for this repository.\n"},"enablementStateReason":{"type":"string","description":"(Output)\nThis provides an explanation for the state of scanning on this repository.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enablementState","enablementStateReason"]}}},"gcp:artifactregistry/getDockerImagesDockerImage:getDockerImagesDockerImage":{"properties":{"buildTime":{"type":"string","description":"The time, as a RFC 3339 string, this image was built.\n"},"imageName":{"type":"string","description":"Extracted short name of the image (last part of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, without tag or digest). For example, from `.../nginx@sha256:...` → \u003cspan pulumi-lang-nodejs=\"`nginx`\" pulumi-lang-dotnet=\"`Nginx`\" pulumi-lang-go=\"`nginx`\" pulumi-lang-python=\"`nginx`\" pulumi-lang-yaml=\"`nginx`\" pulumi-lang-java=\"`nginx`\"\u003e`nginx`\u003c/span\u003e.\n"},"imageSizeBytes":{"type":"string","description":"Calculated size of the image in bytes.\n"},"mediaType":{"type":"string","description":"Media type of this image, e.g. `application/vnd.docker.distribution.manifest.v2+json`.\n"},"name":{"type":"string","description":"The fully qualified name of the fetched image.  This name has the form: `projects/{{project}}/locations/{{location}}/repository/{{repository_id}}/dockerImages/{{docker_image}}`. For example, `projects/test-project/locations/us-west4/repositories/test-repo/dockerImages/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf`\n"},"selfLink":{"type":"string","description":"The URI to access the image.  For example, `us-west4-docker.pkg.dev/test-project/test-repo/nginx@sha256:e9954c1fc875017be1c3e36eca16be2d9e9bccc4bf072163515467d6a823c7cf`\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of all tags associated with the image.\n"},"updateTime":{"type":"string","description":"The time, as a RFC 3339 string, this image was updated.\n"},"uploadTime":{"type":"string","description":"The time, as a RFC 3339 string, the image was uploaded. For example, `2014-10-02T15:01:23.045123456Z`.\n"}},"type":"object","required":["buildTime","imageName","imageSizeBytes","mediaType","name","selfLink","tags","updateTime","uploadTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getMavenArtifactsMavenArtifact:getMavenArtifactsMavenArtifact":{"properties":{"artifactId":{"type":"string","description":"The name of the artifact to fetch.\n"},"createTime":{"type":"string","description":"The time the artifact was created.\n"},"groupId":{"type":"string","description":"Group ID for the artifact.\n"},"name":{"type":"string","description":"The fully qualified name of the fetched artifact. Format:\n```\nprojects/{{project}}/locations/{{location}}/repositories/{{repository_id}}/mavenArtifacts/{{group_id}}:{{artifact_id}}:{{version}}\n```\n"},"pomUri":{"type":"string","description":"URL to access the pom file of the artifact.\n"},"updateTime":{"type":"string","description":"The time the artifact was last updated.\n"},"version":{"type":"string","description":"The version of the Maven artifact.\n"}},"type":"object","required":["artifactId","createTime","groupId","name","pomUri","updateTime","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getNpmPackagesNpmPackage:getNpmPackagesNpmPackage":{"properties":{"createTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was created.\n"},"name":{"type":"string","description":"The fully qualified name of the fetched package.  This name has the form: `projects/{{project}}/locations/{{location}}/repository/{{repository_id}}/npmPackages/{{npmPackage}}`. For example, `projects/example-project/locations/us-central1/repository/example-repo/npmPackages/my-test-package:0.0.1`\n"},"packageName":{"type":"string","description":"Extracted short name of the package (last part of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, without version). For example, from `.../my-test-package:0.0.1` → `my-test-package`.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Npm package.\n"},"updateTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was updated.\n"},"version":{"type":"string","description":"Version of this package.\n"}},"type":"object","required":["createTime","name","packageName","tags","updateTime","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getPackagesPackage:getPackagesPackage":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Client specified annotations.\n"},"createTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was created.\n"},"displayName":{"type":"string","description":"The display name of the package.\n"},"name":{"type":"string","description":"The name of the package, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1`. If the package ID part contains slashes, the slashes are escaped.\n"},"updateTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was last updated. This includes publishing a new version of the package.\n"}},"type":"object","required":["annotations","createTime","displayName","name","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getPythonPackagesPythonPackage:getPythonPackagesPythonPackage":{"properties":{"createTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was created.\n"},"name":{"type":"string","description":"The fully qualified name of the fetched package.  This name has the form: `projects/{{project}}/locations/{{location}}/repository/{{repository_id}}/pythonPackages/{{pythonPackage}}`. For example, `projects/example-project/locations/us-central1/repository/example-repo/pythonPackages/my-test-package:0.0.1`\n"},"packageName":{"type":"string","description":"Extracted short name of the package (last part of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, without version). For example, from `.../my-test-package:0.0.1` → `my-test-package`.\n"},"updateTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was updated.\n"},"version":{"type":"string","description":"Version of this package.\n"}},"type":"object","required":["createTime","name","packageName","updateTime","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoriesRepository:getRepositoriesRepository":{"properties":{"createTime":{"type":"string","description":"The time when the repository was created.\n"},"description":{"type":"string","description":"The user-provided description of the repository.\n"},"format":{"type":"string","description":"The format of packages that are stored in the repository. Supported formats can be found [here](https://cloud.google.com/artifact-registry/docs/supported-formats).\n"},"id":{"type":"string","description":"An identifier for the resource with format `projects/{{project}}/locations/{{location}}/repositories/{{repository_id}}`\n"},"repositoryId":{"type":"string","description":"The last part of the repository name, for example: `\"repo1\"`\n"},"updateTime":{"type":"string","description":"The time when the repository was last updated.\n"}},"type":"object","required":["createTime","description","format","id","repositoryId","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryCleanupPolicy:getRepositoryCleanupPolicy":{"properties":{"action":{"type":"string","description":"Policy action. Possible values: [\"DELETE\", \"KEEP\"]\n"},"conditions":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryCleanupPolicyCondition:getRepositoryCleanupPolicyCondition"},"description":"Policy condition for matching versions.\n"},"id":{"type":"string"},"mostRecentVersions":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryCleanupPolicyMostRecentVersion:getRepositoryCleanupPolicyMostRecentVersion"},"description":"Policy condition for retaining a minimum number of versions. May only be\nspecified with a Keep action.\n"}},"type":"object","required":["action","conditions","id","mostRecentVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryCleanupPolicyCondition:getRepositoryCleanupPolicyCondition":{"properties":{"newerThan":{"type":"string","description":"Match versions newer than a duration.\n"},"olderThan":{"type":"string","description":"Match versions older than a duration.\n"},"packageNamePrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by package prefix. Applied on any prefix match.\n"},"tagPrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by tag prefix. Applied on any prefix match.\n"},"tagState":{"type":"string","description":"Match versions by tag status. Default value: \"ANY\" Possible values: [\"TAGGED\", \"UNTAGGED\", \"ANY\"]\n"},"versionNamePrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by version name prefix. Applied on any prefix match.\n"}},"type":"object","required":["newerThan","olderThan","packageNamePrefixes","tagPrefixes","tagState","versionNamePrefixes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryCleanupPolicyMostRecentVersion:getRepositoryCleanupPolicyMostRecentVersion":{"properties":{"keepCount":{"type":"integer","description":"Minimum number of versions to keep.\n"},"packageNamePrefixes":{"type":"array","items":{"type":"string"},"description":"Match versions by package prefix. Applied on any prefix match.\n"}},"type":"object","required":["keepCount","packageNamePrefixes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryDockerConfig:getRepositoryDockerConfig":{"properties":{"immutableTags":{"type":"boolean","description":"The repository which enabled this flag prevents all tags from being modified, moved or deleted. This does not prevent tags from being created.\n"}},"type":"object","required":["immutableTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryMavenConfig:getRepositoryMavenConfig":{"properties":{"allowSnapshotOverwrites":{"type":"boolean","description":"The repository with this flag will allow publishing the same\nsnapshot versions.\n"},"versionPolicy":{"type":"string","description":"Version policy defines the versions that the registry will accept. Default value: \"VERSION_POLICY_UNSPECIFIED\" Possible values: [\"VERSION_POLICY_UNSPECIFIED\", \"RELEASE\", \"SNAPSHOT\"]\n"}},"type":"object","required":["allowSnapshotOverwrites","versionPolicy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfig:getRepositoryRemoteRepositoryConfig":{"properties":{"aptRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigAptRepository:getRepositoryRemoteRepositoryConfigAptRepository"},"description":"Specific settings for an Apt remote repository.\n"},"commonRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigCommonRepository:getRepositoryRemoteRepositoryConfigCommonRepository"},"description":"Specific settings for an Artifact Registory remote repository.\n"},"description":{"type":"string","description":"The description of the remote source.\n"},"disableUpstreamValidation":{"type":"boolean","description":"If true, the remote repository upstream and upstream credentials will\nnot be validated.\n"},"dockerRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigDockerRepository:getRepositoryRemoteRepositoryConfigDockerRepository"},"description":"Specific settings for a Docker remote repository.\n"},"mavenRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigMavenRepository:getRepositoryRemoteRepositoryConfigMavenRepository"},"description":"Specific settings for a Maven remote repository.\n"},"npmRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigNpmRepository:getRepositoryRemoteRepositoryConfigNpmRepository"},"description":"Specific settings for an Npm remote repository.\n"},"pythonRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigPythonRepository:getRepositoryRemoteRepositoryConfigPythonRepository"},"description":"Specific settings for a Python remote repository.\n"},"upstreamCredentials":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigUpstreamCredential:getRepositoryRemoteRepositoryConfigUpstreamCredential"},"description":"The credentials used to access the remote repository.\n"},"yumRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigYumRepository:getRepositoryRemoteRepositoryConfigYumRepository"},"description":"Specific settings for an Yum remote repository.\n"}},"type":"object","required":["aptRepositories","commonRepositories","description","disableUpstreamValidation","dockerRepositories","mavenRepositories","npmRepositories","pythonRepositories","upstreamCredentials","yumRepositories"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigAptRepository:getRepositoryRemoteRepositoryConfigAptRepository":{"properties":{"publicRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository:getRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository"},"description":"One of the publicly available Apt repositories supported by Artifact Registry.\n"}},"type":"object","required":["publicRepositories"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository:getRepositoryRemoteRepositoryConfigAptRepositoryPublicRepository":{"properties":{"repositoryBase":{"type":"string","description":"A common public repository base for Apt, e.g. '\"debian/dists/stable\"' Possible values: [\"DEBIAN\", \"UBUNTU\", \"DEBIAN_SNAPSHOT\"]\n"},"repositoryPath":{"type":"string","description":"Specific repository from the base.\n"}},"type":"object","required":["repositoryBase","repositoryPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigCommonRepository:getRepositoryRemoteRepositoryConfigCommonRepository":{"properties":{"uri":{"type":"string","description":"One of:\na. Artifact Registry Repository resource, e.g. 'projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY'\nb. URI to the registry, e.g. '\"https://registry-1.docker.io\"'\nc. URI to Artifact Registry Repository, e.g. '\"https://REGION-docker.pkg.dev/UPSTREAM_PROJECT_ID/UPSTREAM_REPOSITORY\"'\n"}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigDockerRepository:getRepositoryRemoteRepositoryConfigDockerRepository":{"properties":{"customRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository"},"description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\n"},"publicRepository":{"type":"string","description":"Address of the remote repository. Possible values: [\"DOCKER_HUB\"]\n"}},"type":"object","required":["customRepositories","publicRepository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigDockerRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. '\"https://registry-1.docker.io\"'\n"}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigMavenRepository:getRepositoryRemoteRepositoryConfigMavenRepository":{"properties":{"customRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository"},"description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\n"},"publicRepository":{"type":"string","description":"Address of the remote repository. Possible values: [\"MAVEN_CENTRAL\"]\n"}},"type":"object","required":["customRepositories","publicRepository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigMavenRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. '\"https://repo.maven.apache.org/maven2\"'\n"}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigNpmRepository:getRepositoryRemoteRepositoryConfigNpmRepository":{"properties":{"customRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository"},"description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\n"},"publicRepository":{"type":"string","description":"Address of the remote repository. Possible values: [\"NPMJS\"]\n"}},"type":"object","required":["customRepositories","publicRepository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigNpmRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. '\"https://registry.npmjs.org\"'\n"}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigPythonRepository:getRepositoryRemoteRepositoryConfigPythonRepository":{"properties":{"customRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository"},"description":"[Deprecated, please use commonRepository instead] Settings for a remote repository with a custom uri.\n"},"publicRepository":{"type":"string","description":"Address of the remote repository. Possible values: [\"PYPI\"]\n"}},"type":"object","required":["customRepositories","publicRepository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository:getRepositoryRemoteRepositoryConfigPythonRepositoryCustomRepository":{"properties":{"uri":{"type":"string","description":"Specific uri to the registry, e.g. '\"https://pypi.io\"'\n"}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigUpstreamCredential:getRepositoryRemoteRepositoryConfigUpstreamCredential":{"properties":{"usernamePasswordCredentials":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigUpstreamCredentialUsernamePasswordCredential:getRepositoryRemoteRepositoryConfigUpstreamCredentialUsernamePasswordCredential"},"description":"Use username and password to access the remote repository.\n"}},"type":"object","required":["usernamePasswordCredentials"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigUpstreamCredentialUsernamePasswordCredential:getRepositoryRemoteRepositoryConfigUpstreamCredentialUsernamePasswordCredential":{"properties":{"passwordSecretVersion":{"type":"string","description":"The Secret Manager key version that holds the password to access the\nremote repository. Must be in the format of\n'projects/{project}/secrets/{secret}/versions/{version}'.\n"},"username":{"type":"string","description":"The username to access the remote repository.\n"}},"type":"object","required":["passwordSecretVersion","username"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigYumRepository:getRepositoryRemoteRepositoryConfigYumRepository":{"properties":{"publicRepositories":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository:getRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository"},"description":"One of the publicly available Yum repositories supported by Artifact Registry.\n"}},"type":"object","required":["publicRepositories"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository:getRepositoryRemoteRepositoryConfigYumRepositoryPublicRepository":{"properties":{"repositoryBase":{"type":"string","description":"A common public repository base for Yum. Possible values: [\"CENTOS\", \"CENTOS_DEBUG\", \"CENTOS_VAULT\", \"CENTOS_STREAM\", \"ROCKY\", \"EPEL\"]\n"},"repositoryPath":{"type":"string","description":"Specific repository from the base, e.g. '\"pub/rocky/9/BaseOS/x86_64/os\"'\n"}},"type":"object","required":["repositoryBase","repositoryPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryVirtualRepositoryConfig:getRepositoryVirtualRepositoryConfig":{"properties":{"upstreamPolicies":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getRepositoryVirtualRepositoryConfigUpstreamPolicy:getRepositoryVirtualRepositoryConfigUpstreamPolicy"},"description":"Policies that configure the upstream artifacts distributed by the Virtual\nRepository. Upstream policies cannot be set on a standard repository.\n"}},"type":"object","required":["upstreamPolicies"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryVirtualRepositoryConfigUpstreamPolicy:getRepositoryVirtualRepositoryConfigUpstreamPolicy":{"properties":{"id":{"type":"string","description":"The user-provided ID of the upstream policy.\n"},"priority":{"type":"integer","description":"Entries with a greater priority value take precedence in the pull order.\n"},"repository":{"type":"string","description":"A reference to the repository resource, for example:\n\"projects/p1/locations/us-central1/repository/repo1\".\n"}},"type":"object","required":["id","priority","repository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getRepositoryVulnerabilityScanningConfig:getRepositoryVulnerabilityScanningConfig":{"properties":{"enablementConfig":{"type":"string","description":"This configures whether vulnerability scanning is automatically performed for artifacts pushed to this repository. Possible values: [\"INHERITED\", \"DISABLED\"]\n"},"enablementState":{"type":"string","description":"This field returns whether scanning is active for this repository.\n"},"enablementStateReason":{"type":"string","description":"This provides an explanation for the state of scanning on this repository.\n"}},"type":"object","required":["enablementConfig","enablementState","enablementStateReason"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getTagsTag:getTagsTag":{"properties":{"name":{"type":"string","description":"The name of the tag, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/tags/tag1`. If the package part contains slashes, the slashes are escaped.\n"},"version":{"type":"string","description":"The version of the tag.\n"}},"type":"object","required":["name","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getVersionRelatedTag:getVersionRelatedTag":{"properties":{"name":{"type":"string","description":"The name of the version, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/version1`. If the package part contains slashes, the slashes are escaped.\n"},"version":{"type":"string"}},"type":"object","required":["name","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getVersionsVersion:getVersionsVersion":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Client specified annotations.\n"},"createTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was created.\n"},"description":{"type":"string","description":"Description of the version, as specified in its metadata.\n"},"name":{"type":"string","description":"The name of the version, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/version1`. If the package part contains slashes, the slashes are escaped.\n"},"relatedTags":{"type":"array","items":{"$ref":"#/types/gcp:artifactregistry/getVersionsVersionRelatedTag:getVersionsVersionRelatedTag"},"description":"A list of related tags. Will contain up to 100 tags that reference this version.\n"},"updateTime":{"type":"string","description":"The time, as a RFC 3339 string, this package was last updated. This includes publishing a new version of the package.\n"}},"type":"object","required":["annotations","createTime","description","name","relatedTags","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:artifactregistry/getVersionsVersionRelatedTag:getVersionsVersionRelatedTag":{"properties":{"name":{"type":"string","description":"The name of the version, for example: `projects/p1/locations/us-central1/repositories/repo1/packages/pkg1/versions/version1`. If the package part contains slashes, the slashes are escaped.\n"},"version":{"type":"string"}},"type":"object","required":["name","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:assuredworkloads/WorkloadComplianceStatus:WorkloadComplianceStatus":{"properties":{"acknowledgedViolationCounts":{"type":"array","items":{"type":"integer"},"description":"Number of current orgPolicy violations which are acknowledged.\n"},"activeViolationCounts":{"type":"array","items":{"type":"integer"},"description":"Number of current orgPolicy violations which are not acknowledged.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["acknowledgedViolationCounts","activeViolationCounts"]}}},"gcp:assuredworkloads/WorkloadEkmProvisioningResponse:WorkloadEkmProvisioningResponse":{"properties":{"ekmProvisioningErrorDomain":{"type":"string","description":"Indicates Ekm provisioning error if any. Possible values: EKM_PROVISIONING_ERROR_DOMAIN_UNSPECIFIED, UNSPECIFIED_ERROR, GOOGLE_SERVER_ERROR, EXTERNAL_USER_ERROR, EXTERNAL_PARTNER_ERROR, TIMEOUT_ERROR\n"},"ekmProvisioningErrorMapping":{"type":"string","description":"Detailed error message if Ekm provisioning fails Possible values: EKM_PROVISIONING_ERROR_MAPPING_UNSPECIFIED, INVALID_SERVICE_ACCOUNT, MISSING_METRICS_SCOPE_ADMIN_PERMISSION, MISSING_EKM_CONNECTION_ADMIN_PERMISSION\n"},"ekmProvisioningState":{"type":"string","description":"Indicates Ekm enrollment Provisioning of a given workload. Possible values: EKM_PROVISIONING_STATE_UNSPECIFIED, EKM_PROVISIONING_STATE_PENDING, EKM_PROVISIONING_STATE_FAILED, EKM_PROVISIONING_STATE_COMPLETED\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ekmProvisioningErrorDomain","ekmProvisioningErrorMapping","ekmProvisioningState"]}}},"gcp:assuredworkloads/WorkloadKmsSettings:WorkloadKmsSettings":{"properties":{"nextRotationTime":{"type":"string","description":"Required. Input only. Immutable. The time at which the Key Management Service will automatically create a new version of the crypto key and mark it as the primary.\n","willReplaceOnChanges":true},"rotationPeriod":{"type":"string","description":"Required. Input only. Immutable. will be advanced by this period when the Key Management Service automatically rotates a key. Must be at least 24 hours and at most 876,000 hours.\n","willReplaceOnChanges":true}},"type":"object","required":["nextRotationTime","rotationPeriod"]},"gcp:assuredworkloads/WorkloadPartnerPermissions:WorkloadPartnerPermissions":{"properties":{"assuredWorkloadsMonitoring":{"type":"boolean","description":"Optional. Allow partner to view violation alerts.\n","willReplaceOnChanges":true},"dataLogsViewer":{"type":"boolean","description":"Allow the partner to view inspectability logs and monitoring violations.\n","willReplaceOnChanges":true},"serviceAccessApprover":{"type":"boolean","description":"Optional. Allow partner to view access approval logs.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:assuredworkloads/WorkloadResource:WorkloadResource":{"properties":{"resourceId":{"type":"integer","description":"Resource identifier. For a project this represents project_number.\n"},"resourceType":{"type":"string","description":"Indicates the type of resource. Possible values: RESOURCE_TYPE_UNSPECIFIED, CONSUMER_PROJECT, ENCRYPTION_KEYS_PROJECT, KEYRING, CONSUMER_FOLDER\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["resourceId","resourceType"]}}},"gcp:assuredworkloads/WorkloadResourceSetting:WorkloadResourceSetting":{"properties":{"displayName":{"type":"string","description":"User-assigned resource display name. If not empty it will be used to create a resource with the specified name.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"Resource identifier. For a project this represents projectId. If the project is already taken, the workload creation will fail. For KeyRing, this represents the keyring_id. For a folder, don't set this value as\u003cspan pulumi-lang-nodejs=\" folderId \" pulumi-lang-dotnet=\" FolderId \" pulumi-lang-go=\" folderId \" pulumi-lang-python=\" folder_id \" pulumi-lang-yaml=\" folderId \" pulumi-lang-java=\" folderId \"\u003e folder_id \u003c/span\u003eis assigned by Google.\n","willReplaceOnChanges":true},"resourceType":{"type":"string","description":"Indicates the type of resource. This field should be specified to correspond the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT) Possible values: RESOURCE_TYPE_UNSPECIFIED, CONSUMER_PROJECT, ENCRYPTION_KEYS_PROJECT, KEYRING, CONSUMER_FOLDER\n","willReplaceOnChanges":true}},"type":"object"},"gcp:assuredworkloads/WorkloadSaaEnrollmentResponse:WorkloadSaaEnrollmentResponse":{"properties":{"setupErrors":{"type":"array","items":{"type":"string"},"description":"Indicates SAA enrollment setup error if any.\n"},"setupStatus":{"type":"string","description":"Indicates SAA enrollment status of a given workload. Possible values: SETUP_STATE_UNSPECIFIED, STATUS_PENDING, STATUS_COMPLETE\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["setupErrors","setupStatus"]}}},"gcp:assuredworkloads/WorkloadWorkloadOptions:WorkloadWorkloadOptions":{"properties":{"kajEnrollmentType":{"type":"string","description":"Indicates type of KAJ enrollment for the workload. Currently, only specifiying KEY_ACCESS_TRANSPARENCY_OFF is implemented to not enroll in KAT-level KAJ enrollment for Regional Controls workloads. Possible values: KAJ_ENROLLMENT_TYPE_UNSPECIFIED, FULL_KAJ, EKM_ONLY, KEY_ACCESS_TRANSPARENCY_OFF\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/BackupPlanAssociationRulesConfigInfo:BackupPlanAssociationRulesConfigInfo":{"properties":{"lastBackupErrors":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/BackupPlanAssociationRulesConfigInfoLastBackupError:BackupPlanAssociationRulesConfigInfoLastBackupError"},"description":"(Output)\ngoogle.rpc.Status object to store the last backup error\nStructure is documented below.\n"},"lastBackupState":{"type":"string","description":"(Output)\nState of last backup taken.\n"},"lastSuccessfulBackupConsistencyTime":{"type":"string","description":"(Output)\nThe point in time when the last successful backup was captured from the source\n"},"ruleId":{"type":"string","description":"(Output)\nBackup Rule id fetched from backup plan.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["lastBackupErrors","lastBackupState","lastSuccessfulBackupConsistencyTime","ruleId"]}}},"gcp:backupdisasterrecovery/BackupPlanAssociationRulesConfigInfoLastBackupError:BackupPlanAssociationRulesConfigInfoLastBackupError":{"properties":{"code":{"type":"number","description":"(Output)\nThe status code, which should be an enum value of [google.rpc.Code]\n"},"message":{"type":"string","description":"(Output)\nA developer-facing error message, which should be in English.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"gcp:backupdisasterrecovery/BackupPlanBackupRule:BackupPlanBackupRule":{"properties":{"backupRetentionDays":{"type":"integer","description":"Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault.\n"},"ruleId":{"type":"string","description":"The unique ID of this `BackupRule`. The \u003cspan pulumi-lang-nodejs=\"`ruleId`\" pulumi-lang-dotnet=\"`RuleId`\" pulumi-lang-go=\"`ruleId`\" pulumi-lang-python=\"`rule_id`\" pulumi-lang-yaml=\"`ruleId`\" pulumi-lang-java=\"`ruleId`\"\u003e`rule_id`\u003c/span\u003e is unique per `BackupPlan`.\n"},"standardSchedule":{"$ref":"#/types/gcp:backupdisasterrecovery/BackupPlanBackupRuleStandardSchedule:BackupPlanBackupRuleStandardSchedule","description":"StandardSchedule defines a schedule that runs within the confines of a defined window of days.\nStructure is documented below.\n"}},"type":"object","required":["backupRetentionDays","ruleId","standardSchedule"]},"gcp:backupdisasterrecovery/BackupPlanBackupRuleStandardSchedule:BackupPlanBackupRuleStandardSchedule":{"properties":{"backupWindow":{"$ref":"#/types/gcp:backupdisasterrecovery/BackupPlanBackupRuleStandardScheduleBackupWindow:BackupPlanBackupRuleStandardScheduleBackupWindow","description":"A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as\n`NOT_RUN` if they do not start by the end of the window.\nStructure is documented below.\n"},"daysOfMonths":{"type":"array","items":{"type":"integer"},"description":"Specifies days of months like 1, 5, or 14 on which jobs will run.\n"},"daysOfWeeks":{"type":"array","items":{"type":"string"},"description":"Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e, `WEEKLY` and is not applicable otherwise.\nEach value may be one of: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"hourlyFrequency":{"type":"integer","description":"Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined.\nThis is required for \u003cspan pulumi-lang-nodejs=\"`recurrenceType`\" pulumi-lang-dotnet=\"`RecurrenceType`\" pulumi-lang-go=\"`recurrenceType`\" pulumi-lang-python=\"`recurrence_type`\" pulumi-lang-yaml=\"`recurrenceType`\" pulumi-lang-java=\"`recurrenceType`\"\u003e`recurrence_type`\u003c/span\u003e, `HOURLY` and is not applicable otherwise.\n"},"months":{"type":"array","items":{"type":"string"},"description":"Specifies values of months\nEach value may be one of: `MONTH_UNSPECIFIED`, `JANUARY`, `FEBRUARY`, `MARCH`, `APRIL`, `MAY`, `JUNE`, `JULY`, `AUGUST`, `SEPTEMBER`, `OCTOBER`, `NOVEMBER`, `DECEMBER`.\n"},"recurrenceType":{"type":"string","description":"RecurrenceType enumerates the applicable periodicity for the schedule.\nPossible values are: `HOURLY`, `DAILY`, `WEEKLY`, `MONTHLY`, `YEARLY`.\n"},"timeZone":{"type":"string","description":"The time zone to be used when interpreting the schedule.\n"},"weekDayOfMonth":{"$ref":"#/types/gcp:backupdisasterrecovery/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth:BackupPlanBackupRuleStandardScheduleWeekDayOfMonth","description":"Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run.\nStructure is documented below.\n"}},"type":"object","required":["recurrenceType","timeZone"]},"gcp:backupdisasterrecovery/BackupPlanBackupRuleStandardScheduleBackupWindow:BackupPlanBackupRuleStandardScheduleBackupWindow":{"properties":{"endHourOfDay":{"type":"integer","description":"The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00.\nThe end hour of the day should be greater than the start\n"},"startHourOfDay":{"type":"integer","description":"The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00.\n"}},"type":"object","required":["startHourOfDay"]},"gcp:backupdisasterrecovery/BackupPlanBackupRuleStandardScheduleWeekDayOfMonth:BackupPlanBackupRuleStandardScheduleWeekDayOfMonth":{"properties":{"dayOfWeek":{"type":"string","description":"Specifies the day of the week.\nPossible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"weekOfMonth":{"type":"string","description":"WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month.\nPossible values are: `WEEK_OF_MONTH_UNSPECIFIED`, `FIRST`, `SECOND`, `THIRD`, `FOURTH`, `LAST`.\n"}},"type":"object","required":["dayOfWeek","weekOfMonth"]},"gcp:backupdisasterrecovery/BackupVaultEncryptionConfig:BackupVaultEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The Resource name of the Cloud KMS key to be used to encrypt new backups. The key must be in the same location as the backup vault. The key must be a Cloud KMS CryptoKey.\n"}},"type":"object"},"gcp:backupdisasterrecovery/ManagementServerManagementUri:ManagementServerManagementUri":{"properties":{"api":{"type":"string","description":"(Output)\nThe management console api endpoint.\n"},"webUi":{"type":"string","description":"(Output)\nThe management console webUi.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["api","webUi"]}}},"gcp:backupdisasterrecovery/ManagementServerNetwork:ManagementServerNetwork":{"properties":{"network":{"type":"string","description":"Network with format `projects/{{project_id}}/global/networks/{{network_id}}`\n","willReplaceOnChanges":true},"peeringMode":{"type":"string","description":"Type of Network peeringMode\nDefault value is `PRIVATE_SERVICE_ACCESS`.\nPossible values are: `PRIVATE_SERVICE_ACCESS`.\n","willReplaceOnChanges":true}},"type":"object","required":["network"]},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestoreProperties:RestoreWorkloadComputeInstanceRestoreProperties":{"properties":{"advancedMachineFeatures":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesAdvancedMachineFeatures:RestoreWorkloadComputeInstanceRestorePropertiesAdvancedMachineFeatures","description":"Optional. Controls for advanced machine-related behavior features.\nStructure is documented below.\n","willReplaceOnChanges":true},"allocationAffinity":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesAllocationAffinity:RestoreWorkloadComputeInstanceRestorePropertiesAllocationAffinity","description":"Optional. Specifies the reservations that this instance can consume from.\nStructure is documented below.\n","willReplaceOnChanges":true},"canIpForward":{"type":"boolean","description":"Optional. Allows this instance to send and receive packets with non-matching destination or source IPs.\n","willReplaceOnChanges":true},"confidentialInstanceConfig":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesConfidentialInstanceConfig:RestoreWorkloadComputeInstanceRestorePropertiesConfidentialInstanceConfig","description":"Optional. Controls Confidential compute options on the instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"deletionProtection":{"type":"boolean","description":"Optional. Whether the resource should be protected against deletion.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Optional. An optional description of this resource.\n","willReplaceOnChanges":true},"disks":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDisk:RestoreWorkloadComputeInstanceRestorePropertiesDisk"},"description":"Optional. Array of disks associated with this instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"displayDevice":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDisplayDevice:RestoreWorkloadComputeInstanceRestorePropertiesDisplayDevice","description":"Optional. Enables display device for the instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesGuestAccelerator:RestoreWorkloadComputeInstanceRestorePropertiesGuestAccelerator"},"description":"Optional. A list of the type and count of accelerator cards attached to the instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"Optional. Specifies the hostname of the instance.\n","willReplaceOnChanges":true},"instanceEncryptionKey":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesInstanceEncryptionKey:RestoreWorkloadComputeInstanceRestorePropertiesInstanceEncryptionKey","description":"Optional. Encrypts suspended data for an instance with a customer-managed encryption key.\nStructure is documented below.\n","willReplaceOnChanges":true},"keyRevocationActionType":{"type":"string","description":"Optional. KeyRevocationActionType of the instance.\nPossible values are: `KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED`, `NONE`, `STOP`.\n","willReplaceOnChanges":true},"labels":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesLabel:RestoreWorkloadComputeInstanceRestorePropertiesLabel"},"description":"Optional. Labels to apply to this instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"machineType":{"type":"string","description":"Optional. Full or partial URL of the machine type resource to use for this instance.\n","willReplaceOnChanges":true},"metadata":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesMetadata:RestoreWorkloadComputeInstanceRestorePropertiesMetadata","description":"Optional. This includes custom metadata and predefined keys.\nStructure is documented below.\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"Optional. Minimum CPU platform to use for this instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Required. Name of the compute instance.\n","willReplaceOnChanges":true},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterface:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterface"},"description":"Optional. An array of network configurations for this instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"networkPerformanceConfig":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkPerformanceConfig:RestoreWorkloadComputeInstanceRestorePropertiesNetworkPerformanceConfig","description":"Optional. Configure network performance such as egress bandwidth tier.\nStructure is documented below.\n","willReplaceOnChanges":true},"params":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesParams:RestoreWorkloadComputeInstanceRestorePropertiesParams","description":"Input only. Additional params passed with the request.\nStructure is documented below.\n","willReplaceOnChanges":true},"privateIpv6GoogleAccess":{"type":"string","description":"Optional. The private IPv6 google access type for the VM.\nPossible values are: `INSTANCE_PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED`, `INHERIT_FROM_SUBNETWORK`, `ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE`, `ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE`.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"array","items":{"type":"string"},"description":"Optional. Resource policies applied to this instance.\n","willReplaceOnChanges":true},"scheduling":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesScheduling:RestoreWorkloadComputeInstanceRestorePropertiesScheduling","description":"Optional. Sets the scheduling options for this instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceAccounts":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesServiceAccount:RestoreWorkloadComputeInstanceRestorePropertiesServiceAccount"},"description":"Optional. A list of service accounts, with their specified scopes, authorized for this instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"shieldedInstanceConfig":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesShieldedInstanceConfig:RestoreWorkloadComputeInstanceRestorePropertiesShieldedInstanceConfig","description":"Optional. Controls Shielded compute options on the instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"tags":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesTags:RestoreWorkloadComputeInstanceRestorePropertiesTags","description":"Optional. Tags to apply to this instance.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesAdvancedMachineFeatures:RestoreWorkloadComputeInstanceRestorePropertiesAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Optional. Whether to enable nested virtualization or not (default is false).\n","willReplaceOnChanges":true},"enableUefiNetworking":{"type":"boolean","description":"Optional. Whether to enable UEFI networking for instance creation.\n","willReplaceOnChanges":true},"threadsPerCore":{"type":"integer","description":"Optional. The number of threads per physical core.\n","willReplaceOnChanges":true},"visibleCoreCount":{"type":"integer","description":"Optional. The number of physical cores to expose to an instance.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesAllocationAffinity:RestoreWorkloadComputeInstanceRestorePropertiesAllocationAffinity":{"properties":{"consumeAllocationType":{"type":"string","description":"Possible values are: `TYPE_UNSPECIFIED`, `NO_RESERVATION`, `ANY_RESERVATION`, `SPECIFIC_RESERVATION`.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesConfidentialInstanceConfig:RestoreWorkloadComputeInstanceRestorePropertiesConfidentialInstanceConfig":{"properties":{"enableConfidentialCompute":{"type":"boolean","description":"Optional. Defines whether the instance should have confidential compute enabled.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDisk:RestoreWorkloadComputeInstanceRestorePropertiesDisk":{"properties":{"autoDelete":{"type":"boolean","description":"Optional. Specifies whether the disk will be auto-deleted when the instance is deleted.\n","willReplaceOnChanges":true},"boot":{"type":"boolean","description":"Optional. Indicates that this is a boot disk.\n","willReplaceOnChanges":true},"deviceName":{"type":"string","description":"Optional. This is used as an identifier for the disks.\n","willReplaceOnChanges":true},"diskEncryptionKey":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDiskDiskEncryptionKey:RestoreWorkloadComputeInstanceRestorePropertiesDiskDiskEncryptionKey","description":"Optional. Encrypts or decrypts a disk using a customer-supplied encryption key.\nStructure is documented below.\n","willReplaceOnChanges":true},"diskInterface":{"type":"string","description":"Optional. Specifies the disk interface to use for attaching this disk.\nPossible values are: `DISK_INTERFACE_UNSPECIFIED`, `SCSI`, `NVME`, `NVDIMM`, `ISCSI`.\n","willReplaceOnChanges":true},"diskSizeGb":{"type":"integer","description":"Optional. The size of the disk in GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Output only. The URI of the disk type resource.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDiskGuestOsFeature:RestoreWorkloadComputeInstanceRestorePropertiesDiskGuestOsFeature"},"description":"Optional. A list of features to enable on the guest operating system.\nStructure is documented below.\n","willReplaceOnChanges":true},"index":{"type":"integer","description":"Optional. A zero-based index to this disk, where 0 is reserved for the boot disk.\n","willReplaceOnChanges":true},"initializeParams":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDiskInitializeParams:RestoreWorkloadComputeInstanceRestorePropertiesDiskInitializeParams","description":"Optional. Specifies the parameters to initialize this disk.\nStructure is documented below.\n","willReplaceOnChanges":true},"kind":{"type":"string","description":"Optional. Type of the resource.\n","willReplaceOnChanges":true},"licenses":{"type":"array","items":{"type":"string"},"description":"Optional. Any valid publicly visible licenses.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Optional. The mode in which to attach this disk.\nPossible values are: `DISK_MODE_UNSPECIFIED`, `READ_WRITE`, `READ_ONLY`, `LOCKED`.\n","willReplaceOnChanges":true},"savedState":{"type":"string","description":"Optional. Specifies the saved state of the disk.\nPossible values are: `DISK_SAVED_STATE_UNSPECIFIED`, `PRESERVED`.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"Optional. Specifies a valid partial or full URL to an existing Persistent Disk resource.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Optional. Specifies the type of the disk.\nPossible values are: `DISK_TYPE_UNSPECIFIED`, `SCRATCH`, `PERSISTENT`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDiskDiskEncryptionKey:RestoreWorkloadComputeInstanceRestorePropertiesDiskDiskEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDiskGuestOsFeature:RestoreWorkloadComputeInstanceRestorePropertiesDiskGuestOsFeature":{"properties":{"type":{"type":"string","description":"Possible values are: `FEATURE_TYPE_UNSPECIFIED`, `VIRTIO_SCSI_MULTIQUEUE`, `WINDOWS`, `MULTI_IP_SUBNET`, `UEFI_COMPATIBLE`, `SECURE_BOOT`, `GVNIC`, `SEV_CAPABLE`, `BARE_METAL_LINUX_COMPATIBLE`, `SUSPEND_RESUME_COMPATIBLE`, `SEV_LIVE_MIGRATABLE`, `SEV_SNP_CAPABLE`, `TDX_CAPABLE`, `IDPF`, `SEV_LIVE_MIGRATABLE_V2`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDiskInitializeParams:RestoreWorkloadComputeInstanceRestorePropertiesDiskInitializeParams":{"properties":{"diskName":{"type":"string","description":"Optional. Specifies the disk name.\n","willReplaceOnChanges":true},"replicaZones":{"type":"array","items":{"type":"string"},"description":"Optional. URL of the zone where the disk should be created.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesDisplayDevice:RestoreWorkloadComputeInstanceRestorePropertiesDisplayDevice":{"properties":{"enableDisplay":{"type":"boolean","description":"Optional. Enables display for the Compute Engine VM.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesGuestAccelerator:RestoreWorkloadComputeInstanceRestorePropertiesGuestAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"Optional. The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"Optional. Full or partial URL of the accelerator type resource.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesInstanceEncryptionKey:RestoreWorkloadComputeInstanceRestorePropertiesInstanceEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesLabel:RestoreWorkloadComputeInstanceRestorePropertiesLabel":{"properties":{"key":{"type":"string","description":"The identifier for this object. Format specified above.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object","required":["key"]},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesMetadata:RestoreWorkloadComputeInstanceRestorePropertiesMetadata":{"properties":{"items":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesMetadataItem:RestoreWorkloadComputeInstanceRestorePropertiesMetadataItem"},"description":"Structure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesMetadataItem:RestoreWorkloadComputeInstanceRestorePropertiesMetadataItem":{"properties":{"key":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"value":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterface:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAccessConfig:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAccessConfig"},"description":"Structure is documented below.\n","willReplaceOnChanges":true},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAliasIpRange:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAliasIpRange"},"description":"Structure is documented below.\n","willReplaceOnChanges":true},"internalIpv6PrefixLength":{"type":"integer","description":"Optional. The prefix length of the primary internal IPv6 range.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"Optional. An IPv4 internal IP address to assign to the instance.\n","willReplaceOnChanges":true},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceIpv6AccessConfig:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceIpv6AccessConfig"},"description":"Structure is documented below.\n","willReplaceOnChanges":true},"ipv6AccessType":{"type":"string","description":"Possible values are: `UNSPECIFIED_IPV6_ACCESS_TYPE`, `INTERNAL`, `EXTERNAL`.\n","willReplaceOnChanges":true},"ipv6Address":{"type":"string","description":"Optional. An IPv6 internal network address for this network interface.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"Optional. URL of the VPC network resource for this instance.\n","willReplaceOnChanges":true},"networkAttachment":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"nicType":{"type":"string","description":"Possible values are: `NIC_TYPE_UNSPECIFIED`, `VIRTIO_NET`, `GVNIC`.\n","willReplaceOnChanges":true},"queueCount":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true},"stackType":{"type":"string","description":"Possible values are: `STACK_TYPE_UNSPECIFIED`, `IPV4_ONLY`, `IPV4_IPV6`.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"Optional. The URL of the Subnetwork resource for this instance.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAccessConfig:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAccessConfig":{"properties":{"externalIp":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"externalIpv6":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Optional. The name of this access configuration.\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"Possible values are: `NETWORK_TIER_UNSPECIFIED`, `PREMIUM`, `STANDARD`.\n","willReplaceOnChanges":true},"publicPtrDomainName":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"setPublicPtr":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Optional. The type of configuration.\nPossible values are: `ACCESS_TYPE_UNSPECIFIED`, `ONE_TO_ONE_NAT`, `DIRECT_IPV6`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAliasIpRange:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceAliasIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"subnetworkRangeName":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceIpv6AccessConfig:RestoreWorkloadComputeInstanceRestorePropertiesNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIp":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"externalIpv6":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true},"name":{"type":"string","description":"(Optional, Deprecated)\nThe resource name of the backup instance.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e is deprecated and will be removed in a future major release. The backup is identified by the parameters (location, backup_vault_id, data_source_id, backup_id).\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"Possible values: [\"NETWORK_TIER_UNSPECIFIED\", \"PREMIUM\", \"STANDARD\"]\n","willReplaceOnChanges":true},"publicPtrDomainName":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"setPublicPtr":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Output only. Type of the resource.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesNetworkPerformanceConfig:RestoreWorkloadComputeInstanceRestorePropertiesNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"Possible values are: `TIER_UNSPECIFIED`, `DEFAULT`, `TIER_1`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesParams:RestoreWorkloadComputeInstanceRestorePropertiesParams":{"properties":{"resourceManagerTags":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesParamsResourceManagerTag:RestoreWorkloadComputeInstanceRestorePropertiesParamsResourceManagerTag"},"description":"Structure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesParamsResourceManagerTag:RestoreWorkloadComputeInstanceRestorePropertiesParamsResourceManagerTag":{"properties":{"key":{"type":"string","description":"The identifier for this object. Format specified above.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object","required":["key"]},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesScheduling:RestoreWorkloadComputeInstanceRestorePropertiesScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true},"instanceTerminationAction":{"type":"string","description":"Possible values are: `INSTANCE_TERMINATION_ACTION_UNSPECIFIED`, `DELETE`, `STOP`.\n","willReplaceOnChanges":true},"localSsdRecoveryTimeout":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesSchedulingLocalSsdRecoveryTimeout:RestoreWorkloadComputeInstanceRestorePropertiesSchedulingLocalSsdRecoveryTimeout","description":"A nested object resource.\nStructure is documented below.\n","willReplaceOnChanges":true},"maxRunDuration":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesSchedulingMaxRunDuration:RestoreWorkloadComputeInstanceRestorePropertiesSchedulingMaxRunDuration","description":"A nested object resource.\nStructure is documented below.\n","willReplaceOnChanges":true},"minNodeCpus":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesSchedulingNodeAffinity:RestoreWorkloadComputeInstanceRestorePropertiesSchedulingNodeAffinity"},"description":"Structure is documented below.\n","willReplaceOnChanges":true},"onHostMaintenance":{"type":"string","description":"Possible values are: `ON_HOST_MAINTENANCE_UNSPECIFIED`, `TERMINATE`, `MIGRATE`.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true},"provisioningModel":{"type":"string","description":"Possible values are: `PROVISIONING_MODEL_UNSPECIFIED`, `STANDARD`, `SPOT`.\n","willReplaceOnChanges":true},"terminationTime":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesSchedulingLocalSsdRecoveryTimeout:RestoreWorkloadComputeInstanceRestorePropertiesSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesSchedulingMaxRunDuration:RestoreWorkloadComputeInstanceRestorePropertiesSchedulingMaxRunDuration":{"properties":{"nanos":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesSchedulingNodeAffinity:RestoreWorkloadComputeInstanceRestorePropertiesSchedulingNodeAffinity":{"properties":{"key":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"operator":{"type":"string","description":"Possible values are: `OPERATOR_UNSPECIFIED`, `IN`, `NOT_IN`.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesServiceAccount:RestoreWorkloadComputeInstanceRestorePropertiesServiceAccount":{"properties":{"email":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"scopes":{"type":"array","items":{"type":"string"},"description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesShieldedInstanceConfig:RestoreWorkloadComputeInstanceRestorePropertiesShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true},"enableSecureBoot":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true},"enableVtpm":{"type":"boolean","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceRestorePropertiesTags:RestoreWorkloadComputeInstanceRestorePropertiesTags":{"properties":{"items":{"type":"array","items":{"type":"string"},"description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadComputeInstanceTargetEnvironment:RestoreWorkloadComputeInstanceTargetEnvironment":{"properties":{"project":{"type":"string","description":"Required. Target project for the Compute Engine instance.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Required. The zone of the Compute Engine instance.\n","willReplaceOnChanges":true}},"type":"object","required":["project","zone"]},"gcp:backupdisasterrecovery/RestoreWorkloadDiskRestoreProperties:RestoreWorkloadDiskRestoreProperties":{"properties":{"accessMode":{"type":"string","description":"Optional. The access mode of the disk.\nPossible values are: `READ_WRITE_SINGLE`, `READ_WRITE_MANY`, `READ_ONLY_MANY`.\n","willReplaceOnChanges":true},"architecture":{"type":"string","description":"Optional. The architecture of the source disk.\nPossible values are: `ARCHITECTURE_UNSPECIFIED`, `X86_64`, `ARM64`.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Optional. An optional description of this resource.\n","willReplaceOnChanges":true},"diskEncryptionKey":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesDiskEncryptionKey:RestoreWorkloadDiskRestorePropertiesDiskEncryptionKey","description":"Optional. Encrypts the disk using a customer-supplied encryption key.\nStructure is documented below.\n","willReplaceOnChanges":true},"enableConfidentialCompute":{"type":"boolean","description":"Optional. Indicates whether this disk is using confidential compute mode.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesGuestOsFeature:RestoreWorkloadDiskRestorePropertiesGuestOsFeature"},"description":"Optional. A list of features to enable in the guest operating system.\nStructure is documented below.\n","willReplaceOnChanges":true},"labels":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesLabel:RestoreWorkloadDiskRestorePropertiesLabel"},"description":"Optional. Labels to apply to this disk.\nStructure is documented below.\n","willReplaceOnChanges":true},"licenses":{"type":"array","items":{"type":"string"},"description":"Optional. A list of publicly available licenses that are applicable to this backup.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Required. Name of the disk.\n","willReplaceOnChanges":true},"physicalBlockSizeBytes":{"type":"integer","description":"Optional. Physical block size of the persistent disk, in bytes.\n","willReplaceOnChanges":true},"provisionedIops":{"type":"integer","description":"Optional. Indicates how many IOPS to provision for the disk.\n","willReplaceOnChanges":true},"provisionedThroughput":{"type":"integer","description":"Optional. Indicates how much throughput to provision for the disk.\n","willReplaceOnChanges":true},"resourceManagerTags":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesResourceManagerTag:RestoreWorkloadDiskRestorePropertiesResourceManagerTag"},"description":"Optional. Resource manager tags to be bound to the disk.\nStructure is documented below.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"array","items":{"type":"string"},"description":"Optional. Resource policies applied to this disk.\n","willReplaceOnChanges":true},"sizeGb":{"type":"integer","description":"Required. The size of the disk in GB.\n","willReplaceOnChanges":true},"storagePool":{"type":"string","description":"Optional. The storage pool in which the new disk is created.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Required. URL of the disk type resource describing which disk type to use.\n","willReplaceOnChanges":true}},"type":"object","required":["name","sizeGb","type"]},"gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesDiskEncryptionKey:RestoreWorkloadDiskRestorePropertiesDiskEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesGuestOsFeature:RestoreWorkloadDiskRestorePropertiesGuestOsFeature":{"properties":{"type":{"type":"string","description":"Possible values are: `FEATURE_TYPE_UNSPECIFIED`, `VIRTIO_SCSI_MULTIQUEUE`, `WINDOWS`, `MULTI_IP_SUBNET`, `UEFI_COMPATIBLE`, `SECURE_BOOT`, `GVNIC`, `SEV_CAPABLE`, `BARE_METAL_LINUX_COMPATIBLE`, `SUSPEND_RESUME_COMPATIBLE`, `SEV_LIVE_MIGRATABLE`, `SEV_SNP_CAPABLE`, `TDX_CAPABLE`, `IDPF`, `SEV_LIVE_MIGRATABLE_V2`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesLabel:RestoreWorkloadDiskRestorePropertiesLabel":{"properties":{"key":{"type":"string","description":"The identifier for this object. Format specified above.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object","required":["key"]},"gcp:backupdisasterrecovery/RestoreWorkloadDiskRestorePropertiesResourceManagerTag:RestoreWorkloadDiskRestorePropertiesResourceManagerTag":{"properties":{"key":{"type":"string","description":"The identifier for this object. Format specified above.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"(Optional)\n","willReplaceOnChanges":true}},"type":"object","required":["key"]},"gcp:backupdisasterrecovery/RestoreWorkloadDiskTargetEnvironment:RestoreWorkloadDiskTargetEnvironment":{"properties":{"project":{"type":"string","description":"Required. Target project for the disk.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Required. Target zone for the disk.\n","willReplaceOnChanges":true}},"type":"object","required":["project","zone"]},"gcp:backupdisasterrecovery/RestoreWorkloadRegionDiskTargetEnvironment:RestoreWorkloadRegionDiskTargetEnvironment":{"properties":{"project":{"type":"string","description":"Required. Target project for the disk.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Required. Target region for the disk.\n","willReplaceOnChanges":true},"replicaZones":{"type":"array","items":{"type":"string"},"description":"Required. Target URLs of the replica zones for the disk.\n","willReplaceOnChanges":true}},"type":"object","required":["project","region","replicaZones"]},"gcp:backupdisasterrecovery/RestoreWorkloadTargetResource:RestoreWorkloadTargetResource":{"properties":{"gcpResource":{"$ref":"#/types/gcp:backupdisasterrecovery/RestoreWorkloadTargetResourceGcpResource:RestoreWorkloadTargetResourceGcpResource","description":"Output only. Details of the native Google Cloud resource created as part of restore.\nStructure is documented below.\n"}},"type":"object"},"gcp:backupdisasterrecovery/RestoreWorkloadTargetResourceGcpResource:RestoreWorkloadTargetResourceGcpResource":{"properties":{"gcpResourcename":{"type":"string","description":"Output only. Name of the Google Cloud resource.\n"},"location":{"type":"string","description":"Required. The location for the backup vault.\n"},"type":{"type":"string","description":"Output only. Type of the resource.\n"}},"type":"object"},"gcp:backupdisasterrecovery/getBackupBackup:getBackupBackup":{"properties":{"backupId":{"type":"string","description":"Id of the requesting object, Backup.\n"},"backupVaultId":{"type":"string","description":"The ID of the Backup Vault of the Data Source in which the Backup belongs.\n"},"createTime":{"type":"string","description":"The time when the backup was created.\n"},"dataSourceId":{"type":"string","description":"The ID of the Data Source in which the Backup belongs.\n"},"location":{"type":"string","description":"The location in which the Backup belongs.\n"},"name":{"type":"string","description":"Name of the resource.\n"}},"type":"object","required":["backupId","backupVaultId","createTime","dataSourceId","location","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanAssociationRulesConfigInfo:getBackupPlanAssociationRulesConfigInfo":{"properties":{"lastBackupErrors":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getBackupPlanAssociationRulesConfigInfoLastBackupError:getBackupPlanAssociationRulesConfigInfoLastBackupError"},"description":"google.rpc.Status object to store the last backup error\n"},"lastBackupState":{"type":"string","description":"State of last backup taken.\n"},"lastSuccessfulBackupConsistencyTime":{"type":"string","description":"The point in time when the last successful backup was captured from the source\n"},"ruleId":{"type":"string","description":"Backup Rule id fetched from backup plan.\n"}},"type":"object","required":["lastBackupErrors","lastBackupState","lastSuccessfulBackupConsistencyTime","ruleId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanAssociationRulesConfigInfoLastBackupError:getBackupPlanAssociationRulesConfigInfoLastBackupError":{"properties":{"code":{"type":"number","description":"The status code, which should be an enum value of [google.rpc.Code]\n"},"message":{"type":"string","description":"A developer-facing error message, which should be in English.\n"}},"type":"object","required":["code","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanAssociationsAssociation:getBackupPlanAssociationsAssociation":{"properties":{"backupPlan":{"type":"string","description":"The backup plan to which the resource is attached.\n"},"createTime":{"type":"string"},"dataSource":{"type":"string","description":"The resource name of data source which will be used as storage location for backups taken.\n"},"name":{"type":"string","description":"The full name of the backup plan association resource.\n"},"resource":{"type":"string","description":"The resource to which the backup plan is applied.\n"},"rulesConfigInfos":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getBackupPlanAssociationsAssociationRulesConfigInfo:getBackupPlanAssociationsAssociationRulesConfigInfo"},"description":"A list containing information about the backup rules. Each object in the list contains:\n"}},"type":"object","required":["backupPlan","createTime","dataSource","name","resource","rulesConfigInfos"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanAssociationsAssociationRulesConfigInfo:getBackupPlanAssociationsAssociationRulesConfigInfo":{"properties":{"lastBackupErrors":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getBackupPlanAssociationsAssociationRulesConfigInfoLastBackupError:getBackupPlanAssociationsAssociationRulesConfigInfoLastBackupError"},"description":"A block containing details of the last backup error, if any.\n"},"lastBackupState":{"type":"string","description":"State of last backup taken.\n"},"lastSuccessfulBackupConsistencyTime":{"type":"string","description":"The point in time when the last successful backup was captured from the source.\n"},"ruleId":{"type":"string","description":"Backup Rule id fetched from backup plan.\n"}},"type":"object","required":["lastBackupErrors","lastBackupState","lastSuccessfulBackupConsistencyTime","ruleId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanAssociationsAssociationRulesConfigInfoLastBackupError:getBackupPlanAssociationsAssociationRulesConfigInfoLastBackupError":{"properties":{"code":{"type":"integer","description":"The status code, which should be an enum value of [google.rpc.Code].\n"},"message":{"type":"string","description":"A developer-facing error message.\n"}},"type":"object","required":["code","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanBackupRule:getBackupPlanBackupRule":{"properties":{"backupRetentionDays":{"type":"integer","description":"Configures the duration for which backup data will be kept. The value should be greater than or equal to minimum enforced retention of the backup vault.\n"},"ruleId":{"type":"string","description":"The unique ID of this 'BackupRule'. The 'rule_id' is unique per 'BackupPlan'.\n"},"standardSchedules":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getBackupPlanBackupRuleStandardSchedule:getBackupPlanBackupRuleStandardSchedule"},"description":"StandardSchedule defines a schedule that runs within the confines of a defined window of days.\n"}},"type":"object","required":["backupRetentionDays","ruleId","standardSchedules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanBackupRuleStandardSchedule:getBackupPlanBackupRuleStandardSchedule":{"properties":{"backupWindows":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getBackupPlanBackupRuleStandardScheduleBackupWindow:getBackupPlanBackupRuleStandardScheduleBackupWindow"},"description":"A BackupWindow defines the window of the day during which backup jobs will run. Jobs are queued at the beginning of the window and will be marked as\n'NOT_RUN' if they do not start by the end of the window.\n"},"daysOfMonths":{"type":"array","items":{"type":"integer"},"description":"Specifies days of months like 1, 5, or 14 on which jobs will run.\n"},"daysOfWeeks":{"type":"array","items":{"type":"string"},"description":"Specifies days of week like MONDAY or TUESDAY, on which jobs will run. This is required for 'recurrence_type', 'WEEKLY' and is not applicable otherwise. Possible values: [\"DAY_OF_WEEK_UNSPECIFIED\", \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]\n"},"hourlyFrequency":{"type":"integer","description":"Specifies frequency for hourly backups. An hourly frequency of 2 means jobs will run every 2 hours from start time till end time defined.\nThis is required for 'recurrence_type', 'HOURLY' and is not applicable otherwise.\n"},"months":{"type":"array","items":{"type":"string"},"description":"Specifies values of months Possible values: [\"MONTH_UNSPECIFIED\", \"JANUARY\", \"FEBRUARY\", \"MARCH\", \"APRIL\", \"MAY\", \"JUNE\", \"JULY\", \"AUGUST\", \"SEPTEMBER\", \"OCTOBER\", \"NOVEMBER\", \"DECEMBER\"]\n"},"recurrenceType":{"type":"string","description":"RecurrenceType enumerates the applicable periodicity for the schedule. Possible values: [\"HOURLY\", \"DAILY\", \"WEEKLY\", \"MONTHLY\", \"YEARLY\"]\n"},"timeZone":{"type":"string","description":"The time zone to be used when interpreting the schedule.\n"},"weekDayOfMonths":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getBackupPlanBackupRuleStandardScheduleWeekDayOfMonth:getBackupPlanBackupRuleStandardScheduleWeekDayOfMonth"},"description":"Specifies a week day of the month like FIRST SUNDAY or LAST MONDAY, on which jobs will run.\n"}},"type":"object","required":["backupWindows","daysOfMonths","daysOfWeeks","hourlyFrequency","months","recurrenceType","timeZone","weekDayOfMonths"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanBackupRuleStandardScheduleBackupWindow:getBackupPlanBackupRuleStandardScheduleBackupWindow":{"properties":{"endHourOfDay":{"type":"integer","description":"The hour of the day (1-24) when the window ends, for example, if the value of end hour of the day is 10, that means the backup window end time is 10:00.\nThe end hour of the day should be greater than the start\n"},"startHourOfDay":{"type":"integer","description":"The hour of the day (0-23) when the window starts, for example, if the value of the start hour of the day is 6, that means the backup window starts at 6:00.\n"}},"type":"object","required":["endHourOfDay","startHourOfDay"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupPlanBackupRuleStandardScheduleWeekDayOfMonth:getBackupPlanBackupRuleStandardScheduleWeekDayOfMonth":{"properties":{"dayOfWeek":{"type":"string","description":"Specifies the day of the week. Possible values: [\"DAY_OF_WEEK_UNSPECIFIED\", \"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]\n"},"weekOfMonth":{"type":"string","description":"WeekOfMonth enumerates possible weeks in the month, e.g. the first, third, or last week of the month. Possible values: [\"WEEK_OF_MONTH_UNSPECIFIED\", \"FIRST\", \"SECOND\", \"THIRD\", \"FOURTH\", \"LAST\"]\n"}},"type":"object","required":["dayOfWeek","weekOfMonth"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getBackupVaultEncryptionConfig:getBackupVaultEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The Resource name of the Cloud KMS key to be used to encrypt new backups. The key must be in the same location as the backup vault. The key must be a Cloud KMS CryptoKey.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceBackupConfigInfo:getDataSourceBackupConfigInfo":{"properties":{"backupApplianceBackupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourceBackupConfigInfoBackupApplianceBackupConfig:getDataSourceBackupConfigInfoBackupApplianceBackupConfig"},"description":"Configuration for an application backed up by a Backup Appliance.\n"},"gcpBackupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourceBackupConfigInfoGcpBackupConfig:getDataSourceBackupConfigInfoGcpBackupConfig"},"description":"Configuration for a Google Cloud resource.\n"},"lastBackupError":{"type":"object","additionalProperties":{"type":"string"},"description":"If the last backup failed, this field has the error message.\n"},"lastBackupState":{"type":"string","description":"LastBackupstate tracks whether the last backup was not yet started, successful, failed, or could not be run because of the lack of permissions.\n"},"lastSuccessfulBackupConsistencyTime":{"type":"string","description":"If the last backup were successful, this field has the consistency date.\n"}},"type":"object","required":["backupApplianceBackupConfigs","gcpBackupConfigs","lastBackupError","lastBackupState","lastSuccessfulBackupConsistencyTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceBackupConfigInfoBackupApplianceBackupConfig:getDataSourceBackupConfigInfoBackupApplianceBackupConfig":{"properties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"backupApplianceId":{"type":"string","description":"The ID of the backup appliance.\n"},"backupApplianceName":{"type":"string","description":"The name of the backup appliance.\n"},"hostName":{"type":"string","description":"The name of the host where the application is running.\n"},"slaId":{"type":"string","description":"The ID of the SLA of this application.\n"},"slpName":{"type":"string","description":"The name of the SLP associated with the application.\n"},"sltName":{"type":"string","description":"The name of the SLT associated with the application.\n"}},"type":"object","required":["applicationName","backupApplianceId","backupApplianceName","hostName","slaId","slpName","sltName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceBackupConfigInfoGcpBackupConfig:getDataSourceBackupConfigInfoGcpBackupConfig":{"properties":{"backupPlan":{"type":"string","description":"The name of the backup plan.\n"},"backupPlanAssociation":{"type":"string","description":"The name of the backup plan association.\n"},"backupPlanDescription":{"type":"string","description":"The description of the backup plan.\n"},"backupPlanRules":{"type":"array","items":{"type":"string"},"description":"The names of the backup plan rules which point to this backupvault\n"}},"type":"object","required":["backupPlan","backupPlanAssociation","backupPlanDescription","backupPlanRules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceDataSourceBackupApplianceApplication:getDataSourceDataSourceBackupApplianceApplication":{"properties":{"applianceId":{"type":"string","description":"Appliance Id of the Backup Appliance.\n"},"applicationId":{"type":"string","description":"The appid field of the application within the Backup Appliance.\n"},"applicationName":{"type":"string","description":"The name of the Application as known to the Backup Appliance.\n"},"backupAppliance":{"type":"string","description":"Appliance name.\n"},"hostId":{"type":"string","description":"Hostid of the application host.\n"},"hostname":{"type":"string","description":"Hostname of the host where the application is running.\n"},"type":{"type":"string","description":"The type of the application. e.g. VMBackup\n"}},"type":"object","required":["applianceId","applicationId","applicationName","backupAppliance","hostId","hostname","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceDataSourceGcpResource:getDataSourceDataSourceGcpResource":{"properties":{"computeInstanceDataSourceProperties":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty:getDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty"},"description":"ComputeInstanceDataSourceProperties has a subset of Compute Instance properties that are useful at the Datasource level.\n"},"gcpResourcename":{"type":"string","description":"Full resource pathname URL of the source Google Cloud resource.\n"},"location":{"type":"string","description":"The location in which the Data Source belongs.\n"},"type":{"type":"string","description":"The type of the Google Cloud resource. Use the Unified Resource Type,\n\t\t\t\t\teg. compute.googleapis.com/Instance.\n"}},"type":"object","required":["computeInstanceDataSourceProperties","gcpResourcename","location","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty:getDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty":{"properties":{"description":{"type":"string","description":"The description of the Compute Engine instance.\n"},"machineType":{"type":"string","description":"The machine type of the instance.\n"},"name":{"type":"string","description":"Name of the compute instance backed up by the datasource.\n"},"totalDiskCount":{"type":"string","description":"The total number of disks attached to the Instance.\n"},"totalDiskSizeGb":{"type":"string","description":"The sum of all the disk sizes.\n"}},"type":"object","required":["description","machineType","name","totalDiskCount","totalDiskSizeGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourceReferencesDataSourceReference:getDataSourceReferencesDataSourceReference":{"properties":{"backupConfigState":{"type":"string","description":"The state of the backup config for the data source.\n"},"backupCount":{"type":"integer","description":"The number of backups for the data source.\n"},"dataSource":{"type":"string","description":"The underlying data source resource.\n"},"gcpResourceName":{"type":"string","description":"The GCP resource name for the data source.\n"},"lastBackupState":{"type":"string","description":"The state of the last backup.\n"},"lastSuccessfulBackupTime":{"type":"string","description":"The last time a successful backup was made.\n"},"name":{"type":"string"},"resourceType":{"type":"string","description":"The resource type to get the data source references for. Examples include, \"sqladmin.googleapis.com/Instance\" , \"compute.googleapis.com/Instance\". \u003cspan pulumi-lang-nodejs=\"`resourceType`\" pulumi-lang-dotnet=\"`ResourceType`\" pulumi-lang-go=\"`resourceType`\" pulumi-lang-python=\"`resource_type`\" pulumi-lang-yaml=\"`resourceType`\" pulumi-lang-java=\"`resourceType`\"\u003e`resource_type`\u003c/span\u003e is deprecated and will be removed in a future major release.\n"}},"type":"object","required":["backupConfigState","backupCount","dataSource","gcpResourceName","lastBackupState","lastSuccessfulBackupTime","name","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSource:getDataSourcesDataSource":{"properties":{"backupConfigInfos":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourcesDataSourceBackupConfigInfo:getDataSourcesDataSourceBackupConfigInfo"},"description":"Details of how the resource is configured for backup.\n"},"backupCount":{"type":"string","description":"Number of backups in the data source.\n"},"configState":{"type":"string","description":"The backup configuration state.\n"},"createTime":{"type":"string","description":"The time when the instance was created.\n"},"dataSourceBackupApplianceApplications":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourcesDataSourceDataSourceBackupApplianceApplication:getDataSourcesDataSourceDataSourceBackupApplianceApplication"},"description":"The backed up resource is a backup appliance application.\n"},"dataSourceGcpResources":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourcesDataSourceDataSourceGcpResource:getDataSourcesDataSourceDataSourceGcpResource"},"description":"The backed up resource is a Google Cloud resource.\n\t\tThe word 'DataSource' was included in the names to indicate that this is\n\t\tthe representation of the Google Cloud resource used within the\n\t\tDataSource object.\n"},"etag":{"type":"string","description":"Server specified ETag for the ManagementServer resource to prevent simultaneous updates from overwiting each other.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource labels to represent user provided metadata.\n"},"name":{"type":"string","description":"Name of the datasource to create.\n\t\tIt must have the format \"projects/{project}/locations/{location}/backupVaults/{backupvault}/dataSources/{datasource}\".\n\t\t'{datasource}' cannot be changed after creation. It must be between 3-63 characters long and must be unique within the backup vault.\n"},"state":{"type":"string","description":"The DataSource resource instance state.\n"},"totalStoredBytes":{"type":"string","description":"The number of bytes (metadata and data) stored in this datasource.\n"},"updateTime":{"type":"string","description":"The time when the instance was updated.\n"}},"type":"object","required":["backupConfigInfos","backupCount","configState","createTime","dataSourceBackupApplianceApplications","dataSourceGcpResources","etag","labels","name","state","totalStoredBytes","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSourceBackupConfigInfo:getDataSourcesDataSourceBackupConfigInfo":{"properties":{"backupApplianceBackupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourcesDataSourceBackupConfigInfoBackupApplianceBackupConfig:getDataSourcesDataSourceBackupConfigInfoBackupApplianceBackupConfig"},"description":"Configuration for an application backed up by a Backup Appliance.\n"},"gcpBackupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourcesDataSourceBackupConfigInfoGcpBackupConfig:getDataSourcesDataSourceBackupConfigInfoGcpBackupConfig"},"description":"Configuration for a Google Cloud resource.\n"},"lastBackupError":{"type":"object","additionalProperties":{"type":"string"},"description":"If the last backup failed, this field has the error message.\n"},"lastBackupState":{"type":"string","description":"LastBackupstate tracks whether the last backup was not yet started, successful, failed, or could not be run because of the lack of permissions.\n"},"lastSuccessfulBackupConsistencyTime":{"type":"string","description":"If the last backup were successful, this field has the consistency date.\n"}},"type":"object","required":["backupApplianceBackupConfigs","gcpBackupConfigs","lastBackupError","lastBackupState","lastSuccessfulBackupConsistencyTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSourceBackupConfigInfoBackupApplianceBackupConfig:getDataSourcesDataSourceBackupConfigInfoBackupApplianceBackupConfig":{"properties":{"applicationName":{"type":"string","description":"The name of the application.\n"},"backupApplianceId":{"type":"string","description":"The ID of the backup appliance.\n"},"backupApplianceName":{"type":"string","description":"The name of the backup appliance.\n"},"hostName":{"type":"string","description":"The name of the host where the application is running.\n"},"slaId":{"type":"string","description":"The ID of the SLA of this application.\n"},"slpName":{"type":"string","description":"The name of the SLP associated with the application.\n"},"sltName":{"type":"string","description":"The name of the SLT associated with the application.\n"}},"type":"object","required":["applicationName","backupApplianceId","backupApplianceName","hostName","slaId","slpName","sltName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSourceBackupConfigInfoGcpBackupConfig:getDataSourcesDataSourceBackupConfigInfoGcpBackupConfig":{"properties":{"backupPlan":{"type":"string","description":"The name of the backup plan.\n"},"backupPlanAssociation":{"type":"string","description":"The name of the backup plan association.\n"},"backupPlanDescription":{"type":"string","description":"The description of the backup plan.\n"},"backupPlanRules":{"type":"array","items":{"type":"string"},"description":"The names of the backup plan rules which point to this backupvault\n"}},"type":"object","required":["backupPlan","backupPlanAssociation","backupPlanDescription","backupPlanRules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSourceDataSourceBackupApplianceApplication:getDataSourcesDataSourceDataSourceBackupApplianceApplication":{"properties":{"applianceId":{"type":"string","description":"Appliance Id of the Backup Appliance.\n"},"applicationId":{"type":"string","description":"The appid field of the application within the Backup Appliance.\n"},"applicationName":{"type":"string","description":"The name of the Application as known to the Backup Appliance.\n"},"backupAppliance":{"type":"string","description":"Appliance name.\n"},"hostId":{"type":"string","description":"Hostid of the application host.\n"},"hostname":{"type":"string","description":"Hostname of the host where the application is running.\n"},"type":{"type":"string","description":"The type of the application. e.g. VMBackup\n"}},"type":"object","required":["applianceId","applicationId","applicationName","backupAppliance","hostId","hostname","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSourceDataSourceGcpResource:getDataSourcesDataSourceDataSourceGcpResource":{"properties":{"computeInstanceDataSourceProperties":{"type":"array","items":{"$ref":"#/types/gcp:backupdisasterrecovery/getDataSourcesDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty:getDataSourcesDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty"},"description":"ComputeInstanceDataSourceProperties has a subset of Compute Instance properties that are useful at the Datasource level.\n"},"gcpResourcename":{"type":"string","description":"Full resource pathname URL of the source Google Cloud resource.\n"},"location":{"type":"string","description":"Location of the resource: \u003cregion\u003e/\u003czone\u003e/\"global\"/\"unspecified\".\n"},"type":{"type":"string","description":"The type of the Google Cloud resource. Use the Unified Resource Type,\n\t\t\t\t\teg. compute.googleapis.com/Instance.\n"}},"type":"object","required":["computeInstanceDataSourceProperties","gcpResourcename","location","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getDataSourcesDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty:getDataSourcesDataSourceDataSourceGcpResourceComputeInstanceDataSourceProperty":{"properties":{"description":{"type":"string","description":"The description of the Compute Engine instance.\n"},"machineType":{"type":"string","description":"The machine type of the instance.\n"},"name":{"type":"string","description":"Name of the compute instance backed up by the datasource.\n"},"totalDiskCount":{"type":"string","description":"The total number of disks attached to the Instance.\n"},"totalDiskSizeGb":{"type":"string","description":"The sum of all the disk sizes.\n"}},"type":"object","required":["description","machineType","name","totalDiskCount","totalDiskSizeGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getManagementServerManagementUri:getManagementServerManagementUri":{"properties":{"api":{"type":"string","description":"The management console api endpoint.\n"},"webUi":{"type":"string","description":"The management console webUi.\n"}},"type":"object","required":["api","webUi"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:backupdisasterrecovery/getManagementServerNetwork:getManagementServerNetwork":{"properties":{"network":{"type":"string","description":"Network with format 'projects/{{project_id}}/global/networks/{{network_id}}'\n"},"peeringMode":{"type":"string","description":"Type of Network peeringMode Default value: \"PRIVATE_SERVICE_ACCESS\" Possible values: [\"PRIVATE_SERVICE_ACCESS\"]\n"}},"type":"object","required":["network","peeringMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/AppConnectionApplicationEndpoint:AppConnectionApplicationEndpoint":{"properties":{"host":{"type":"string","description":"Hostname or IP address of the remote application endpoint.\n"},"port":{"type":"integer","description":"Port of the remote application endpoint.\n"}},"type":"object","required":["host","port"]},"gcp:beyondcorp/AppConnectionGateway:AppConnectionGateway":{"properties":{"appGateway":{"type":"string","description":"AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.\n"},"ingressPort":{"type":"integer","description":"(Output)\nIngress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.\n"},"type":{"type":"string","description":"The type of hosting used by the gateway. Refer to\nhttps://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1\nfor a list of possible values.\n"},"uri":{"type":"string","description":"(Output)\nServer-defined URI for this resource.\n"}},"type":"object","required":["appGateway"],"language":{"nodejs":{"requiredOutputs":["appGateway","ingressPort","uri"]}}},"gcp:beyondcorp/AppConnectorPrincipalInfo:AppConnectorPrincipalInfo":{"properties":{"serviceAccount":{"$ref":"#/types/gcp:beyondcorp/AppConnectorPrincipalInfoServiceAccount:AppConnectorPrincipalInfoServiceAccount","description":"ServiceAccount represents a GCP service account.\nStructure is documented below.\n"}},"type":"object","required":["serviceAccount"]},"gcp:beyondcorp/AppConnectorPrincipalInfoServiceAccount:AppConnectorPrincipalInfoServiceAccount":{"properties":{"email":{"type":"string","description":"Email address of the service account.\n"}},"type":"object","required":["email"]},"gcp:beyondcorp/AppGatewayAllocatedConnection:AppGatewayAllocatedConnection":{"properties":{"ingressPort":{"type":"integer","description":"The ingress port of an allocated connection.\n"},"pscUri":{"type":"string","description":"The PSC uri of an allocated connection.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayApplicationEndpointMatcher:SecurityGatewayApplicationEndpointMatcher":{"properties":{"hostname":{"type":"string","description":"Required. Hostname of the application.\n"},"ports":{"type":"array","items":{"type":"integer"},"description":"Optional. Ports of the application.\n"}},"type":"object","required":["hostname","ports"]},"gcp:beyondcorp/SecurityGatewayApplicationIamBindingCondition:SecurityGatewayApplicationIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:beyondcorp/SecurityGatewayApplicationIamMemberCondition:SecurityGatewayApplicationIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:beyondcorp/SecurityGatewayApplicationUpstream:SecurityGatewayApplicationUpstream":{"properties":{"egressPolicy":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamEgressPolicy:SecurityGatewayApplicationUpstreamEgressPolicy","description":"Optional. Routing policy information.\nStructure is documented below.\n"},"external":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamExternal:SecurityGatewayApplicationUpstreamExternal","description":"List of the external endpoints to forward traffic to.\nStructure is documented below.\n"},"network":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamNetwork:SecurityGatewayApplicationUpstreamNetwork","description":"Network to forward traffic to.\nStructure is documented below.\n"},"proxyProtocol":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocol:SecurityGatewayApplicationUpstreamProxyProtocol","description":"Shared proxy configuration for all apps.\nStructure is documented below.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamEgressPolicy:SecurityGatewayApplicationUpstreamEgressPolicy":{"properties":{"regions":{"type":"array","items":{"type":"string"},"description":"Required. List of regions where the application sends traffic to.\n"}},"type":"object","required":["regions"]},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamExternal:SecurityGatewayApplicationUpstreamExternal":{"properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamExternalEndpoint:SecurityGatewayApplicationUpstreamExternalEndpoint"},"description":"List of the endpoints to forward traffic to.\nStructure is documented below.\n"}},"type":"object","required":["endpoints"]},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamExternalEndpoint:SecurityGatewayApplicationUpstreamExternalEndpoint":{"properties":{"hostname":{"type":"string","description":"Hostname of the endpoint.\n"},"port":{"type":"integer","description":"Port of the endpoint.\n"}},"type":"object","required":["hostname","port"]},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamNetwork:SecurityGatewayApplicationUpstreamNetwork":{"properties":{"name":{"type":"string","description":"Required. Network name is of the format:\n`projects/{project}/global/networks/{network}`\n"}},"type":"object","required":["name"]},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocol:SecurityGatewayApplicationUpstreamProxyProtocol":{"properties":{"allowedClientHeaders":{"type":"array","items":{"type":"string"},"description":"The configuration for the proxy.\n"},"clientIp":{"type":"boolean","description":"Client IP configuration. The client IP address is included if true.\n"},"contextualHeaders":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeaders:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeaders","description":"Configuration for the contextual headers.\nStructure is documented below.\n"},"gatewayIdentity":{"type":"string","description":"Gateway identity configuration.\nPossible values are: `RESOURCE_NAME`.\n"},"metadataHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom resource specific headers along with the values.\nThe names should conform to RFC 9110:\n\u003e Field names SHOULD constrain themselves to alphanumeric characters, \"-\",\nand \".\", and SHOULD begin with a letter.\n\u003e Field values SHOULD contain only ASCII printable characters and tab.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeaders:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeaders":{"properties":{"deviceInfo":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersDeviceInfo:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersDeviceInfo","description":"Device info configuration.\nStructure is documented below.\n"},"groupInfo":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersGroupInfo:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersGroupInfo","description":"Group info configuration.\nStructure is documented below.\n"},"outputType":{"type":"string","description":"Default output type for all enabled headers.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"},"userInfo":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersUserInfo:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersUserInfo","description":"User info configuration.\nStructure is documented below.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersDeviceInfo:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersDeviceInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated device info.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersGroupInfo:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersGroupInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated group info.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersUserInfo:SecurityGatewayApplicationUpstreamProxyProtocolContextualHeadersUserInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated user info.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayHub:SecurityGatewayHub":{"properties":{"internetGateway":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayHubInternetGateway:SecurityGatewayHubInternetGateway","description":"Internet Gateway configuration.\nStructure is documented below.\n"},"region":{"type":"string","description":"The identifier for this object. Format specified above.\n"}},"type":"object","required":["region"],"language":{"nodejs":{"requiredOutputs":["internetGateway","region"]}}},"gcp:beyondcorp/SecurityGatewayHubInternetGateway:SecurityGatewayHubInternetGateway":{"properties":{"assignedIps":{"type":"array","items":{"type":"string"},"description":"(Output)\nOutput only. List of IP addresses assigned to the Cloud NAT.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["assignedIps"]}}},"gcp:beyondcorp/SecurityGatewayIamBindingCondition:SecurityGatewayIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:beyondcorp/SecurityGatewayIamMemberCondition:SecurityGatewayIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:beyondcorp/SecurityGatewayLogging:SecurityGatewayLogging":{"type":"object"},"gcp:beyondcorp/SecurityGatewayProxyProtocolConfig:SecurityGatewayProxyProtocolConfig":{"properties":{"allowedClientHeaders":{"type":"array","items":{"type":"string"},"description":"The configuration for the proxy.\n"},"clientIp":{"type":"boolean","description":"Client IP configuration. The client IP address is included if true.\n"},"contextualHeaders":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeaders:SecurityGatewayProxyProtocolConfigContextualHeaders","description":"Configuration for the contextual headers.\nStructure is documented below.\n"},"gatewayIdentity":{"type":"string","description":"Gateway identity configuration.\nPossible values are: `RESOURCE_NAME`.\n"},"metadataHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom resource specific headers along with the values.\nThe names should conform to RFC 9110:\n\u003e Field names SHOULD constrain themselves to alphanumeric characters, \"-\",\nand \".\", and SHOULD begin with a letter.\n\u003e Field values SHOULD contain only ASCII printable characters and tab.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeaders:SecurityGatewayProxyProtocolConfigContextualHeaders":{"properties":{"deviceInfo":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeadersDeviceInfo:SecurityGatewayProxyProtocolConfigContextualHeadersDeviceInfo","description":"Device info configuration.\nStructure is documented below.\n"},"groupInfo":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeadersGroupInfo:SecurityGatewayProxyProtocolConfigContextualHeadersGroupInfo","description":"Group info configuration.\nStructure is documented below.\n"},"outputType":{"type":"string","description":"Default output type for all enabled headers.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"},"userInfo":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeadersUserInfo:SecurityGatewayProxyProtocolConfigContextualHeadersUserInfo","description":"User info configuration.\nStructure is documented below.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeadersDeviceInfo:SecurityGatewayProxyProtocolConfigContextualHeadersDeviceInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated device info.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeadersGroupInfo:SecurityGatewayProxyProtocolConfigContextualHeadersGroupInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated group info.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayProxyProtocolConfigContextualHeadersUserInfo:SecurityGatewayProxyProtocolConfigContextualHeadersUserInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated user info.\nPossible values are: `PROTOBUF`, `JSON`, `NONE`.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayServiceDiscovery:SecurityGatewayServiceDiscovery":{"properties":{"apiGateway":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayServiceDiscoveryApiGateway:SecurityGatewayServiceDiscoveryApiGateway","description":"External API configuration.\nStructure is documented below.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayServiceDiscoveryApiGateway:SecurityGatewayServiceDiscoveryApiGateway":{"properties":{"resourceOverride":{"$ref":"#/types/gcp:beyondcorp/SecurityGatewayServiceDiscoveryApiGatewayResourceOverride:SecurityGatewayServiceDiscoveryApiGatewayResourceOverride","description":"Enables fetching resource model updates to alter service behavior per Chrome profile.\nStructure is documented below.\n"}},"type":"object"},"gcp:beyondcorp/SecurityGatewayServiceDiscoveryApiGatewayResourceOverride:SecurityGatewayServiceDiscoveryApiGatewayResourceOverride":{"properties":{"path":{"type":"string","description":"Contains uri path fragment where HTTP request is sent.\n"}},"type":"object"},"gcp:beyondcorp/getAppConnectionApplicationEndpoint:getAppConnectionApplicationEndpoint":{"properties":{"host":{"type":"string","description":"Hostname or IP address of the remote application endpoint.\n"},"port":{"type":"integer","description":"Port of the remote application endpoint.\n"}},"type":"object","required":["host","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getAppConnectionGateway:getAppConnectionGateway":{"properties":{"appGateway":{"type":"string","description":"AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.\n"},"ingressPort":{"type":"integer","description":"Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.\n"},"type":{"type":"string","description":"The type of hosting used by the gateway. Refer to\nhttps://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1\nfor a list of possible values.\n"},"uri":{"type":"string","description":"Server-defined URI for this resource.\n"}},"type":"object","required":["appGateway","ingressPort","type","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getAppConnectorPrincipalInfo:getAppConnectorPrincipalInfo":{"properties":{"serviceAccounts":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getAppConnectorPrincipalInfoServiceAccount:getAppConnectorPrincipalInfoServiceAccount"},"description":"ServiceAccount represents a GCP service account.\n"}},"type":"object","required":["serviceAccounts"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getAppConnectorPrincipalInfoServiceAccount:getAppConnectorPrincipalInfoServiceAccount":{"properties":{"email":{"type":"string","description":"Email address of the service account.\n"}},"type":"object","required":["email"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getAppGatewayAllocatedConnection:getAppGatewayAllocatedConnection":{"properties":{"ingressPort":{"type":"integer","description":"The ingress port of an allocated connection.\n"},"pscUri":{"type":"string","description":"The PSC uri of an allocated connection.\n"}},"type":"object","required":["ingressPort","pscUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayHub:getSecurityGatewayHub":{"properties":{"internetGateways":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayHubInternetGateway:getSecurityGatewayHubInternetGateway"},"description":"Internet Gateway configuration.\n"},"region":{"type":"string"}},"type":"object","required":["internetGateways","region"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayHubInternetGateway:getSecurityGatewayHubInternetGateway":{"properties":{"assignedIps":{"type":"array","items":{"type":"string"},"description":"Output only. List of IP addresses assigned to the Cloud NAT.\n"}},"type":"object","required":["assignedIps"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayLogging:getSecurityGatewayLogging":{"type":"object"},"gcp:beyondcorp/getSecurityGatewayProxyProtocolConfig:getSecurityGatewayProxyProtocolConfig":{"properties":{"allowedClientHeaders":{"type":"array","items":{"type":"string"},"description":"The configuration for the proxy.\n"},"clientIp":{"type":"boolean","description":"Client IP configuration. The client IP address is included if true.\n"},"contextualHeaders":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeader:getSecurityGatewayProxyProtocolConfigContextualHeader"},"description":"Configuration for the contextual headers.\n"},"gatewayIdentity":{"type":"string","description":"Gateway identity configuration. Possible values: [\"RESOURCE_NAME\"]\n"},"metadataHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom resource specific headers along with the values.\nThe names should conform to RFC 9110:\n\u003e Field names SHOULD constrain themselves to alphanumeric characters, \"-\",\n  and \".\", and SHOULD begin with a letter.\n\u003e Field values SHOULD contain only ASCII printable characters and tab.\n"}},"type":"object","required":["allowedClientHeaders","clientIp","contextualHeaders","gatewayIdentity","metadataHeaders"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeader:getSecurityGatewayProxyProtocolConfigContextualHeader":{"properties":{"deviceInfos":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeaderDeviceInfo:getSecurityGatewayProxyProtocolConfigContextualHeaderDeviceInfo"},"description":"Device info configuration.\n"},"groupInfos":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeaderGroupInfo:getSecurityGatewayProxyProtocolConfigContextualHeaderGroupInfo"},"description":"Group info configuration.\n"},"outputType":{"type":"string","description":"Default output type for all enabled headers. Possible values: [\"PROTOBUF\", \"JSON\", \"NONE\"]\n"},"userInfos":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeaderUserInfo:getSecurityGatewayProxyProtocolConfigContextualHeaderUserInfo"},"description":"User info configuration.\n"}},"type":"object","required":["deviceInfos","groupInfos","outputType","userInfos"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeaderDeviceInfo:getSecurityGatewayProxyProtocolConfigContextualHeaderDeviceInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated device info. Possible values: [\"PROTOBUF\", \"JSON\", \"NONE\"]\n"}},"type":"object","required":["outputType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeaderGroupInfo:getSecurityGatewayProxyProtocolConfigContextualHeaderGroupInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated group info. Possible values: [\"PROTOBUF\", \"JSON\", \"NONE\"]\n"}},"type":"object","required":["outputType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayProxyProtocolConfigContextualHeaderUserInfo:getSecurityGatewayProxyProtocolConfigContextualHeaderUserInfo":{"properties":{"outputType":{"type":"string","description":"The output type of the delegated user info. Possible values: [\"PROTOBUF\", \"JSON\", \"NONE\"]\n"}},"type":"object","required":["outputType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayServiceDiscovery:getSecurityGatewayServiceDiscovery":{"properties":{"apiGateways":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayServiceDiscoveryApiGateway:getSecurityGatewayServiceDiscoveryApiGateway"},"description":"External API configuration.\n"}},"type":"object","required":["apiGateways"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayServiceDiscoveryApiGateway:getSecurityGatewayServiceDiscoveryApiGateway":{"properties":{"resourceOverrides":{"type":"array","items":{"$ref":"#/types/gcp:beyondcorp/getSecurityGatewayServiceDiscoveryApiGatewayResourceOverride:getSecurityGatewayServiceDiscoveryApiGatewayResourceOverride"},"description":"Enables fetching resource model updates to alter service behavior per Chrome profile.\n"}},"type":"object","required":["resourceOverrides"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:beyondcorp/getSecurityGatewayServiceDiscoveryApiGatewayResourceOverride:getSecurityGatewayServiceDiscoveryApiGatewayResourceOverride":{"properties":{"path":{"type":"string","description":"Contains uri path fragment where HTTP request is sent.\n"}},"type":"object","required":["path"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:biglake/DatabaseHiveOptions:DatabaseHiveOptions":{"properties":{"locationUri":{"type":"string","description":"Cloud Storage folder URI where the database data is stored, starting with \"gs://\".\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Stores user supplied Hive database parameters. An object containing a\nlist of\"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n"}},"type":"object"},"gcp:biglake/IcebergCatalogIamBindingCondition:IcebergCatalogIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:biglake/IcebergCatalogIamMemberCondition:IcebergCatalogIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:biglake/IcebergCatalogReplica:IcebergCatalogReplica":{"properties":{"region":{"type":"string","description":"(Output)\nThe region of the replica, e.g., `us-east1`.\n"},"state":{"type":"string","description":"(Output)\nIf the IcebergCatalog is replicated to multiple regions, this describes the current state of the replica. STATE_UNKNOWN - The replica state is unknown. STATE_PRIMARY - The replica is the writable primary. STATE_PRIMARY_IN_PROGRESS - The replica has been recently assigned as the primary, but not all namespaces are writeable yet. STATE_SECONDARY - The replica is a read-only secondary replica.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["region","state"]}}},"gcp:biglake/IcebergNamespaceIamBindingCondition:IcebergNamespaceIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:biglake/IcebergNamespaceIamMemberCondition:IcebergNamespaceIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:biglake/TableHiveOptions:TableHiveOptions":{"properties":{"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Stores user supplied Hive table parameters. An object containing a\nlist of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n"},"storageDescriptor":{"$ref":"#/types/gcp:biglake/TableHiveOptionsStorageDescriptor:TableHiveOptionsStorageDescriptor","description":"Stores physical storage information on the data.\nStructure is documented below.\n"},"tableType":{"type":"string","description":"Hive table type. For example, MANAGED_TABLE, EXTERNAL_TABLE.\n"}},"type":"object"},"gcp:biglake/TableHiveOptionsStorageDescriptor:TableHiveOptionsStorageDescriptor":{"properties":{"inputFormat":{"type":"string","description":"The fully qualified Java class name of the input format.\n"},"locationUri":{"type":"string","description":"Cloud Storage folder URI where the table data is stored, starting with \"gs://\".\n"},"outputFormat":{"type":"string","description":"The fully qualified Java class name of the output format.\n"}},"type":"object"},"gcp:bigquery/AppProfileDataBoostIsolationReadOnly:AppProfileDataBoostIsolationReadOnly":{"properties":{"computeBillingOwner":{"type":"string","description":"The Compute Billing Owner for this Data Boost App Profile.\nPossible values are: `HOST_PAYS`.\n"}},"type":"object","required":["computeBillingOwner"]},"gcp:bigquery/AppProfileSingleClusterRouting:AppProfileSingleClusterRouting":{"properties":{"allowTransactionalWrites":{"type":"boolean","description":"If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile.\nIt is unsafe to send these requests to the same table/row/column in multiple clusters.\n"},"clusterId":{"type":"string","description":"The cluster to which read/write requests should be routed.\n"}},"type":"object","required":["clusterId"]},"gcp:bigquery/AppProfileStandardIsolation:AppProfileStandardIsolation":{"properties":{"priority":{"type":"string","description":"The priority of requests sent using this app profile.\nPossible values are: `PRIORITY_LOW`, `PRIORITY_MEDIUM`, `PRIORITY_HIGH`.\n"}},"type":"object","required":["priority"]},"gcp:bigquery/BiReservationPreferredTable:BiReservationPreferredTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset in the above project.\n"},"projectId":{"type":"string","description":"The assigned project ID of the project.\n"},"tableId":{"type":"string","description":"The ID of the table in the above dataset.\n"}},"type":"object"},"gcp:bigquery/ConnectionAws:ConnectionAws":{"properties":{"accessRole":{"$ref":"#/types/gcp:bigquery/ConnectionAwsAccessRole:ConnectionAwsAccessRole","description":"Authentication using Google owned service account to assume into customer's AWS IAM Role.\nStructure is documented below.\n"}},"type":"object","required":["accessRole"]},"gcp:bigquery/ConnectionAwsAccessRole:ConnectionAwsAccessRole":{"properties":{"iamRoleId":{"type":"string","description":"The user’s AWS IAM Role that trusts the Google-owned AWS IAM user Connection.\n"},"identity":{"type":"string","description":"(Output)\nA unique Google-owned and Google-generated identity for the Connection. This identity will be used to access the user's AWS IAM Role.\n"}},"type":"object","required":["iamRoleId"],"language":{"nodejs":{"requiredOutputs":["iamRoleId","identity"]}}},"gcp:bigquery/ConnectionAzure:ConnectionAzure":{"properties":{"application":{"type":"string","description":"(Output)\nThe name of the Azure Active Directory Application.\n"},"clientId":{"type":"string","description":"(Output)\nThe client id of the Azure Active Directory Application.\n"},"customerTenantId":{"type":"string","description":"The id of customer's directory that host the data.\n"},"federatedApplicationClientId":{"type":"string","description":"The Azure Application (client) ID where the federated credentials will be hosted.\n"},"identity":{"type":"string","description":"(Output)\nA unique Google-owned and Google-generated identity for the Connection. This identity will be used to access the user's Azure Active Directory Application.\n"},"objectId":{"type":"string","description":"(Output)\nThe object id of the Azure Active Directory Application.\n"},"redirectUri":{"type":"string","description":"(Output)\nThe URL user will be redirected to after granting consent during connection setup.\n"}},"type":"object","required":["customerTenantId"],"language":{"nodejs":{"requiredOutputs":["application","clientId","customerTenantId","identity","objectId","redirectUri"]}}},"gcp:bigquery/ConnectionCloudResource:ConnectionCloudResource":{"properties":{"serviceAccountId":{"type":"string","description":"(Output)\nThe account ID of the service created for the purpose of this connection.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccountId"]}}},"gcp:bigquery/ConnectionCloudSpanner:ConnectionCloudSpanner":{"properties":{"database":{"type":"string","description":"Cloud Spanner database in the form `project/instance/database'.\n"},"databaseRole":{"type":"string","description":"Cloud Spanner database role for fine-grained access control. The Cloud Spanner admin should have provisioned the database role with appropriate permissions, such as `SELECT` and `INSERT`. Other users should only use roles provided by their Cloud Spanner admins. The database role name must start with a letter, and can only contain letters, numbers, and underscores. For more details, see https://cloud.google.com/spanner/docs/fgac-about.\n"},"maxParallelism":{"type":"integer","description":"Allows setting max parallelism per query when executing on Spanner independent compute resources. If unspecified, default values of parallelism are chosen that are dependent on the Cloud Spanner instance configuration. `useParallelism` and `useDataBoost` must be set when setting max parallelism.\n"},"useDataBoost":{"type":"boolean","description":"If set, the request will be executed via Spanner independent compute resources. \u003cspan pulumi-lang-nodejs=\"`useParallelism`\" pulumi-lang-dotnet=\"`UseParallelism`\" pulumi-lang-go=\"`useParallelism`\" pulumi-lang-python=\"`use_parallelism`\" pulumi-lang-yaml=\"`useParallelism`\" pulumi-lang-java=\"`useParallelism`\"\u003e`use_parallelism`\u003c/span\u003e must be set when using data boost.\n"},"useParallelism":{"type":"boolean","description":"If parallelism should be used when reading from Cloud Spanner.\n"},"useServerlessAnalytics":{"type":"boolean","description":"(Optional, Deprecated)\nIf the serverless analytics service should be used to read data from Cloud Spanner. `useParallelism` must be set when using serverless analytics.\n\n\u003e **Warning:** `useServerlessAnalytics` is deprecated and will be removed in a future major release. Use `useDataBoost` instead.\n","deprecationMessage":"`useServerlessAnalytics` is deprecated and will be removed in a future major release. Use `useDataBoost` instead."}},"type":"object","required":["database"]},"gcp:bigquery/ConnectionCloudSql:ConnectionCloudSql":{"properties":{"credential":{"$ref":"#/types/gcp:bigquery/ConnectionCloudSqlCredential:ConnectionCloudSqlCredential","description":"Cloud SQL properties.\nStructure is documented below.\n"},"database":{"type":"string","description":"Database name.\n"},"instanceId":{"type":"string","description":"Cloud SQL instance ID in the form project:location:instance.\n"},"serviceAccountId":{"type":"string","description":"(Output)\nWhen the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection.\n"},"type":{"type":"string","description":"Type of the Cloud SQL database.\nPossible values are: `DATABASE_TYPE_UNSPECIFIED`, `POSTGRES`, `MYSQL`.\n"}},"type":"object","required":["credential","database","instanceId","type"],"language":{"nodejs":{"requiredOutputs":["credential","database","instanceId","serviceAccountId","type"]}}},"gcp:bigquery/ConnectionCloudSqlCredential:ConnectionCloudSqlCredential":{"properties":{"password":{"type":"string","description":"Password for database.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"username":{"type":"string","description":"Username for database.\n"}},"type":"object","required":["password","username"]},"gcp:bigquery/ConnectionIamBindingCondition:ConnectionIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/ConnectionIamMemberCondition:ConnectionIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/ConnectionSpark:ConnectionSpark":{"properties":{"metastoreServiceConfig":{"$ref":"#/types/gcp:bigquery/ConnectionSparkMetastoreServiceConfig:ConnectionSparkMetastoreServiceConfig","description":"Dataproc Metastore Service configuration for the connection.\nStructure is documented below.\n"},"serviceAccountId":{"type":"string","description":"(Output)\nThe account ID of the service created for the purpose of this connection.\n"},"sparkHistoryServerConfig":{"$ref":"#/types/gcp:bigquery/ConnectionSparkSparkHistoryServerConfig:ConnectionSparkSparkHistoryServerConfig","description":"Spark History Server configuration for the connection.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccountId"]}}},"gcp:bigquery/ConnectionSparkMetastoreServiceConfig:ConnectionSparkMetastoreServiceConfig":{"properties":{"metastoreService":{"type":"string","description":"Resource name of an existing Dataproc Metastore service in the form of projects/[projectId]/locations/[region]/services/[serviceId].\n"}},"type":"object"},"gcp:bigquery/ConnectionSparkSparkHistoryServerConfig:ConnectionSparkSparkHistoryServerConfig":{"properties":{"dataprocCluster":{"type":"string","description":"Resource name of an existing Dataproc Cluster to act as a Spark History Server for the connection if the form of projects/[projectId]/regions/[region]/clusters/\u003cspan pulumi-lang-nodejs=\"[clusterName]\" pulumi-lang-dotnet=\"[ClusterName]\" pulumi-lang-go=\"[clusterName]\" pulumi-lang-python=\"[cluster_name]\" pulumi-lang-yaml=\"[clusterName]\" pulumi-lang-java=\"[clusterName]\"\u003e[cluster_name]\u003c/span\u003e.\n"}},"type":"object"},"gcp:bigquery/DataTransferConfigEmailPreferences:DataTransferConfigEmailPreferences":{"properties":{"enableFailureEmail":{"type":"boolean","description":"If true, email notifications will be sent on transfer run failures.\n"}},"type":"object","required":["enableFailureEmail"]},"gcp:bigquery/DataTransferConfigEncryptionConfiguration:DataTransferConfigEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"The name of the KMS key used for encrypting BigQuery data.\n"}},"type":"object","required":["kmsKeyName"]},"gcp:bigquery/DataTransferConfigScheduleOptions:DataTransferConfigScheduleOptions":{"properties":{"disableAutoScheduling":{"type":"boolean","description":"If true, automatic scheduling of data transfer runs for this\nconfiguration will be disabled. The runs can be started on ad-hoc\nbasis using transferConfigs.startManualRuns API. When automatic\nscheduling is disabled, the TransferConfig.schedule field will\nbe ignored.\n"},"endTime":{"type":"string","description":"Defines time to stop scheduling transfer runs. A transfer run cannot be\nscheduled at or after the end time. The end time can be changed at any\nmoment. The time when a data transfer can be triggered manually is not\nlimited by this option.\n"},"startTime":{"type":"string","description":"Specifies time to start scheduling transfer runs. The first run will be\nscheduled at or after the start time according to a recurrence pattern\ndefined in the schedule string. The start time can be changed at any\nmoment. The time when a data transfer can be triggered manually is not\nlimited by this option.\n"}},"type":"object"},"gcp:bigquery/DataTransferConfigSensitiveParams:DataTransferConfigSensitiveParams":{"properties":{"secretAccessKey":{"type":"string","description":"The Secret Access Key of the AWS account transferring data from.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"secretAccessKeyWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n(Optional, Write-Only)\nThe Secret Access Key of the AWS account transferring data from.\n**Note**: This property is write-only and will not be read from the API.\n\n\u003e **Note:** One of \u003cspan pulumi-lang-nodejs=\"`secretAccessKey`\" pulumi-lang-dotnet=\"`SecretAccessKey`\" pulumi-lang-go=\"`secretAccessKey`\" pulumi-lang-python=\"`secret_access_key`\" pulumi-lang-yaml=\"`secretAccessKey`\" pulumi-lang-java=\"`secretAccessKey`\"\u003e`secret_access_key`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secretAccessKeyWo`\" pulumi-lang-dotnet=\"`SecretAccessKeyWo`\" pulumi-lang-go=\"`secretAccessKeyWo`\" pulumi-lang-python=\"`secret_access_key_wo`\" pulumi-lang-yaml=\"`secretAccessKeyWo`\" pulumi-lang-java=\"`secretAccessKeyWo`\"\u003e`secret_access_key_wo`\u003c/span\u003e can only be set.\n","secret":true},"secretAccessKeyWoVersion":{"type":"integer","description":"The version of the sensitive params - used to trigger updates of the write-only params. For more info see [updating write-only arguments](https://www.terraform.io/docs/providers/google/guides/using_write_only_arguments.html#updating-write-only-arguments)\n"}},"type":"object"},"gcp:bigquery/Datapolicyv2DataPolicyDataMaskingPolicy:Datapolicyv2DataPolicyDataMaskingPolicy":{"properties":{"predefinedExpression":{"type":"string","description":"A predefined masking expression.\nPossible values:\nSHA256\nALWAYS_NULL\nDEFAULT_MASKING_VALUE\nLAST_FOUR_CHARACTERS\nFIRST_FOUR_CHARACTERS\nEMAIL_MASK\nDATE_YEAR_MASK\nRANDOM_HASH\n"},"routine":{"type":"string","description":"The name of the BigQuery routine that contains the custom masking\nroutine, in the format of\n`projects/{project_number}/datasets/{dataset_id}/routines/{routine_id}`.\n"}},"type":"object"},"gcp:bigquery/Datapolicyv2DataPolicyIamBindingCondition:Datapolicyv2DataPolicyIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/Datapolicyv2DataPolicyIamMemberCondition:Datapolicyv2DataPolicyIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/DatasetAccess:DatasetAccess":{"properties":{"condition":{"$ref":"#/types/gcp:bigquery/DatasetAccessCondition:DatasetAccessCondition","description":"Condition for the binding. If CEL expression in this field is true, this\naccess binding will be considered.\nStructure is documented below.\n"},"dataset":{"$ref":"#/types/gcp:bigquery/DatasetAccessDataset:DatasetAccessDataset","description":"Grants all resources of particular types in a particular dataset read access to the current dataset.\nStructure is documented below.\n"},"domain":{"type":"string","description":"A domain to grant access to. Any users signed in with the\ndomain specified will be granted the specified access\n"},"groupByEmail":{"type":"string","description":"An email address of a Google Group to grant access to.\n"},"iamMember":{"type":"string","description":"Some other type of member that appears in the IAM Policy but isn't a user,\ngroup, domain, or special group. For example: `allUsers`\n"},"role":{"type":"string","description":"Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles\nare supported. Predefined roles that have equivalent basic roles\nare swapped by the API to their basic counterparts. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).\n"},"routine":{"$ref":"#/types/gcp:bigquery/DatasetAccessRoutine:DatasetAccessRoutine","description":"A routine from a different dataset to grant access to. Queries\nexecuted against that routine will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that routine is updated by any user, access to the routine\nneeds to be granted again via an update operation.\nStructure is documented below.\n"},"specialGroup":{"type":"string","description":"A special group to grant access to. Possible values include:\n* `projectOwners`: Owners of the enclosing project.\n* `projectReaders`: Readers of the enclosing project.\n* `projectWriters`: Writers of the enclosing project.\n* `allAuthenticatedUsers`: All authenticated BigQuery users.\n"},"userByEmail":{"type":"string","description":"An email address of a user to grant access to. For example:\nfred@example.com\n"},"view":{"$ref":"#/types/gcp:bigquery/DatasetAccessView:DatasetAccessView","description":"A view from a different dataset to grant access to. Queries\nexecuted against that view will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that view is updated by any user, access to the view\nneeds to be granted again via an update operation.\nStructure is documented below.\n"}},"type":"object"},"gcp:bigquery/DatasetAccessAuthorizedDataset:DatasetAccessAuthorizedDataset":{"properties":{"dataset":{"$ref":"#/types/gcp:bigquery/DatasetAccessAuthorizedDatasetDataset:DatasetAccessAuthorizedDatasetDataset","description":"The dataset this entry applies to\nStructure is documented below.\n","willReplaceOnChanges":true},"targetTypes":{"type":"array","items":{"type":"string"},"description":"Which resources in the dataset this entry applies to. Currently, only views are supported,\nbut additional target types may be added in the future. Possible values: VIEWS\n","willReplaceOnChanges":true}},"type":"object","required":["dataset","targetTypes"]},"gcp:bigquery/DatasetAccessAuthorizedDatasetDataset:DatasetAccessAuthorizedDatasetDataset":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId","projectId"]},"gcp:bigquery/DatasetAccessCondition:DatasetAccessCondition":{"properties":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file\nname and a position in the file.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.\n","willReplaceOnChanges":true}},"type":"object","required":["expression"]},"gcp:bigquery/DatasetAccessDataset:DatasetAccessDataset":{"properties":{"dataset":{"$ref":"#/types/gcp:bigquery/DatasetAccessDatasetDataset:DatasetAccessDatasetDataset","description":"The dataset this entry applies to\nStructure is documented below.\n"},"targetTypes":{"type":"array","items":{"type":"string"},"description":"Which resources in the dataset this entry applies to. Currently, only views are supported,\nbut additional target types may be added in the future. Possible values: VIEWS\n"}},"type":"object","required":["dataset","targetTypes"]},"gcp:bigquery/DatasetAccessDatasetDataset:DatasetAccessDatasetDataset":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"}},"type":"object","required":["datasetId","projectId"]},"gcp:bigquery/DatasetAccessRoutine:DatasetAccessRoutine":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"routineId":{"type":"string","description":"The ID of the routine. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 256 characters.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId","projectId","routineId"]},"gcp:bigquery/DatasetAccessView:DatasetAccessView":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"tableId":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId","projectId","tableId"]},"gcp:bigquery/DatasetDefaultEncryptionConfiguration:DatasetDefaultEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination\nBigQuery table. The BigQuery Service Account associated with your project requires\naccess to this encryption key.\n"}},"type":"object","required":["kmsKeyName"]},"gcp:bigquery/DatasetExternalCatalogDatasetOptions:DatasetExternalCatalogDatasetOptions":{"properties":{"defaultStorageLocationUri":{"type":"string","description":"The storage location URI for all tables in the dataset. Equivalent to hive metastore's\ndatabase locationUri. Maximum length of 1024 characters.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of key value pairs defining the parameters and properties of the open source schema.\nMaximum size of 2Mib.\n"}},"type":"object"},"gcp:bigquery/DatasetExternalDatasetReference:DatasetExternalDatasetReference":{"properties":{"connection":{"type":"string","description":"The connection id that is used to access the externalSource.\nFormat: projects/{projectId}/locations/{locationId}/connections/{connectionId}\n","willReplaceOnChanges":true},"externalSource":{"type":"string","description":"External source that backs this dataset.\n","willReplaceOnChanges":true}},"type":"object","required":["connection","externalSource"]},"gcp:bigquery/DatasetIamBindingCondition:DatasetIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/DatasetIamMemberCondition:DatasetIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/IamBindingCondition:IamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/IamMemberCondition:IamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquery/JobCopy:JobCopy":{"properties":{"createDisposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion\nDefault value is `CREATE_IF_NEEDED`.\nPossible values are: `CREATE_IF_NEEDED`, `CREATE_NEVER`.\n","willReplaceOnChanges":true},"destinationEncryptionConfiguration":{"$ref":"#/types/gcp:bigquery/JobCopyDestinationEncryptionConfiguration:JobCopyDestinationEncryptionConfiguration","description":"Custom encryption configuration (e.g., Cloud KMS keys)\nStructure is documented below.\n","willReplaceOnChanges":true},"destinationTable":{"$ref":"#/types/gcp:bigquery/JobCopyDestinationTable:JobCopyDestinationTable","description":"The destination table.\nStructure is documented below.\n","willReplaceOnChanges":true},"sourceTables":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/JobCopySourceTable:JobCopySourceTable"},"description":"Source tables to copy.\nStructure is documented below.\n","willReplaceOnChanges":true},"writeDisposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion.\nDefault value is `WRITE_EMPTY`.\nPossible values are: `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.\n","willReplaceOnChanges":true}},"type":"object","required":["sourceTables"]},"gcp:bigquery/JobCopyDestinationEncryptionConfiguration:JobCopyDestinationEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.\n","willReplaceOnChanges":true},"kmsKeyVersion":{"type":"string","description":"(Output)\nDescribes the Cloud KMS encryption key version used to protect destination BigQuery table.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredOutputs":["kmsKeyName","kmsKeyVersion"]}}},"gcp:bigquery/JobCopyDestinationTable:JobCopyDestinationTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"tableId":{"type":"string","description":"The table. Can be specified `{{table_id}}` if \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`datasetId`\" pulumi-lang-dotnet=\"`DatasetId`\" pulumi-lang-go=\"`datasetId`\" pulumi-lang-python=\"`dataset_id`\" pulumi-lang-yaml=\"`datasetId`\" pulumi-lang-java=\"`datasetId`\"\u003e`dataset_id`\u003c/span\u003e are also set,\nor of the form `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}` if not.\n","willReplaceOnChanges":true}},"type":"object","required":["tableId"],"language":{"nodejs":{"requiredOutputs":["datasetId","projectId","tableId"]}}},"gcp:bigquery/JobCopySourceTable:JobCopySourceTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"tableId":{"type":"string","description":"The table. Can be specified `{{table_id}}` if \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`datasetId`\" pulumi-lang-dotnet=\"`DatasetId`\" pulumi-lang-go=\"`datasetId`\" pulumi-lang-python=\"`dataset_id`\" pulumi-lang-yaml=\"`datasetId`\" pulumi-lang-java=\"`datasetId`\"\u003e`dataset_id`\u003c/span\u003e are also set,\nor of the form `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}` if not.\n","willReplaceOnChanges":true}},"type":"object","required":["tableId"],"language":{"nodejs":{"requiredOutputs":["datasetId","projectId","tableId"]}}},"gcp:bigquery/JobExtract:JobExtract":{"properties":{"compression":{"type":"string","description":"The compression type to use for exported files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE.\nThe default value is NONE. DEFLATE and SNAPPY are only supported for Avro.\n","willReplaceOnChanges":true},"destinationFormat":{"type":"string","description":"The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON and AVRO for tables and SAVED_MODEL for models.\nThe default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV.\nThe default value for models is SAVED_MODEL.\n","willReplaceOnChanges":true},"destinationUris":{"type":"array","items":{"type":"string"},"description":"A list of fully-qualified Google Cloud Storage URIs where the extracted table should be written.\n","willReplaceOnChanges":true},"fieldDelimiter":{"type":"string","description":"When extracting data in CSV format, this defines the delimiter to use between fields in the exported data.\nDefault is ','\n","willReplaceOnChanges":true},"printHeader":{"type":"boolean","description":"Whether to print out a header row in the results. Default is true.\n","willReplaceOnChanges":true},"sourceModel":{"$ref":"#/types/gcp:bigquery/JobExtractSourceModel:JobExtractSourceModel","description":"A reference to the model being exported.\nStructure is documented below.\n","willReplaceOnChanges":true},"sourceTable":{"$ref":"#/types/gcp:bigquery/JobExtractSourceTable:JobExtractSourceTable","description":"A reference to the table being exported.\nStructure is documented below.\n","willReplaceOnChanges":true},"useAvroLogicalTypes":{"type":"boolean","description":"Whether to use logical types when extracting to AVRO format.\n","willReplaceOnChanges":true}},"type":"object","required":["destinationUris"],"language":{"nodejs":{"requiredOutputs":["destinationFormat","destinationUris","fieldDelimiter"]}}},"gcp:bigquery/JobExtractSourceModel:JobExtractSourceModel":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this model.\n","willReplaceOnChanges":true},"modelId":{"type":"string","description":"The ID of the model.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this model.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId","modelId","projectId"]},"gcp:bigquery/JobExtractSourceTable:JobExtractSourceTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"tableId":{"type":"string","description":"The table. Can be specified `{{table_id}}` if \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`datasetId`\" pulumi-lang-dotnet=\"`DatasetId`\" pulumi-lang-go=\"`datasetId`\" pulumi-lang-python=\"`dataset_id`\" pulumi-lang-yaml=\"`datasetId`\" pulumi-lang-java=\"`datasetId`\"\u003e`dataset_id`\u003c/span\u003e are also set,\nor of the form `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}` if not.\n","willReplaceOnChanges":true}},"type":"object","required":["tableId"],"language":{"nodejs":{"requiredOutputs":["datasetId","projectId","tableId"]}}},"gcp:bigquery/JobLoad:JobLoad":{"properties":{"allowJaggedRows":{"type":"boolean","description":"Accept rows that are missing trailing optional columns. The missing values are treated as nulls.\nIf false, records with missing trailing columns are treated as bad records, and if there are too many bad records,\nan invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.\n","willReplaceOnChanges":true},"allowQuotedNewlines":{"type":"boolean","description":"Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file.\nThe default value is false.\n","willReplaceOnChanges":true},"autodetect":{"type":"boolean","description":"Indicates if we should automatically infer the options and schema for CSV and JSON sources.\n","willReplaceOnChanges":true},"createDisposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion\nDefault value is `CREATE_IF_NEEDED`.\nPossible values are: `CREATE_IF_NEEDED`, `CREATE_NEVER`.\n","willReplaceOnChanges":true},"destinationEncryptionConfiguration":{"$ref":"#/types/gcp:bigquery/JobLoadDestinationEncryptionConfiguration:JobLoadDestinationEncryptionConfiguration","description":"Custom encryption configuration (e.g., Cloud KMS keys)\nStructure is documented below.\n","willReplaceOnChanges":true},"destinationTable":{"$ref":"#/types/gcp:bigquery/JobLoadDestinationTable:JobLoadDestinationTable","description":"The destination table to load the data into.\nStructure is documented below.\n","willReplaceOnChanges":true},"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.\nThe default value is UTF-8. BigQuery decodes the data after the raw, binary data\nhas been split using the values of the quote and fieldDelimiter properties.\n","willReplaceOnChanges":true},"fieldDelimiter":{"type":"string","description":"The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character.\nTo use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts\nthe string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the\ndata in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator.\nThe default value is a comma (',').\n","willReplaceOnChanges":true},"ignoreUnknownValues":{"type":"boolean","description":"Indicates if BigQuery should allow extra values that are not represented in the table schema.\nIf true, the extra values are ignored. If false, records with extra columns are treated as bad records,\nand if there are too many bad records, an invalid error is returned in the job result.\nThe default value is false. The sourceFormat property determines what BigQuery treats as an extra value:\nCSV: Trailing columns\nJSON: Named values that don't match any column names\n","willReplaceOnChanges":true},"jsonExtension":{"type":"string","description":"If sourceFormat is set to newline-delimited JSON, indicates whether it should be processed as a JSON variant such as GeoJSON.\nFor a sourceFormat other than JSON, omit this field. If the sourceFormat is newline-delimited JSON: - for newline-delimited\nGeoJSON: set to GEOJSON.\n","willReplaceOnChanges":true},"maxBadRecords":{"type":"integer","description":"The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value,\nan invalid error is returned in the job result. The default value is 0, which requires that all records are valid.\n","willReplaceOnChanges":true},"nullMarker":{"type":"string","description":"Specifies a string that represents a null value in a CSV file. The default value is the empty string. If you set this\nproperty to a custom value, BigQuery throws an error if an\nempty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as\nan empty value.\n","willReplaceOnChanges":true},"parquetOptions":{"$ref":"#/types/gcp:bigquery/JobLoadParquetOptions:JobLoadParquetOptions","description":"Parquet Options for load and make external tables.\nStructure is documented below.\n","willReplaceOnChanges":true},"projectionFields":{"type":"array","items":{"type":"string"},"description":"If sourceFormat is set to \"DATASTORE_BACKUP\", indicates which entity properties to load into BigQuery from a Cloud Datastore backup.\nProperty names are case sensitive and must be top-level properties. If no properties are specified, BigQuery loads all properties.\nIf any named property isn't found in the Cloud Datastore backup, an invalid error is returned in the job result.\n","willReplaceOnChanges":true},"quote":{"type":"string","description":"The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding,\nand then uses the first byte of the encoded string to split the data in its raw, binary state.\nThe default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string.\nIf your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.\n","willReplaceOnChanges":true},"schemaUpdateOptions":{"type":"array","items":{"type":"string"},"description":"Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or\nsupplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND;\nwhen writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators.\nFor normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified:\nALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.\nALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.\n","willReplaceOnChanges":true},"skipLeadingRows":{"type":"integer","description":"The number of rows at the top of a CSV file that BigQuery will skip when loading the data.\nThe default value is 0. This property is useful if you have header rows in the file that should be skipped.\nWhen autodetect is on, the behavior is the following:\nskipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected,\nthe row is read as data. Otherwise data is read starting from the second row.\nskipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row.\nskipLeadingRows = N \u003e 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected,\nrow N is just skipped. Otherwise row N is used to extract column names for the detected schema.\n","willReplaceOnChanges":true},"sourceFormat":{"type":"string","description":"The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\".\nFor newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro, specify \"AVRO\". For parquet, specify \"PARQUET\".\nFor orc, specify \"ORC\". [Beta] For Bigtable, specify \"BIGTABLE\".\nThe default value is CSV.\n","willReplaceOnChanges":true},"sourceUris":{"type":"array","items":{"type":"string"},"description":"The fully-qualified URIs that point to your data in Google Cloud.\nFor Google Cloud Storage URIs: Each URI can contain one '\\*' wildcard character\nand it must come after the 'bucket' name. Size limits related to load jobs apply\nto external data sources. For Google Cloud Bigtable URIs: Exactly one URI can be\nspecified and it has be a fully specified and valid HTTPS URL for a Google Cloud Bigtable table.\nFor Google Cloud Datastore backups: Exactly one URI can be specified. Also, the '\\*' wildcard character is not allowed.\n","willReplaceOnChanges":true},"timePartitioning":{"$ref":"#/types/gcp:bigquery/JobLoadTimePartitioning:JobLoadTimePartitioning","description":"Time-based partitioning specification for the destination table.\nStructure is documented below.\n","willReplaceOnChanges":true},"writeDisposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion.\nDefault value is `WRITE_EMPTY`.\nPossible values are: `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.\n","willReplaceOnChanges":true}},"type":"object","required":["destinationTable","sourceUris"],"language":{"nodejs":{"requiredOutputs":["destinationTable","fieldDelimiter","quote","sourceUris"]}}},"gcp:bigquery/JobLoadDestinationEncryptionConfiguration:JobLoadDestinationEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.\n","willReplaceOnChanges":true},"kmsKeyVersion":{"type":"string","description":"(Output)\nDescribes the Cloud KMS encryption key version used to protect destination BigQuery table.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredOutputs":["kmsKeyName","kmsKeyVersion"]}}},"gcp:bigquery/JobLoadDestinationTable:JobLoadDestinationTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"tableId":{"type":"string","description":"The table. Can be specified `{{table_id}}` if \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`datasetId`\" pulumi-lang-dotnet=\"`DatasetId`\" pulumi-lang-go=\"`datasetId`\" pulumi-lang-python=\"`dataset_id`\" pulumi-lang-yaml=\"`datasetId`\" pulumi-lang-java=\"`datasetId`\"\u003e`dataset_id`\u003c/span\u003e are also set,\nor of the form `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}` if not.\n","willReplaceOnChanges":true}},"type":"object","required":["tableId"],"language":{"nodejs":{"requiredOutputs":["datasetId","projectId","tableId"]}}},"gcp:bigquery/JobLoadParquetOptions:JobLoadParquetOptions":{"properties":{"enableListInference":{"type":"boolean","description":"If sourceFormat is set to PARQUET, indicates whether to use schema inference specifically for Parquet LIST logical type.\n","willReplaceOnChanges":true},"enumAsString":{"type":"boolean","description":"If sourceFormat is set to PARQUET, indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:bigquery/JobLoadTimePartitioning:JobLoadTimePartitioning":{"properties":{"expirationMs":{"type":"string","description":"Number of milliseconds for which to keep the storage for a partition. A wrapper is used here because 0 is an invalid value.\n","willReplaceOnChanges":true},"field":{"type":"string","description":"If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is partitioned by this field.\nThe field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED.\nA wrapper is used here because an empty string is an invalid value.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The only type supported is DAY, which will generate one partition per day. Providing an empty string used to cause an error,\nbut in OnePlatform the field will be treated as unset.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:bigquery/JobQuery:JobQuery":{"properties":{"allowLargeResults":{"type":"boolean","description":"If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance.\nRequires destinationTable to be set. For standard SQL queries, this flag is ignored and large results are always allowed.\nHowever, you must still set destinationTable when result size exceeds the allowed maximum response size.\n","willReplaceOnChanges":true},"connectionProperties":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/JobQueryConnectionProperty:JobQueryConnectionProperty"},"description":"Connection properties to customize query behavior. Under JDBC, these correspond\ndirectly to connection properties passed to the DriverManager. Under ODBC, these\ncorrespond to properties in the connection string.\nStructure is documented below.\n","willReplaceOnChanges":true},"continuous":{"type":"boolean","description":"(Optional, Beta)\nWhether to run the query as continuous or a regular query.\n","willReplaceOnChanges":true},"createDisposition":{"type":"string","description":"Specifies whether the job is allowed to create new tables. The following values are supported:\nCREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table.\nCREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result.\nCreation, truncation and append actions occur as one atomic update upon job completion\nDefault value is `CREATE_IF_NEEDED`.\nPossible values are: `CREATE_IF_NEEDED`, `CREATE_NEVER`.\n","willReplaceOnChanges":true},"defaultDataset":{"$ref":"#/types/gcp:bigquery/JobQueryDefaultDataset:JobQueryDefaultDataset","description":"Specifies the default dataset to use for unqualified table names in the query. Note that this does not alter behavior of unqualified dataset names.\nStructure is documented below.\n","willReplaceOnChanges":true},"destinationEncryptionConfiguration":{"$ref":"#/types/gcp:bigquery/JobQueryDestinationEncryptionConfiguration:JobQueryDestinationEncryptionConfiguration","description":"Custom encryption configuration (e.g., Cloud KMS keys)\nStructure is documented below.\n","willReplaceOnChanges":true},"destinationTable":{"$ref":"#/types/gcp:bigquery/JobQueryDestinationTable:JobQueryDestinationTable","description":"Describes the table where the query results should be stored.\nThis property must be set for large results that exceed the maximum response size.\nFor queries that produce anonymous (cached) results, this field will be populated by BigQuery.\nStructure is documented below.\n","willReplaceOnChanges":true},"flattenResults":{"type":"boolean","description":"If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results.\nallowLargeResults must be true if this is set to false. For standard SQL queries, this flag is ignored and results are never flattened.\n","willReplaceOnChanges":true},"maximumBillingTier":{"type":"integer","description":"Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge).\nIf unspecified, this will be set to your project default.\n","willReplaceOnChanges":true},"maximumBytesBilled":{"type":"string","description":"Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge).\nIf unspecified, this will be set to your project default.\n","willReplaceOnChanges":true},"parameterMode":{"type":"string","description":"Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.\n","willReplaceOnChanges":true},"priority":{"type":"string","description":"Specifies a priority for the query.\nDefault value is `INTERACTIVE`.\nPossible values are: `INTERACTIVE`, `BATCH`.\n","willReplaceOnChanges":true},"query":{"type":"string","description":"SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or standard SQL.\n*NOTE*: queries containing [DML language](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language)\n(`DELETE`, `UPDATE`, `MERGE`, `INSERT`) must specify \u003cspan pulumi-lang-nodejs=\"`createDisposition \" pulumi-lang-dotnet=\"`CreateDisposition \" pulumi-lang-go=\"`createDisposition \" pulumi-lang-python=\"`create_disposition \" pulumi-lang-yaml=\"`createDisposition \" pulumi-lang-java=\"`createDisposition \"\u003e`create_disposition \u003c/span\u003e= \"\"` and \u003cspan pulumi-lang-nodejs=\"`writeDisposition \" pulumi-lang-dotnet=\"`WriteDisposition \" pulumi-lang-go=\"`writeDisposition \" pulumi-lang-python=\"`write_disposition \" pulumi-lang-yaml=\"`writeDisposition \" pulumi-lang-java=\"`writeDisposition \"\u003e`write_disposition \u003c/span\u003e= \"\"`.\n","willReplaceOnChanges":true},"schemaUpdateOptions":{"type":"array","items":{"type":"string"},"description":"Allows the schema of the destination table to be updated as a side effect of the query job.\nSchema update options are supported in two cases: when writeDisposition is WRITE_APPEND;\nwhen writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table,\nspecified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema.\nOne or more of the following values are specified:\nALLOW_FIELD_ADDITION: allow adding a nullable field to the schema.\nALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.\n","willReplaceOnChanges":true},"scriptOptions":{"$ref":"#/types/gcp:bigquery/JobQueryScriptOptions:JobQueryScriptOptions","description":"Options controlling the execution of scripts.\nStructure is documented below.\n","willReplaceOnChanges":true},"useLegacySql":{"type":"boolean","description":"Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true.\nIf set to false, the query will use BigQuery's standard SQL.\n","willReplaceOnChanges":true},"useQueryCache":{"type":"boolean","description":"Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever\ntables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified.\nThe default value is true.\n","willReplaceOnChanges":true},"userDefinedFunctionResources":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/JobQueryUserDefinedFunctionResource:JobQueryUserDefinedFunctionResource"},"description":"Describes user-defined function resources used in the query.\nStructure is documented below.\n","willReplaceOnChanges":true},"writeDisposition":{"type":"string","description":"Specifies the action that occurs if the destination table already exists. The following values are supported:\nWRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result.\nWRITE_APPEND: If the table already exists, BigQuery appends the data to the table.\nWRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result.\nEach action is atomic and only occurs if BigQuery is able to complete the job successfully.\nCreation, truncation and append actions occur as one atomic update upon job completion.\nDefault value is `WRITE_EMPTY`.\nPossible values are: `WRITE_TRUNCATE`, `WRITE_APPEND`, `WRITE_EMPTY`.\n","willReplaceOnChanges":true}},"type":"object","required":["query"],"language":{"nodejs":{"requiredOutputs":["destinationTable","query"]}}},"gcp:bigquery/JobQueryConnectionProperty:JobQueryConnectionProperty":{"properties":{"key":{"type":"string","description":"The key of the property to set. Currently supported connection properties:\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of the property to set.\n","willReplaceOnChanges":true}},"type":"object","required":["key","value"]},"gcp:bigquery/JobQueryDefaultDataset:JobQueryDefaultDataset":{"properties":{"datasetId":{"type":"string","description":"The dataset. Can be specified `{{dataset_id}}` if \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e is also set,\nor of the form `projects/{{project}}/datasets/{{dataset_id}}` if not.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId"],"language":{"nodejs":{"requiredOutputs":["datasetId","projectId"]}}},"gcp:bigquery/JobQueryDestinationEncryptionConfiguration:JobQueryDestinationEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery table.\nThe BigQuery Service Account associated with your project requires access to this encryption key.\n","willReplaceOnChanges":true},"kmsKeyVersion":{"type":"string","description":"(Output)\nDescribes the Cloud KMS encryption key version used to protect destination BigQuery table.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredOutputs":["kmsKeyName","kmsKeyVersion"]}}},"gcp:bigquery/JobQueryDestinationTable:JobQueryDestinationTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this table.\n","willReplaceOnChanges":true},"tableId":{"type":"string","description":"The table. Can be specified `{{table_id}}` if \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`datasetId`\" pulumi-lang-dotnet=\"`DatasetId`\" pulumi-lang-go=\"`datasetId`\" pulumi-lang-python=\"`dataset_id`\" pulumi-lang-yaml=\"`datasetId`\" pulumi-lang-java=\"`datasetId`\"\u003e`dataset_id`\u003c/span\u003e are also set,\nor of the form `projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}` if not.\n","willReplaceOnChanges":true}},"type":"object","required":["tableId"],"language":{"nodejs":{"requiredOutputs":["datasetId","projectId","tableId"]}}},"gcp:bigquery/JobQueryScriptOptions:JobQueryScriptOptions":{"properties":{"keyResultStatement":{"type":"string","description":"Determines which statement in the script represents the \"key result\",\nused to populate the schema and query results of the script job.\nPossible values are: `LAST`, `FIRST_SELECT`.\n","willReplaceOnChanges":true},"statementByteBudget":{"type":"string","description":"Limit on the number of bytes billed per statement. Exceeding this budget results in an error.\n","willReplaceOnChanges":true},"statementTimeoutMs":{"type":"string","description":"Timeout period for each statement in a script.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:bigquery/JobQueryUserDefinedFunctionResource:JobQueryUserDefinedFunctionResource":{"properties":{"inlineCode":{"type":"string","description":"An inline resource that contains code for a user-defined function (UDF).\nProviding a inline code resource is equivalent to providing a URI for a file containing the same code.\n","willReplaceOnChanges":true},"resourceUri":{"type":"string","description":"A code resource to load from a Google Cloud Storage URI (gs://bucket/path).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:bigquery/JobStatus:JobStatus":{"properties":{"errorResults":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/JobStatusErrorResult:JobStatusErrorResult"},"description":"(Output)\nFinal error result of the job. If present, indicates that the job has completed and was unsuccessful.\nStructure is documented below.\n"},"errors":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/JobStatusError:JobStatusError"},"description":"(Output)\nThe first errors encountered during the running of the job. The final message\nincludes the number of errors that caused the process to stop. Errors here do\nnot necessarily mean that the job has not completed or was unsuccessful.\nStructure is documented below.\n"},"state":{"type":"string","description":"(Output)\nRunning state of the job. Valid states include 'PENDING', 'RUNNING', and 'DONE'.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorResults","errors","state"]}}},"gcp:bigquery/JobStatusError:JobStatusError":{"properties":{"location":{"type":"string","description":"The geographic location of the job. The default value is US.\n"},"message":{"type":"string","description":"A human-readable description of the error.\n"},"reason":{"type":"string","description":"A short error code that summarizes the error.\n"}},"type":"object"},"gcp:bigquery/JobStatusErrorResult:JobStatusErrorResult":{"properties":{"location":{"type":"string","description":"The geographic location of the job. The default value is US.\n"},"message":{"type":"string","description":"A human-readable description of the error.\n"},"reason":{"type":"string","description":"A short error code that summarizes the error.\n"}},"type":"object"},"gcp:bigquery/ReservationAutoscale:ReservationAutoscale":{"properties":{"currentSlots":{"type":"integer","description":"(Output)\nThe slot capacity added to this reservation when autoscale happens. Will be between [0,\u003cspan pulumi-lang-nodejs=\" maxSlots]\" pulumi-lang-dotnet=\" MaxSlots]\" pulumi-lang-go=\" maxSlots]\" pulumi-lang-python=\" max_slots]\" pulumi-lang-yaml=\" maxSlots]\" pulumi-lang-java=\" maxSlots]\"\u003e max_slots]\u003c/span\u003e.\n"},"maxSlots":{"type":"integer","description":"Number of slots to be scaled when needed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currentSlots"]}}},"gcp:bigquery/ReservationReplicationStatus:ReservationReplicationStatus":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/ReservationReplicationStatusError:ReservationReplicationStatusError"},"description":"(Output)\nThe last error encountered while trying to replicate changes from the primary to the\nsecondary. This field is only available if the replication has not succeeded since.\nStructure is documented below.\n"},"lastErrorTime":{"type":"string","description":"(Output)\nThe time at which the last error was encountered while trying to replicate changes from\nthe primary to the secondary. This field is only available if the replication has not\nsucceeded since.\n"},"lastReplicationTime":{"type":"string","description":"(Output)\nA timestamp corresponding to the last change on the primary that was successfully\nreplicated to the secondary.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors","lastErrorTime","lastReplicationTime"]}}},"gcp:bigquery/ReservationReplicationStatusError:ReservationReplicationStatusError":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of [google.rpc.Code](https://cloud.google.com/bigquery/docs/reference/reservations/rpc/google.rpc#google.rpc.Code).\n"},"message":{"type":"string","description":"(Output)\nA developer-facing error message, which should be in English.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"gcp:bigquery/RoutineArgument:RoutineArgument":{"properties":{"argumentKind":{"type":"string","description":"Defaults to FIXED_TYPE.\nDefault value is `FIXED_TYPE`.\nPossible values are: `FIXED_TYPE`, `ANY_TYPE`.\n"},"dataType":{"type":"string","description":"A JSON schema for the data type. Required unless argumentKind = ANY_TYPE.\n~\u003e**NOTE**: Because this field expects a JSON string, any changes to the string\nwill create a diff, even if the JSON itself hasn't changed. If the API returns\na different value for the same schema, e.g. it switched the order of values\nor replaced STRUCT field type with RECORD field type, we currently cannot\nsuppress the recurring diff this causes. As a workaround, we recommend using\nthe schema as returned by the API.\n"},"mode":{"type":"string","description":"Specifies whether the argument is input or output. Can be set for procedures only.\nPossible values are: `IN`, `OUT`, `INOUT`.\n"},"name":{"type":"string","description":"The name of this argument. Can be absent for function return argument.\n"}},"type":"object"},"gcp:bigquery/RoutineExternalRuntimeOptions:RoutineExternalRuntimeOptions":{"properties":{"containerCpu":{"type":"number","description":"Amount of CPU provisioned for a Python UDF container instance. For more\ninformation, see [Configure container limits for Python\nUDFs](https://cloud.google.com/bigquery/docs/user-defined-functions-python#configure-container-limits)\n"},"containerMemory":{"type":"string","description":"Amount of memory provisioned for a Python UDF container instance. Format:\n{number}{unit} where unit is one of \"M\", \"G\", \"Mi\" and \"Gi\" (e.g. 1G,\n512Mi). If not specified, the default value is 512Mi. For more information,\nsee [Configure container limits for Python\nUDFs](https://cloud.google.com/bigquery/docs/user-defined-functions-python#configure-container-limits)\n"},"maxBatchingRows":{"type":"string","description":"Maximum number of rows in each batch sent to the external runtime. If\nabsent or if 0, BigQuery dynamically decides the number of rows in a batch.\n"},"runtimeConnection":{"type":"string","description":"Fully qualified name of the connection whose service account will be used\nto execute the code in the container. Format:\n`\"projects/{project_id}/locations/{location_id}/connections/{connection_id}\"`\n"},"runtimeVersion":{"type":"string","description":"Language runtime version. Example: `python-3.11`.\n"}},"type":"object"},"gcp:bigquery/RoutinePythonOptions:RoutinePythonOptions":{"properties":{"entryPoint":{"type":"string","description":"The name of the function defined in Python code as the entry point when the\nPython UDF is invoked.\n"},"packages":{"type":"array","items":{"type":"string"},"description":"A list of Python package names along with versions to be installed.\nExample: [\"pandas\u003e=2.1\", \"google-cloud-translate==3.11\"]. For more\ninformation, see [Use third-party\npackages](https://cloud.google.com/bigquery/docs/user-defined-functions-python#third-party-packages).\n"}},"type":"object","required":["entryPoint"]},"gcp:bigquery/RoutineRemoteFunctionOptions:RoutineRemoteFunctionOptions":{"properties":{"connection":{"type":"string","description":"Fully qualified name of the user-provided connection object which holds\nthe authentication information to send requests to the remote service.\nFormat: \"projects/{projectId}/locations/{locationId}/connections/{connectionId}\"\n"},"endpoint":{"type":"string","description":"Endpoint of the user-provided remote service, e.g.\n`https://us-east1-my_gcf_project.cloudfunctions.net/remote_add`\n"},"maxBatchingRows":{"type":"string","description":"Max number of rows in each batch sent to the remote service. If absent or if 0,\nBigQuery dynamically decides the number of rows in a batch.\n"},"userDefinedContext":{"type":"object","additionalProperties":{"type":"string"},"description":"User-defined context as a set of key/value pairs, which will be sent as function\ninvocation context together with batched arguments in the requests to the remote\nservice. The total number of bytes of keys and values must be less than 8KB.\nAn object containing a list of \"key\": value pairs. Example:\n`{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["userDefinedContext"]}}},"gcp:bigquery/RoutineSparkOptions:RoutineSparkOptions":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"Archive files to be extracted into the working directory of each executor. For more information about Apache Spark, see Apache Spark.\n"},"connection":{"type":"string","description":"Fully qualified name of the user-provided Spark connection object.\nFormat: \"projects/{projectId}/locations/{locationId}/connections/{connectionId}\"\n"},"containerImage":{"type":"string","description":"Custom container image for the runtime environment.\n"},"fileUris":{"type":"array","items":{"type":"string"},"description":"Files to be placed in the working directory of each executor. For more information about Apache Spark, see Apache Spark.\n"},"jarUris":{"type":"array","items":{"type":"string"},"description":"JARs to include on the driver and executor CLASSPATH. For more information about Apache Spark, see Apache Spark.\n"},"mainClass":{"type":"string","description":"The fully qualified name of a class in jarUris, for example, com.example.wordcount.\nExactly one of mainClass and\u003cspan pulumi-lang-nodejs=\" mainJarUri \" pulumi-lang-dotnet=\" MainJarUri \" pulumi-lang-go=\" mainJarUri \" pulumi-lang-python=\" main_jar_uri \" pulumi-lang-yaml=\" mainJarUri \" pulumi-lang-java=\" mainJarUri \"\u003e main_jar_uri \u003c/span\u003efield should be set for Java/Scala language type.\n"},"mainFileUri":{"type":"string","description":"The main file/jar URI of the Spark application.\nExactly one of the definitionBody field and the mainFileUri field must be set for Python.\nExactly one of mainClass and mainFileUri field should be set for Java/Scala language type.\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Configuration properties as a set of key/value pairs, which will be passed on to the Spark application.\nFor more information, see Apache Spark and the procedure option list.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n"},"pyFileUris":{"type":"array","items":{"type":"string"},"description":"Python files to be placed on the PYTHONPATH for PySpark application. Supported file types: .py, .egg, and .zip. For more information about Apache Spark, see Apache Spark.\n"},"runtimeVersion":{"type":"string","description":"Runtime version. If not specified, the default runtime version is used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["archiveUris","fileUris","jarUris","properties","pyFileUris"]}}},"gcp:bigquery/TableBiglakeConfiguration:TableBiglakeConfiguration":{"properties":{"connectionId":{"type":"string","description":"The connection specifying the credentials to be used to\nread and write to external storage, such as Cloud Storage. The\u003cspan pulumi-lang-nodejs=\" connectionId \" pulumi-lang-dotnet=\" ConnectionId \" pulumi-lang-go=\" connectionId \" pulumi-lang-python=\" connection_id \" pulumi-lang-yaml=\" connectionId \" pulumi-lang-java=\" connectionId \"\u003e connection_id \u003c/span\u003ecan\nhave the form \"\u0026lt;project\\_id\u0026gt;.\u0026lt;location\\_id\u0026gt;.\u0026lt;connection\\_id\u0026gt;\" or\nprojects/\u0026lt;project\\_id\u0026gt;/locations/\u0026lt;location\\_id\u0026gt;/connections/\u0026lt;connection\\_id\u0026gt;\".\n","willReplaceOnChanges":true},"fileFormat":{"type":"string","description":"The file format the table data is stored in.\n","willReplaceOnChanges":true},"storageUri":{"type":"string","description":"The fully qualified location prefix of the external folder where table data\nis stored. The '*' wildcard character is not allowed. The URI should be in the format \"gs://bucket/path_to_table/\"\n","willReplaceOnChanges":true},"tableFormat":{"type":"string","description":"The table format the metadata only snapshots are stored in.\n","willReplaceOnChanges":true}},"type":"object","required":["connectionId","fileFormat","storageUri","tableFormat"]},"gcp:bigquery/TableEncryptionConfiguration:TableEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"The self link or full name of a key which should be used to\nencrypt this table.  Note that the default bigquery service account will need to have\nencrypt/decrypt permissions on this key - you may want to see the\n\u003cspan pulumi-lang-nodejs=\"`gcp.bigquery.getDefaultServiceAccount`\" pulumi-lang-dotnet=\"`gcp.bigquery.getDefaultServiceAccount`\" pulumi-lang-go=\"`bigquery.getDefaultServiceAccount`\" pulumi-lang-python=\"`bigquery_get_default_service_account`\" pulumi-lang-yaml=\"`gcp.bigquery.getDefaultServiceAccount`\" pulumi-lang-java=\"`gcp.bigquery.getDefaultServiceAccount`\"\u003e`gcp.bigquery.getDefaultServiceAccount`\u003c/span\u003e datasource and the\n\u003cspan pulumi-lang-nodejs=\"`gcp.kms.CryptoKeyIAMBinding`\" pulumi-lang-dotnet=\"`gcp.kms.CryptoKeyIAMBinding`\" pulumi-lang-go=\"`kms.CryptoKeyIAMBinding`\" pulumi-lang-python=\"`kms.CryptoKeyIAMBinding`\" pulumi-lang-yaml=\"`gcp.kms.CryptoKeyIAMBinding`\" pulumi-lang-java=\"`gcp.kms.CryptoKeyIAMBinding`\"\u003e`gcp.kms.CryptoKeyIAMBinding`\u003c/span\u003e resource.\n"},"kmsKeyVersion":{"type":"string","description":"The self link or full name of the kms key version used to encrypt this table.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredOutputs":["kmsKeyName","kmsKeyVersion"]}}},"gcp:bigquery/TableExternalCatalogTableOptions:TableExternalCatalogTableOptions":{"properties":{"connectionId":{"type":"string","description":"The connection specifying the credentials to be\nused to read external storage, such as Azure Blob, Cloud Storage, or S3. The\nconnection is needed to read the open source table from BigQuery Engine. The\u003cspan pulumi-lang-nodejs=\"\nconnectionId \" pulumi-lang-dotnet=\"\nConnectionId \" pulumi-lang-go=\"\nconnectionId \" pulumi-lang-python=\"\nconnection_id \" pulumi-lang-yaml=\"\nconnectionId \" pulumi-lang-java=\"\nconnectionId \"\u003e\nconnection_id \u003c/span\u003ecan have the form `\u003cproject_id\u003e.\u003clocation_id\u003e.\u003cconnection_id\u003e`\nor `projects/\u003cproject_id\u003e/locations/\u003clocation_id\u003e/connections/\u003cconnection_id\u003e`.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of key value pairs defining the parameters and\nproperties of the open source table. Corresponds with hive meta store table\nparameters. Maximum size of 4Mib.\n"},"storageDescriptor":{"$ref":"#/types/gcp:bigquery/TableExternalCatalogTableOptionsStorageDescriptor:TableExternalCatalogTableOptionsStorageDescriptor","description":"A storage descriptor containing information\nabout the physical storage of this table. Structure is documented below.\n"}},"type":"object"},"gcp:bigquery/TableExternalCatalogTableOptionsStorageDescriptor:TableExternalCatalogTableOptionsStorageDescriptor":{"properties":{"inputFormat":{"type":"string","description":"Specifies the fully qualified class name of the\nInputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcInputFormat\"). The\nmaximum length is 128 characters.\n"},"locationUri":{"type":"string","description":"The physical location of the table (e.g.\n'gs://spark-dataproc-data/pangea-data/case_sensitive/' or\n'gs://spark-dataproc-data/pangea-data/*'). The maximum length is 2056 bytes.\n"},"outputFormat":{"type":"string","description":"Specifies the fully qualified class name of the\nOutputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat\"). The\nmaximum length is 128 characters.\n"},"serdeInfo":{"$ref":"#/types/gcp:bigquery/TableExternalCatalogTableOptionsStorageDescriptorSerdeInfo:TableExternalCatalogTableOptionsStorageDescriptorSerdeInfo","description":"Serializer and deserializer information. Structure\nis documented below.\n"}},"type":"object"},"gcp:bigquery/TableExternalCatalogTableOptionsStorageDescriptorSerdeInfo:TableExternalCatalogTableOptionsStorageDescriptorSerdeInfo":{"properties":{"name":{"type":"string","description":"Name of the SerDe. The maximum length is 256 characters.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs that define the initialization\nparameters for the serialization library. Maximum size 10 Kib.\n"},"serializationLibrary":{"type":"string","description":"Specifies a fully-qualified class name of\nthe serialization library that is responsible for the translation of data\nbetween table representation and the underlying low-level input and output\nformat structures. The maximum length is 256 characters.\n"}},"type":"object","required":["serializationLibrary"]},"gcp:bigquery/TableExternalDataConfiguration:TableExternalDataConfiguration":{"properties":{"autodetect":{"type":"boolean","description":"Let BigQuery try to autodetect the schema\nand format of the table.\n"},"avroOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationAvroOptions:TableExternalDataConfigurationAvroOptions","description":"Additional options if \u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e is set to\n\"AVRO\".  Structure is documented below.\n"},"bigtableOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationBigtableOptions:TableExternalDataConfigurationBigtableOptions","description":"Additional properties to set if\n\u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e is set to \"BIGTABLE\". Structure is documented below.\n"},"compression":{"type":"string","description":"The compression type of the data source.\nValid values are \"NONE\" or \"GZIP\".\n"},"connectionId":{"type":"string","description":"The connection specifying the credentials to be used to read\nexternal storage, such as Azure Blob, Cloud Storage, or S3. The \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e can have\nthe form `{{project}}.{{location}}.{{connection_id}}`\nor `projects/{{project}}/locations/{{location}}/connections/{{connection_id}}`.\n\n~\u003e**NOTE:** If you set `external_data_configuration.connection_id`, the\ntable schema must be specified using the top-level \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e field\ndocumented above.\n"},"csvOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationCsvOptions:TableExternalDataConfigurationCsvOptions","description":"Additional properties to set if\n\u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e is set to \"CSV\". Structure is documented below.\n"},"decimalTargetTypes":{"type":"array","items":{"type":"string"},"description":"Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown.\n\nExample: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is:\n\n(38,9) \u003e NUMERIC;\n(39,9) \u003e BIGNUMERIC (NUMERIC cannot hold 30 integer digits);\n(38,10) \u003e BIGNUMERIC (NUMERIC cannot hold 10 fractional digits);\n(76,38) \u003e BIGNUMERIC;\n(77,38) \u003e BIGNUMERIC (error if value exceeds supported range).\n\nThis field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC.\n\nDefaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.\n"},"fileSetSpecType":{"type":"string","description":"Specifies how source URIs are interpreted for constructing the file set to load.\nBy default source URIs are expanded against the underlying storage.\nOther options include specifying manifest files. Only applicable to object storage systems. Docs\n"},"googleSheetsOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationGoogleSheetsOptions:TableExternalDataConfigurationGoogleSheetsOptions","description":"Additional options if\n\u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e is set to \"GOOGLE_SHEETS\". Structure is\ndocumented below.\n"},"hivePartitioningOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationHivePartitioningOptions:TableExternalDataConfigurationHivePartitioningOptions","description":"When set, configures hive partitioning\nsupport. Not all storage formats support hive partitioning -- requesting hive\npartitioning on an unsupported format will lead to an error, as will providing\nan invalid specification. Structure is documented below.\n"},"ignoreUnknownValues":{"type":"boolean","description":"Indicates if BigQuery should\nallow extra values that are not represented in the table schema.\nIf true, the extra values are ignored. If false, records with\nextra columns are treated as bad records, and if there are too\nmany bad records, an invalid error is returned in the job result.\nThe default value is false.\n"},"jsonExtension":{"type":"string","description":"Used to indicate that a JSON variant, rather than normal JSON, is being used as the sourceFormat. This should only be used in combination with the `JSON` source format. Valid values are: `GEOJSON`.\n"},"jsonOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationJsonOptions:TableExternalDataConfigurationJsonOptions","description":"Additional properties to set if\n\u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e is set to \"JSON\". Structure is documented below.\n"},"maxBadRecords":{"type":"integer","description":"The maximum number of bad records that\nBigQuery can ignore when reading data.\n"},"metadataCacheMode":{"type":"string","description":"Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source. Valid values are `AUTOMATIC` and `MANUAL`.\n"},"objectMetadata":{"type":"string","description":"Object Metadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the sourceUris. If \u003cspan pulumi-lang-nodejs=\"`objectMetadata`\" pulumi-lang-dotnet=\"`ObjectMetadata`\" pulumi-lang-go=\"`objectMetadata`\" pulumi-lang-python=\"`object_metadata`\" pulumi-lang-yaml=\"`objectMetadata`\" pulumi-lang-java=\"`objectMetadata`\"\u003e`object_metadata`\u003c/span\u003e is set, \u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e should be omitted.\n"},"parquetOptions":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationParquetOptions:TableExternalDataConfigurationParquetOptions","description":"Additional properties to set if\n\u003cspan pulumi-lang-nodejs=\"`sourceFormat`\" pulumi-lang-dotnet=\"`SourceFormat`\" pulumi-lang-go=\"`sourceFormat`\" pulumi-lang-python=\"`source_format`\" pulumi-lang-yaml=\"`sourceFormat`\" pulumi-lang-java=\"`sourceFormat`\"\u003e`source_format`\u003c/span\u003e is set to \"PARQUET\". Structure is documented below.\n"},"referenceFileSchemaUri":{"type":"string","description":"When creating an external table, the user can provide a reference file with the table schema. This is enabled for the following formats: AVRO, PARQUET, ORC.\n"},"schema":{"type":"string","description":"A JSON schema for the external table. Schema is required\nfor CSV and JSON formats if autodetect is not on. Schema is disallowed\nfor Google Cloud Bigtable, Cloud Datastore backups, Avro, Iceberg, ORC and Parquet formats.\n~\u003e**NOTE:** Because this field expects a JSON string, any changes to the\nstring will create a diff, even if the JSON itself hasn't changed.\nFurthermore drift for this field cannot not be detected because BigQuery\nonly uses this schema to compute the effective schema for the table, therefore\nany changes on the configured value will force the table to be recreated.\nThis schema is effectively only applied when creating a table from an external\ndatasource, after creation the computed schema will be stored in\n`google_bigquery_table.schema`\n\n~\u003e**NOTE:** If you set `external_data_configuration.connection_id`, the\ntable schema must be specified using the top-level \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e field\ndocumented above.\n","willReplaceOnChanges":true},"sourceFormat":{"type":"string","description":"The data format. Please see sourceFormat under\n[ExternalDataConfiguration](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#externaldataconfiguration)\nin Bigquery's public API documentation for supported formats. To use \"GOOGLE_SHEETS\"\nthe \u003cspan pulumi-lang-nodejs=\"`scopes`\" pulumi-lang-dotnet=\"`Scopes`\" pulumi-lang-go=\"`scopes`\" pulumi-lang-python=\"`scopes`\" pulumi-lang-yaml=\"`scopes`\" pulumi-lang-java=\"`scopes`\"\u003e`scopes`\u003c/span\u003e must include \"https://www.googleapis.com/auth/drive.readonly\".\n"},"sourceUris":{"type":"array","items":{"type":"string"},"description":"A list of the fully-qualified URIs that point to\nyour data in Google Cloud.\n"}},"type":"object","required":["autodetect","sourceUris"],"language":{"nodejs":{"requiredOutputs":["autodetect","schema","sourceUris"]}}},"gcp:bigquery/TableExternalDataConfigurationAvroOptions:TableExternalDataConfigurationAvroOptions":{"properties":{"useAvroLogicalTypes":{"type":"boolean","description":"If is set to true, indicates whether\nto interpret logical types as the corresponding BigQuery data type\n(for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).\n"}},"type":"object","required":["useAvroLogicalTypes"]},"gcp:bigquery/TableExternalDataConfigurationBigtableOptions:TableExternalDataConfigurationBigtableOptions":{"properties":{"columnFamilies":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationBigtableOptionsColumnFamily:TableExternalDataConfigurationBigtableOptionsColumnFamily"},"description":"A list of column families to expose in the table schema along with their types. This list restricts the column families that can be referenced in queries and specifies their value types. You can use this list to do type conversions - see the 'type' field for more details. If you leave this list empty, all column families are present in the table schema and their values are read as BYTES. During a query only the column families referenced in that query are read from Bigtable.  Structure is documented below.\n"},"ignoreUnspecifiedColumnFamilies":{"type":"boolean","description":"If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false.\n"},"outputColumnFamiliesAsJson":{"type":"boolean","description":"If field is true, then each column family will be read as a single JSON column. Otherwise they are read as a repeated cell structure containing timestamp/value tuples. The default value is false.\n"},"readRowkeyAsString":{"type":"boolean","description":"If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false.\n"}},"type":"object"},"gcp:bigquery/TableExternalDataConfigurationBigtableOptionsColumnFamily:TableExternalDataConfigurationBigtableOptionsColumnFamily":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/TableExternalDataConfigurationBigtableOptionsColumnFamilyColumn:TableExternalDataConfigurationBigtableOptionsColumnFamilyColumn"},"description":"A List of columns that should be exposed as individual fields as opposed to a list of (column name, value) pairs. All columns whose qualifier matches a qualifier in this list can be accessed as Other columns can be accessed as a list through column field.  Structure is documented below.\n"},"encoding":{"type":"string","description":"The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it.\n"},"familyId":{"type":"string","description":"Identifier of the column family.\n"},"onlyReadLatest":{"type":"boolean","description":"If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column.\n"},"type":{"type":"string","description":"The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): \"BYTES\", \"STRING\", \"INTEGER\", \"FLOAT\", \"BOOLEAN\", \"JSON\". Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it.\n"}},"type":"object"},"gcp:bigquery/TableExternalDataConfigurationBigtableOptionsColumnFamilyColumn:TableExternalDataConfigurationBigtableOptionsColumnFamilyColumn":{"properties":{"encoding":{"type":"string","description":"The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels.\n"},"fieldName":{"type":"string","description":"If the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as the column field name and is used as field name in queries.\n"},"onlyReadLatest":{"type":"boolean","description":"If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels.\n"},"qualifierEncoded":{"type":"string","description":"Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as . field. If the qualifier is valid UTF-8 string, it can be specified in the qualifierString field. Otherwise, a base-64 encoded value must be set to qualifierEncoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as fieldName.\n"},"qualifierString":{"type":"string","description":"Qualifier string.\n"},"type":{"type":"string","description":"The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): \"BYTES\", \"STRING\", \"INTEGER\", \"FLOAT\", \"BOOLEAN\", \"JSON\", Default type is \"BYTES\". 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels.\n"}},"type":"object"},"gcp:bigquery/TableExternalDataConfigurationCsvOptions:TableExternalDataConfigurationCsvOptions":{"properties":{"allowJaggedRows":{"type":"boolean","description":"Indicates if BigQuery should accept rows\nthat are missing trailing optional columns.\n"},"allowQuotedNewlines":{"type":"boolean","description":"Indicates if BigQuery should allow\nquoted data sections that contain newline characters in a CSV file.\nThe default value is false.\n"},"encoding":{"type":"string","description":"The character encoding of the data. The supported\nvalues are UTF-8 or ISO-8859-1.\n"},"fieldDelimiter":{"type":"string","description":"The separator for fields in a CSV file.\n"},"quote":{"type":"string","description":"The value that is used to quote data sections in a\nCSV file. If your data does not contain quoted sections, set the\nproperty value to an empty string. If your data contains quoted newline\ncharacters, you must also set the \u003cspan pulumi-lang-nodejs=\"`allowQuotedNewlines`\" pulumi-lang-dotnet=\"`AllowQuotedNewlines`\" pulumi-lang-go=\"`allowQuotedNewlines`\" pulumi-lang-python=\"`allow_quoted_newlines`\" pulumi-lang-yaml=\"`allowQuotedNewlines`\" pulumi-lang-java=\"`allowQuotedNewlines`\"\u003e`allow_quoted_newlines`\u003c/span\u003e property to true.\nThe API-side default is `\"`, specified in the provider escaped as `\\\"`. Due to\nlimitations with default values, this value is required to be\nexplicitly set.\n"},"skipLeadingRows":{"type":"integer","description":"The number of rows at the top of a CSV\nfile that BigQuery will skip when reading the data.\n"},"sourceColumnMatch":{"type":"string","description":"Specifies how source columns are matched\nto the table schema. Valid values are `POSITION` (columns matched by position,\nassuming same ordering as the schema) or `NAME` (columns matched by name,\nreads the header row and reorders columns to align with schema field names).\nIf not set, a default is chosen based on how the schema is provided: when\nautodetect is used, columns are matched by name; otherwise, by position.\n"}},"type":"object","required":["quote"]},"gcp:bigquery/TableExternalDataConfigurationGoogleSheetsOptions:TableExternalDataConfigurationGoogleSheetsOptions":{"properties":{"range":{"type":"string","description":"Range of a sheet to query from. Only used when\nnon-empty. At least one of \u003cspan pulumi-lang-nodejs=\"`range`\" pulumi-lang-dotnet=\"`Range`\" pulumi-lang-go=\"`range`\" pulumi-lang-python=\"`range`\" pulumi-lang-yaml=\"`range`\" pulumi-lang-java=\"`range`\"\u003e`range`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`skipLeadingRows`\" pulumi-lang-dotnet=\"`SkipLeadingRows`\" pulumi-lang-go=\"`skipLeadingRows`\" pulumi-lang-python=\"`skip_leading_rows`\" pulumi-lang-yaml=\"`skipLeadingRows`\" pulumi-lang-java=\"`skipLeadingRows`\"\u003e`skip_leading_rows`\u003c/span\u003e must be set.\nTypical format: \"sheet_name!top_left_cell_id:bottom_right_cell_id\"\nFor example: \"sheet1!A1:B20\"\n"},"skipLeadingRows":{"type":"integer","description":"The number of rows at the top of the sheet\nthat BigQuery will skip when reading the data. At least one of \u003cspan pulumi-lang-nodejs=\"`range`\" pulumi-lang-dotnet=\"`Range`\" pulumi-lang-go=\"`range`\" pulumi-lang-python=\"`range`\" pulumi-lang-yaml=\"`range`\" pulumi-lang-java=\"`range`\"\u003e`range`\u003c/span\u003e or\n\u003cspan pulumi-lang-nodejs=\"`skipLeadingRows`\" pulumi-lang-dotnet=\"`SkipLeadingRows`\" pulumi-lang-go=\"`skipLeadingRows`\" pulumi-lang-python=\"`skip_leading_rows`\" pulumi-lang-yaml=\"`skipLeadingRows`\" pulumi-lang-java=\"`skipLeadingRows`\"\u003e`skip_leading_rows`\u003c/span\u003e must be set.\n"}},"type":"object"},"gcp:bigquery/TableExternalDataConfigurationHivePartitioningOptions:TableExternalDataConfigurationHivePartitioningOptions":{"properties":{"mode":{"type":"string","description":"When set, what mode of hive partitioning to use when\nreading data. The following modes are supported.\n* AUTO: automatically infer partition key name(s) and type(s).\n* STRINGS: automatically infer partition key name(s). All types are\nNot all storage formats support hive partitioning. Requesting hive\npartitioning on an unsupported format will lead to an error.\nCurrently supported formats are: JSON, CSV, ORC, Avro and Parquet.\n* CUSTOM: when set to `CUSTOM`, you must encode the partition key schema within the \u003cspan pulumi-lang-nodejs=\"`sourceUriPrefix`\" pulumi-lang-dotnet=\"`SourceUriPrefix`\" pulumi-lang-go=\"`sourceUriPrefix`\" pulumi-lang-python=\"`source_uri_prefix`\" pulumi-lang-yaml=\"`sourceUriPrefix`\" pulumi-lang-java=\"`sourceUriPrefix`\"\u003e`source_uri_prefix`\u003c/span\u003e by setting \u003cspan pulumi-lang-nodejs=\"`sourceUriPrefix`\" pulumi-lang-dotnet=\"`SourceUriPrefix`\" pulumi-lang-go=\"`sourceUriPrefix`\" pulumi-lang-python=\"`source_uri_prefix`\" pulumi-lang-yaml=\"`sourceUriPrefix`\" pulumi-lang-java=\"`sourceUriPrefix`\"\u003e`source_uri_prefix`\u003c/span\u003e to `gs://bucket/path_to_table/{key1:TYPE1}/{key2:TYPE2}/{key3:TYPE3}`.\n"},"requirePartitionFilter":{"type":"boolean","description":"If set to true, queries over this table\nrequire a partition filter that can be used for partition elimination to be\nspecified.\n"},"sourceUriPrefix":{"type":"string","description":"When hive partition detection is requested,\na common for all source uris must be required. The prefix must end immediately\nbefore the partition key encoding begins. For example, consider files following\nthis data layout. `gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro`\n`gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro` When hive\npartitioning is requested with either AUTO or STRINGS detection, the common prefix\ncan be either of `gs://bucket/path_to_table` or `gs://bucket/path_to_table/`.\nNote that when \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e is set to `CUSTOM`, you must encode the partition key schema within the \u003cspan pulumi-lang-nodejs=\"`sourceUriPrefix`\" pulumi-lang-dotnet=\"`SourceUriPrefix`\" pulumi-lang-go=\"`sourceUriPrefix`\" pulumi-lang-python=\"`source_uri_prefix`\" pulumi-lang-yaml=\"`sourceUriPrefix`\" pulumi-lang-java=\"`sourceUriPrefix`\"\u003e`source_uri_prefix`\u003c/span\u003e by setting \u003cspan pulumi-lang-nodejs=\"`sourceUriPrefix`\" pulumi-lang-dotnet=\"`SourceUriPrefix`\" pulumi-lang-go=\"`sourceUriPrefix`\" pulumi-lang-python=\"`source_uri_prefix`\" pulumi-lang-yaml=\"`sourceUriPrefix`\" pulumi-lang-java=\"`sourceUriPrefix`\"\u003e`source_uri_prefix`\u003c/span\u003e to `gs://bucket/path_to_table/{key1:TYPE1}/{key2:TYPE2}/{key3:TYPE3}`.\n"}},"type":"object"},"gcp:bigquery/TableExternalDataConfigurationJsonOptions:TableExternalDataConfigurationJsonOptions":{"properties":{"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8.\n"}},"type":"object"},"gcp:bigquery/TableExternalDataConfigurationParquetOptions:TableExternalDataConfigurationParquetOptions":{"properties":{"enableListInference":{"type":"boolean","description":"Indicates whether to use schema inference specifically for Parquet LIST logical type.\n"},"enumAsString":{"type":"boolean","description":"Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.\n"}},"type":"object"},"gcp:bigquery/TableMaterializedView:TableMaterializedView":{"properties":{"allowNonIncrementalDefinition":{"type":"boolean","description":"Allow non incremental materialized view definition.\nThe default value is false.\n","willReplaceOnChanges":true},"enableRefresh":{"type":"boolean","description":"Specifies whether to use BigQuery's automatic refresh for this materialized view when the base table is updated.\nThe default value is true.\n"},"query":{"type":"string","description":"A query whose result is persisted.\n","willReplaceOnChanges":true},"refreshIntervalMs":{"type":"integer","description":"The maximum frequency at which this materialized view will be refreshed.\nThe default value is 1800000\n"}},"type":"object","required":["query"]},"gcp:bigquery/TableRangePartitioning:TableRangePartitioning":{"properties":{"field":{"type":"string","description":"The field used to determine how to create a range-based\npartition.\n","willReplaceOnChanges":true},"range":{"$ref":"#/types/gcp:bigquery/TableRangePartitioningRange:TableRangePartitioningRange","description":"Information required to partition based on ranges.\nStructure is documented below.\n"}},"type":"object","required":["field","range"]},"gcp:bigquery/TableRangePartitioningRange:TableRangePartitioningRange":{"properties":{"end":{"type":"integer","description":"End of the range partitioning, exclusive.\n"},"interval":{"type":"integer","description":"The width of each range within the partition.\n"},"start":{"type":"integer","description":"Start of the range partitioning, inclusive.\n"}},"type":"object","required":["end","interval","start"]},"gcp:bigquery/TableSchemaForeignTypeInfo:TableSchemaForeignTypeInfo":{"properties":{"typeSystem":{"type":"string","description":"Specifies the system which defines the foreign data\ntype.\n"}},"type":"object","required":["typeSystem"]},"gcp:bigquery/TableTableConstraints:TableTableConstraints":{"properties":{"foreignKeys":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/TableTableConstraintsForeignKey:TableTableConstraintsForeignKey"},"description":"Present only if the table has a foreign key.\nThe foreign key is not enforced.\nStructure is documented below.\n"},"primaryKey":{"$ref":"#/types/gcp:bigquery/TableTableConstraintsPrimaryKey:TableTableConstraintsPrimaryKey","description":"Represents the primary key constraint\non a table's columns. Present only if the table has a primary key.\nThe primary key is not enforced.\nStructure is documented below.\n"}},"type":"object"},"gcp:bigquery/TableTableConstraintsForeignKey:TableTableConstraintsForeignKey":{"properties":{"columnReferences":{"$ref":"#/types/gcp:bigquery/TableTableConstraintsForeignKeyColumnReferences:TableTableConstraintsForeignKeyColumnReferences","description":"The pair of the foreign key column and primary key column.\nStructure is documented below.\n"},"name":{"type":"string","description":"Set only if the foreign key constraint is named.\n"},"referencedTable":{"$ref":"#/types/gcp:bigquery/TableTableConstraintsForeignKeyReferencedTable:TableTableConstraintsForeignKeyReferencedTable","description":"The table that holds the primary key\nand is referenced by this foreign key.\nStructure is documented below.\n"}},"type":"object","required":["columnReferences","referencedTable"]},"gcp:bigquery/TableTableConstraintsForeignKeyColumnReferences:TableTableConstraintsForeignKeyColumnReferences":{"properties":{"referencedColumn":{"type":"string","description":"The column in the primary key that are\nreferenced by the referencingColumn\n"},"referencingColumn":{"type":"string","description":"The column that composes the foreign key.\n"}},"type":"object","required":["referencedColumn","referencingColumn"]},"gcp:bigquery/TableTableConstraintsForeignKeyReferencedTable:TableTableConstraintsForeignKeyReferencedTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"},"tableId":{"type":"string","description":"The ID of the table. The ID must contain only\nletters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum\nlength is 1,024 characters. Certain operations allow suffixing of\nthe table ID with a partition decorator, such as\nsample_table$20190123.\n"}},"type":"object","required":["datasetId","projectId","tableId"]},"gcp:bigquery/TableTableConstraintsPrimaryKey:TableTableConstraintsPrimaryKey":{"properties":{"columns":{"type":"array","items":{"type":"string"},"description":"The columns that are composed of the primary key constraint.\n"}},"type":"object","required":["columns"]},"gcp:bigquery/TableTableReplicationInfo:TableTableReplicationInfo":{"properties":{"replicationIntervalMs":{"type":"integer","description":"The interval at which the source\nmaterialized view is polled for updates. The default is 300000.\n","willReplaceOnChanges":true},"sourceDatasetId":{"type":"string","description":"The ID of the source dataset.\n","willReplaceOnChanges":true},"sourceProjectId":{"type":"string","description":"The ID of the source project.\n","willReplaceOnChanges":true},"sourceTableId":{"type":"string","description":"The ID of the source materialized view.\n","willReplaceOnChanges":true}},"type":"object","required":["sourceDatasetId","sourceProjectId","sourceTableId"]},"gcp:bigquery/TableTimePartitioning:TableTimePartitioning":{"properties":{"expirationMs":{"type":"integer","description":"Number of milliseconds for which to keep the\nstorage for a partition.\n"},"field":{"type":"string","description":"The field used to determine how to create a time-based\npartition. If time-based partitioning is enabled without this value, the\ntable is partitioned based on the load time.\n","willReplaceOnChanges":true},"requirePartitionFilter":{"type":"boolean","description":"If set to true, queries over this table\nrequire a partition filter that can be used for partition elimination to be\nspecified. \u003cspan pulumi-lang-nodejs=\"`requirePartitionFilter`\" pulumi-lang-dotnet=\"`RequirePartitionFilter`\" pulumi-lang-go=\"`requirePartitionFilter`\" pulumi-lang-python=\"`require_partition_filter`\" pulumi-lang-yaml=\"`requirePartitionFilter`\" pulumi-lang-java=\"`requirePartitionFilter`\"\u003e`require_partition_filter`\u003c/span\u003e is deprecated and will be removed in\na future major release. Use the top level field with the same name instead.\n","deprecationMessage":"This field is deprecated and will be removed in a future major release; please use the top level field with the same name instead."},"type":{"type":"string","description":"The supported types are DAY, HOUR, MONTH, and YEAR,\nwhich will generate one partition per day, hour, month, and year, respectively.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["expirationMs","type"]}}},"gcp:bigquery/TableView:TableView":{"properties":{"query":{"type":"string","description":"A query that BigQuery executes when the view is referenced.\n"},"useLegacySql":{"type":"boolean","description":"Specifies whether to use BigQuery's legacy SQL for this view.\nIf set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the view will use BigQuery's standard SQL. If set to\n\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the view will use BigQuery's legacy SQL. If unset, the API will\ninterpret it as a \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and assumes the legacy SQL dialect for its query\naccording to the [API documentation](https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#ViewDefinition).\n\u003e **Note**: Starting in provider version `7.0.0`, no default value is\nprovided for this field unless explicitly set in the configuration.\n"}},"type":"object","required":["query"],"language":{"nodejs":{"requiredOutputs":["query","useLegacySql"]}}},"gcp:bigquery/getDatasetAccess:getDatasetAccess":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getDatasetAccessCondition:getDatasetAccessCondition"},"description":"Condition for the binding. If CEL expression in this field is true, this\naccess binding will be considered.\n"},"datasets":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getDatasetAccessDataset:getDatasetAccessDataset"},"description":"Grants all resources of particular types in a particular dataset read access to the current dataset.\n"},"domain":{"type":"string","description":"A domain to grant access to. Any users signed in with the\ndomain specified will be granted the specified access\n"},"groupByEmail":{"type":"string","description":"An email address of a Google Group to grant access to.\n"},"iamMember":{"type":"string","description":"Some other type of member that appears in the IAM Policy but isn't a user,\ngroup, domain, or special group. For example: 'allUsers'\n"},"role":{"type":"string","description":"Describes the rights granted to the user specified by the other\nmember of the access object. Basic, predefined, and custom roles\nare supported. Predefined roles that have equivalent basic roles\nare swapped by the API to their basic counterparts. See\n[official docs](https://cloud.google.com/bigquery/docs/access-control).\n"},"routines":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getDatasetAccessRoutine:getDatasetAccessRoutine"},"description":"A routine from a different dataset to grant access to. Queries\nexecuted against that routine will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that routine is updated by any user, access to the routine\nneeds to be granted again via an update operation.\n"},"specialGroup":{"type":"string","description":"A special group to grant access to. Possible values include:\n* 'projectOwners': Owners of the enclosing project.\n* 'projectReaders': Readers of the enclosing project.\n* 'projectWriters': Writers of the enclosing project.\n* 'allAuthenticatedUsers': All authenticated BigQuery users.\n"},"userByEmail":{"type":"string","description":"An email address of a user to grant access to. For example:\nfred@example.com\n"},"views":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getDatasetAccessView:getDatasetAccessView"},"description":"A view from a different dataset to grant access to. Queries\nexecuted against that view will have read access to tables in\nthis dataset. The role field is not required when this field is\nset. If that view is updated by any user, access to the view\nneeds to be granted again via an update operation.\n"}},"type":"object","required":["conditions","datasets","domain","groupByEmail","iamMember","role","routines","specialGroup","userByEmail","views"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetAccessCondition:getDatasetAccessCondition":{"properties":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file\nname and a position in the file.\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.\n"}},"type":"object","required":["description","expression","location","title"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetAccessDataset:getDatasetAccessDataset":{"properties":{"datasets":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getDatasetAccessDatasetDataset:getDatasetAccessDatasetDataset"},"description":"The dataset this entry applies to\n"},"targetTypes":{"type":"array","items":{"type":"string"},"description":"Which resources in the dataset this entry applies to. Currently, only views are supported,\nbut additional target types may be added in the future. Possible values: VIEWS\n"}},"type":"object","required":["datasets","targetTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetAccessDatasetDataset:getDatasetAccessDatasetDataset":{"properties":{"datasetId":{"type":"string","description":"The dataset ID.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"}},"type":"object","required":["datasetId","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetAccessRoutine:getDatasetAccessRoutine":{"properties":{"datasetId":{"type":"string","description":"The dataset ID.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"},"routineId":{"type":"string","description":"The ID of the routine. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 256 characters.\n"}},"type":"object","required":["datasetId","projectId","routineId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetAccessView:getDatasetAccessView":{"properties":{"datasetId":{"type":"string","description":"The dataset ID.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"},"tableId":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.\n"}},"type":"object","required":["datasetId","projectId","tableId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetDefaultEncryptionConfiguration:getDatasetDefaultEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination\nBigQuery table. The BigQuery Service Account associated with your project requires\naccess to this encryption key.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetExternalCatalogDatasetOption:getDatasetExternalCatalogDatasetOption":{"properties":{"defaultStorageLocationUri":{"type":"string","description":"The storage location URI for all tables in the dataset. Equivalent to hive metastore's\ndatabase locationUri. Maximum length of 1024 characters.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of key value pairs defining the parameters and properties of the open source schema.\nMaximum size of 2Mib.\n"}},"type":"object","required":["defaultStorageLocationUri","parameters"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetExternalDatasetReference:getDatasetExternalDatasetReference":{"properties":{"connection":{"type":"string","description":"The connection id that is used to access the externalSource.\nFormat: projects/{projectId}/locations/{locationId}/connections/{connectionId}\n"},"externalSource":{"type":"string","description":"External source that backs this dataset.\n"}},"type":"object","required":["connection","externalSource"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getDatasetsDataset:getDatasetsDataset":{"properties":{"datasetId":{"type":"string","description":"The id of the dataset.\n"},"friendlyName":{"type":"string","description":"The friendly name of the dataset.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"User-provided dataset labels, in key/value pairs.\n"},"location":{"type":"string","description":"The geographic location of the dataset.\n"}},"type":"object","required":["datasetId","friendlyName","labels","location"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableBiglakeConfiguration:getTableBiglakeConfiguration":{"properties":{"connectionId":{"type":"string","description":"The connection specifying the credentials to be used to read and write to external storage, such as Cloud Storage. The\u003cspan pulumi-lang-nodejs=\" connectionId \" pulumi-lang-dotnet=\" ConnectionId \" pulumi-lang-go=\" connectionId \" pulumi-lang-python=\" connection_id \" pulumi-lang-yaml=\" connectionId \" pulumi-lang-java=\" connectionId \"\u003e connection_id \u003c/span\u003ecan have the form \"\u0026lt;project\\_id\u0026gt;.\u0026lt;location\\_id\u0026gt;.\u0026lt;connection\\_id\u0026gt;\" or \"projects/\u0026lt;project\\_id\u0026gt;/locations/\u0026lt;location\\_id\u0026gt;/connections/\u0026lt;connection\\_id\u0026gt;\".\n"},"fileFormat":{"type":"string","description":"The file format the data is stored in.\n"},"storageUri":{"type":"string","description":"The fully qualified location prefix of the external folder where table data is stored. The '*' wildcard character is not allowed. The URI should be in the format \"gs://bucket/path_to_table/\"\n"},"tableFormat":{"type":"string","description":"The table format the metadata only snapshots are stored in.\n"}},"type":"object","required":["connectionId","fileFormat","storageUri","tableFormat"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableEncryptionConfiguration:getTableEncryptionConfiguration":{"properties":{"kmsKeyName":{"type":"string","description":"The self link or full name of a key which should be used to encrypt this table. Note that the default bigquery service account will need to have encrypt/decrypt permissions on this key - you may want to see the\u003cspan pulumi-lang-nodejs=\" gcp.bigquery.getDefaultServiceAccount \" pulumi-lang-dotnet=\" gcp.bigquery.getDefaultServiceAccount \" pulumi-lang-go=\" bigquery.getDefaultServiceAccount \" pulumi-lang-python=\" bigquery_get_default_service_account \" pulumi-lang-yaml=\" gcp.bigquery.getDefaultServiceAccount \" pulumi-lang-java=\" gcp.bigquery.getDefaultServiceAccount \"\u003e gcp.bigquery.getDefaultServiceAccount \u003c/span\u003edatasource and the\u003cspan pulumi-lang-nodejs=\" gcp.kms.CryptoKeyIAMBinding \" pulumi-lang-dotnet=\" gcp.kms.CryptoKeyIAMBinding \" pulumi-lang-go=\" kms.CryptoKeyIAMBinding \" pulumi-lang-python=\" kms.CryptoKeyIAMBinding \" pulumi-lang-yaml=\" gcp.kms.CryptoKeyIAMBinding \" pulumi-lang-java=\" gcp.kms.CryptoKeyIAMBinding \"\u003e gcp.kms.CryptoKeyIAMBinding \u003c/span\u003eresource.\n"},"kmsKeyVersion":{"type":"string","description":"The self link or full name of the kms key version used to encrypt this table.\n"}},"type":"object","required":["kmsKeyName","kmsKeyVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalCatalogTableOption:getTableExternalCatalogTableOption":{"properties":{"connectionId":{"type":"string","description":"The connection specifying the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or S3. The connection is needed to read the open source table from BigQuery Engine. The\u003cspan pulumi-lang-nodejs=\" connectionId \" pulumi-lang-dotnet=\" ConnectionId \" pulumi-lang-go=\" connectionId \" pulumi-lang-python=\" connection_id \" pulumi-lang-yaml=\" connectionId \" pulumi-lang-java=\" connectionId \"\u003e connection_id \u003c/span\u003ecan have the form \u003cproject_id\u003e.\u003clocation_id\u003e.\u003cconnection_id\u003e or projects/\u003cproject_id\u003e/locations/\u003clocation_id\u003e/connections/\u003cconnection_id\u003e.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of key value pairs defining the parameters and properties of the open source table. Corresponds with hive meta store table parameters. Maximum size of 4Mib.\n"},"storageDescriptors":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalCatalogTableOptionStorageDescriptor:getTableExternalCatalogTableOptionStorageDescriptor"},"description":"A storage descriptor containing information about the physical storage of this table.\n"}},"type":"object","required":["connectionId","parameters","storageDescriptors"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalCatalogTableOptionStorageDescriptor:getTableExternalCatalogTableOptionStorageDescriptor":{"properties":{"inputFormat":{"type":"string","description":"Specifies the fully qualified class name of the InputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcInputFormat\"). The maximum length is 128 characters.\n"},"locationUri":{"type":"string","description":"The physical location of the table (e.g. 'gs://spark-dataproc-data/pangea-data/case_sensitive/' or 'gs://spark-dataproc-data/pangea-data/*'). The maximum length is 2056 bytes.\n"},"outputFormat":{"type":"string","description":"Specifies the fully qualified class name of the OutputFormat (e.g. \"org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat\"). The maximum length is 128 characters.\n"},"serdeInfos":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalCatalogTableOptionStorageDescriptorSerdeInfo:getTableExternalCatalogTableOptionStorageDescriptorSerdeInfo"},"description":"Serializer and deserializer information.\n"}},"type":"object","required":["inputFormat","locationUri","outputFormat","serdeInfos"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalCatalogTableOptionStorageDescriptorSerdeInfo:getTableExternalCatalogTableOptionStorageDescriptorSerdeInfo":{"properties":{"name":{"type":"string","description":"Name of the SerDe. The maximum length is 256 characters.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Key-value pairs that define the initialization parameters for the serialization library. Maximum size 10 Kib.\n"},"serializationLibrary":{"type":"string","description":"Specifies a fully-qualified class name of the serialization library that is responsible for the translation of data between table representation and the underlying low-level input and output format structures. The maximum length is 256 characters.\n"}},"type":"object","required":["name","parameters","serializationLibrary"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfiguration:getTableExternalDataConfiguration":{"properties":{"autodetect":{"type":"boolean","description":"Let BigQuery try to autodetect the schema and format of the table.\n"},"avroOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationAvroOption:getTableExternalDataConfigurationAvroOption"},"description":"Additional options if\u003cspan pulumi-lang-nodejs=\" sourceFormat \" pulumi-lang-dotnet=\" SourceFormat \" pulumi-lang-go=\" sourceFormat \" pulumi-lang-python=\" source_format \" pulumi-lang-yaml=\" sourceFormat \" pulumi-lang-java=\" sourceFormat \"\u003e source_format \u003c/span\u003eis set to \"AVRO\"\n"},"bigtableOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationBigtableOption:getTableExternalDataConfigurationBigtableOption"},"description":"Additional options if sourceFormat is set to BIGTABLE.\n"},"compression":{"type":"string","description":"The compression type of the data source. Valid values are \"NONE\" or \"GZIP\".\n"},"connectionId":{"type":"string","description":"The connection specifying the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or S3. The connectionId can have the form \"\u003cproject\u003e.\u003clocation\u003e.\u003cconnection_id\u003e\" or \"projects/\u003cproject\u003e/locations/\u003clocation\u003e/connections/\u003cconnection_id\u003e\".\n"},"csvOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationCsvOption:getTableExternalDataConfigurationCsvOption"},"description":"Additional properties to set if\u003cspan pulumi-lang-nodejs=\" sourceFormat \" pulumi-lang-dotnet=\" SourceFormat \" pulumi-lang-go=\" sourceFormat \" pulumi-lang-python=\" source_format \" pulumi-lang-yaml=\" sourceFormat \" pulumi-lang-java=\" sourceFormat \"\u003e source_format \u003c/span\u003eis set to \"CSV\".\n"},"decimalTargetTypes":{"type":"array","items":{"type":"string"},"description":"The data types that could be used as a target type when converting decimal values.\n"},"fileSetSpecType":{"type":"string","description":"Specifies how source URIs are interpreted for constructing the file set to load.  By default source URIs are expanded against the underlying storage.  Other options include specifying manifest files. Only applicable to object storage systems.\n"},"googleSheetsOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationGoogleSheetsOption:getTableExternalDataConfigurationGoogleSheetsOption"},"description":"Additional options if\u003cspan pulumi-lang-nodejs=\" sourceFormat \" pulumi-lang-dotnet=\" SourceFormat \" pulumi-lang-go=\" sourceFormat \" pulumi-lang-python=\" source_format \" pulumi-lang-yaml=\" sourceFormat \" pulumi-lang-java=\" sourceFormat \"\u003e source_format \u003c/span\u003eis set to \"GOOGLE_SHEETS\".\n"},"hivePartitioningOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationHivePartitioningOption:getTableExternalDataConfigurationHivePartitioningOption"},"description":"When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification.\n"},"ignoreUnknownValues":{"type":"boolean","description":"Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.\n"},"jsonExtension":{"type":"string","description":"Load option to be used together with sourceFormat newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and sourceFormat must be set to NEWLINE_DELIMITED_JSON).\n"},"jsonOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationJsonOption:getTableExternalDataConfigurationJsonOption"},"description":"Additional properties to set if sourceFormat is set to JSON.\n"},"maxBadRecords":{"type":"integer","description":"The maximum number of bad records that BigQuery can ignore when reading data.\n"},"metadataCacheMode":{"type":"string","description":"Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source.\n"},"objectMetadata":{"type":"string","description":"Object Metadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the sourceUris. If ObjectMetadata is set, sourceFormat should be omitted.\n"},"parquetOptions":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationParquetOption:getTableExternalDataConfigurationParquetOption"},"description":"Additional properties to set if sourceFormat is set to PARQUET.\n"},"referenceFileSchemaUri":{"type":"string","description":"When creating an external table, the user can provide a reference file with the table schema. This is enabled for the following formats: AVRO, PARQUET, ORC.\n"},"schema":{"type":"string","description":"A JSON schema for the external table. Schema is required for CSV and JSON formats and is disallowed for Google Cloud Bigtable, Cloud Datastore backups, and Avro formats when using external tables.\n"},"sourceFormat":{"type":"string","description":"Please see sourceFormat under ExternalDataConfiguration in Bigquery's public API documentation (https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#externaldataconfiguration) for supported formats. To use \"GOOGLE_SHEETS\" the scopes must include \"googleapis.com/auth/drive.readonly\".\n"},"sourceUris":{"type":"array","items":{"type":"string"},"description":"A list of the fully-qualified URIs that point to your data in Google Cloud.\n"}},"type":"object","required":["autodetect","avroOptions","bigtableOptions","compression","connectionId","csvOptions","decimalTargetTypes","fileSetSpecType","googleSheetsOptions","hivePartitioningOptions","ignoreUnknownValues","jsonExtension","jsonOptions","maxBadRecords","metadataCacheMode","objectMetadata","parquetOptions","referenceFileSchemaUri","schema","sourceFormat","sourceUris"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationAvroOption:getTableExternalDataConfigurationAvroOption":{"properties":{"useAvroLogicalTypes":{"type":"boolean","description":"If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).\n"}},"type":"object","required":["useAvroLogicalTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationBigtableOption:getTableExternalDataConfigurationBigtableOption":{"properties":{"columnFamilies":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationBigtableOptionColumnFamily:getTableExternalDataConfigurationBigtableOptionColumnFamily"},"description":"A list of column families to expose in the table schema along with their types. This list restricts the column families that can be referenced in queries and specifies their value types. You can use this list to do type conversions - see the 'type' field for more details. If you leave this list empty, all column families are present in the table schema and their values are read as BYTES. During a query only the column families referenced in that query are read from Bigtable.\n"},"ignoreUnspecifiedColumnFamilies":{"type":"boolean","description":"If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false.\n"},"outputColumnFamiliesAsJson":{"type":"boolean","description":"If field is true, then each column family will be read as a single JSON column. Otherwise they are read as a repeated cell structure containing timestamp/value tuples. The default value is false.\n"},"readRowkeyAsString":{"type":"boolean","description":"If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false.\n"}},"type":"object","required":["columnFamilies","ignoreUnspecifiedColumnFamilies","outputColumnFamiliesAsJson","readRowkeyAsString"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationBigtableOptionColumnFamily:getTableExternalDataConfigurationBigtableOptionColumnFamily":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableExternalDataConfigurationBigtableOptionColumnFamilyColumn:getTableExternalDataConfigurationBigtableOptionColumnFamilyColumn"},"description":"A List of columns that should be exposed as individual fields as opposed to a list of (column name, value) pairs. All columns whose qualifier matches a qualifier in this list can be accessed as Other columns can be accessed as a list through column field\n"},"encoding":{"type":"string","description":"The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it.\n"},"familyId":{"type":"string","description":"Identifier of the column family.\n"},"onlyReadLatest":{"type":"boolean","description":"If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column.\n"},"type":{"type":"string","description":"The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): \"BYTES\", \"STRING\", \"INTEGER\", \"FLOAT\", \"BOOLEAN\", \"JSON\". Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it.\n"}},"type":"object","required":["columns","encoding","familyId","onlyReadLatest","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationBigtableOptionColumnFamilyColumn:getTableExternalDataConfigurationBigtableOptionColumnFamilyColumn":{"properties":{"encoding":{"type":"string","description":"The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels.\n"},"fieldName":{"type":"string","description":"If the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as the column field name and is used as field name in queries.\n"},"onlyReadLatest":{"type":"boolean","description":"If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels.\n"},"qualifierEncoded":{"type":"string","description":"Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as . field. If the qualifier is valid UTF-8 string, it can be specified in the qualifierString field. Otherwise, a base-64 encoded value must be set to qualifierEncoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as fieldName.\n"},"qualifierString":{"type":"string","description":"Qualifier string.\n"},"type":{"type":"string","description":"The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): \"BYTES\", \"STRING\", \"INTEGER\", \"FLOAT\", \"BOOLEAN\", \"JSON\", Default type is \"BYTES\". 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels.\n"}},"type":"object","required":["encoding","fieldName","onlyReadLatest","qualifierEncoded","qualifierString","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationCsvOption:getTableExternalDataConfigurationCsvOption":{"properties":{"allowJaggedRows":{"type":"boolean","description":"Indicates if BigQuery should accept rows that are missing trailing optional columns.\n"},"allowQuotedNewlines":{"type":"boolean","description":"Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.\n"},"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.\n"},"fieldDelimiter":{"type":"string","description":"The separator for fields in a CSV file.\n"},"quote":{"type":"string","description":"The value that is used to quote data sections in a CSV file. If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the\u003cspan pulumi-lang-nodejs=\" allowQuotedNewlines \" pulumi-lang-dotnet=\" AllowQuotedNewlines \" pulumi-lang-go=\" allowQuotedNewlines \" pulumi-lang-python=\" allow_quoted_newlines \" pulumi-lang-yaml=\" allowQuotedNewlines \" pulumi-lang-java=\" allowQuotedNewlines \"\u003e allow_quoted_newlines \u003c/span\u003eproperty to true. The API-side default is \", specified in Terraform escaped as \\\". Due to limitations with Terraform default values, this value is required to be explicitly set.\n"},"skipLeadingRows":{"type":"integer","description":"The number of rows at the top of a CSV file that BigQuery will skip when reading the data.\n"},"sourceColumnMatch":{"type":"string","description":"Specifies how source columns are matched to the table schema. Valid values are POSITION (columns matched by position, assuming same ordering) or NAME (columns matched by name, reads header row and reorders columns to align with schema field names).\n"}},"type":"object","required":["allowJaggedRows","allowQuotedNewlines","encoding","fieldDelimiter","quote","skipLeadingRows","sourceColumnMatch"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationGoogleSheetsOption:getTableExternalDataConfigurationGoogleSheetsOption":{"properties":{"range":{"type":"string","description":"Range of a sheet to query from. Only used when non-empty. At least one of range or\u003cspan pulumi-lang-nodejs=\" skipLeadingRows \" pulumi-lang-dotnet=\" SkipLeadingRows \" pulumi-lang-go=\" skipLeadingRows \" pulumi-lang-python=\" skip_leading_rows \" pulumi-lang-yaml=\" skipLeadingRows \" pulumi-lang-java=\" skipLeadingRows \"\u003e skip_leading_rows \u003c/span\u003emust be set. Typical format: \"sheet_name!top_left_cell_id:bottom_right_cell_id\" For example: \"sheet1!A1:B20\n"},"skipLeadingRows":{"type":"integer","description":"The number of rows at the top of the sheet that BigQuery will skip when reading the data. At least one of range or\u003cspan pulumi-lang-nodejs=\" skipLeadingRows \" pulumi-lang-dotnet=\" SkipLeadingRows \" pulumi-lang-go=\" skipLeadingRows \" pulumi-lang-python=\" skip_leading_rows \" pulumi-lang-yaml=\" skipLeadingRows \" pulumi-lang-java=\" skipLeadingRows \"\u003e skip_leading_rows \u003c/span\u003emust be set.\n"}},"type":"object","required":["range","skipLeadingRows"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationHivePartitioningOption:getTableExternalDataConfigurationHivePartitioningOption":{"properties":{"mode":{"type":"string","description":"When set, what mode of hive partitioning to use when reading data.\n"},"requirePartitionFilter":{"type":"boolean","description":"If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.\n"},"sourceUriPrefix":{"type":"string","description":"When hive partition detection is requested, a common for all source uris must be required. The prefix must end immediately before the partition key encoding begins.\n"}},"type":"object","required":["mode","requirePartitionFilter","sourceUriPrefix"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationJsonOption:getTableExternalDataConfigurationJsonOption":{"properties":{"encoding":{"type":"string","description":"The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8.\n"}},"type":"object","required":["encoding"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableExternalDataConfigurationParquetOption:getTableExternalDataConfigurationParquetOption":{"properties":{"enableListInference":{"type":"boolean","description":"Indicates whether to use schema inference specifically for Parquet LIST logical type.\n"},"enumAsString":{"type":"boolean","description":"Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.\n"}},"type":"object","required":["enableListInference","enumAsString"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableMaterializedView:getTableMaterializedView":{"properties":{"allowNonIncrementalDefinition":{"type":"boolean","description":"Allow non incremental materialized view definition. The default value is false.\n"},"enableRefresh":{"type":"boolean","description":"Specifies if BigQuery should automatically refresh materialized view when the base table is updated. The default is true.\n"},"query":{"type":"string","description":"A query whose result is persisted.\n"},"refreshIntervalMs":{"type":"integer","description":"Specifies maximum frequency at which this materialized view will be refreshed. The default is 1800000.\n"}},"type":"object","required":["allowNonIncrementalDefinition","enableRefresh","query","refreshIntervalMs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableRangePartitioning:getTableRangePartitioning":{"properties":{"field":{"type":"string","description":"The field used to determine how to create a range-based partition.\n"},"ranges":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableRangePartitioningRange:getTableRangePartitioningRange"},"description":"Information required to partition based on ranges. Structure is documented below.\n"}},"type":"object","required":["field","ranges"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableRangePartitioningRange:getTableRangePartitioningRange":{"properties":{"end":{"type":"integer","description":"End of the range partitioning, exclusive.\n"},"interval":{"type":"integer","description":"The width of each range within the partition.\n"},"start":{"type":"integer","description":"Start of the range partitioning, inclusive.\n"}},"type":"object","required":["end","interval","start"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableSchemaForeignTypeInfo:getTableSchemaForeignTypeInfo":{"properties":{"typeSystem":{"type":"string","description":"Specifies the system which defines the foreign data type.\n"}},"type":"object","required":["typeSystem"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTableConstraint:getTableTableConstraint":{"properties":{"foreignKeys":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableTableConstraintForeignKey:getTableTableConstraintForeignKey"},"description":"Present only if the table has a foreign key. The foreign key is not enforced.\n"},"primaryKeys":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableTableConstraintPrimaryKey:getTableTableConstraintPrimaryKey"},"description":"Represents a primary key constraint on a table's columns. Present only if the table has a primary key. The primary key is not enforced.\n"}},"type":"object","required":["foreignKeys","primaryKeys"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTableConstraintForeignKey:getTableTableConstraintForeignKey":{"properties":{"columnReferences":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableTableConstraintForeignKeyColumnReference:getTableTableConstraintForeignKeyColumnReference"},"description":"The pair of the foreign key column and primary key column.\n"},"name":{"type":"string","description":"Set only if the foreign key constraint is named.\n"},"referencedTables":{"type":"array","items":{"$ref":"#/types/gcp:bigquery/getTableTableConstraintForeignKeyReferencedTable:getTableTableConstraintForeignKeyReferencedTable"},"description":"The table that holds the primary key and is referenced by this foreign key.\n"}},"type":"object","required":["columnReferences","name","referencedTables"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTableConstraintForeignKeyColumnReference:getTableTableConstraintForeignKeyColumnReference":{"properties":{"referencedColumn":{"type":"string","description":"The column in the primary key that are referenced by the referencingColumn.\n"},"referencingColumn":{"type":"string","description":"The column that composes the foreign key.\n"}},"type":"object","required":["referencedColumn","referencingColumn"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTableConstraintForeignKeyReferencedTable:getTableTableConstraintForeignKeyReferencedTable":{"properties":{"datasetId":{"type":"string","description":"The dataset ID.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"},"tableId":{"type":"string","description":"The table ID.\n"}},"type":"object","required":["datasetId","projectId","tableId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTableConstraintPrimaryKey:getTableTableConstraintPrimaryKey":{"properties":{"columns":{"type":"array","items":{"type":"string"},"description":"The columns that are composed of the primary key constraint.\n"}},"type":"object","required":["columns"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTableReplicationInfo:getTableTableReplicationInfo":{"properties":{"replicationIntervalMs":{"type":"integer","description":"The interval at which the source materialized view is polled for updates. The default is 300000.\n"},"sourceDatasetId":{"type":"string","description":"The ID of the source dataset.\n"},"sourceProjectId":{"type":"string","description":"The ID of the source project.\n"},"sourceTableId":{"type":"string","description":"The ID of the source materialized view.\n"}},"type":"object","required":["replicationIntervalMs","sourceDatasetId","sourceProjectId","sourceTableId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableTimePartitioning:getTableTimePartitioning":{"properties":{"expirationMs":{"type":"integer","description":"Number of milliseconds for which to keep the storage for a partition.\n"},"field":{"type":"string","description":"The field used to determine how to create a time-based partition. If time-based partitioning is enabled without this value, the table is partitioned based on the load time.\n"},"requirePartitionFilter":{"type":"boolean","description":"If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.\n"},"type":{"type":"string","description":"The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively.\n"}},"type":"object","required":["expirationMs","field","requirePartitionFilter","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTableView:getTableView":{"properties":{"query":{"type":"string","description":"A query that BigQuery executes when the view is referenced.\n"},"useLegacySql":{"type":"boolean","description":"Specifies whether to use BigQuery's legacy SQL for this view. If set to false, the view will use BigQuery's standard SQL\n"}},"type":"object","required":["query","useLegacySql"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigquery/getTablesTable:getTablesTable":{"properties":{"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"User-provided table labels, in key/value pairs.\n"},"tableId":{"type":"string","description":"The name of the table.\n"}},"type":"object","required":["labels","tableId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:bigqueryanalyticshub/DataExchangeIamBindingCondition:DataExchangeIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigqueryanalyticshub/DataExchangeIamMemberCondition:DataExchangeIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigqueryanalyticshub/DataExchangeSharingEnvironmentConfig:DataExchangeSharingEnvironmentConfig":{"properties":{"dcrExchangeConfig":{"$ref":"#/types/gcp:bigqueryanalyticshub/DataExchangeSharingEnvironmentConfigDcrExchangeConfig:DataExchangeSharingEnvironmentConfigDcrExchangeConfig","description":"Data Clean Room (DCR), used for privacy-safe and secured data sharing.\n","willReplaceOnChanges":true},"defaultExchangeConfig":{"$ref":"#/types/gcp:bigqueryanalyticshub/DataExchangeSharingEnvironmentConfigDefaultExchangeConfig:DataExchangeSharingEnvironmentConfigDefaultExchangeConfig","description":"Default Analytics Hub data exchange, used for secured data sharing.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:bigqueryanalyticshub/DataExchangeSharingEnvironmentConfigDcrExchangeConfig:DataExchangeSharingEnvironmentConfigDcrExchangeConfig":{"type":"object"},"gcp:bigqueryanalyticshub/DataExchangeSharingEnvironmentConfigDefaultExchangeConfig:DataExchangeSharingEnvironmentConfigDefaultExchangeConfig":{"type":"object"},"gcp:bigqueryanalyticshub/DataExchangeSubscriptionDestinationDataset:DataExchangeSubscriptionDestinationDataset":{"properties":{"datasetReference":{"$ref":"#/types/gcp:bigqueryanalyticshub/DataExchangeSubscriptionDestinationDatasetDatasetReference:DataExchangeSubscriptionDestinationDatasetDatasetReference","description":"A reference that identifies the destination dataset.\nStructure is documented below.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"A user-friendly description of the dataset.\n","willReplaceOnChanges":true},"friendlyName":{"type":"string","description":"A descriptive name for the dataset.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels associated with this dataset. You can use these to\norganize and group your datasets.\n","willReplaceOnChanges":true},"location":{"type":"string","description":"The geographic location where the dataset should reside.\nSee https://cloud.google.com/bigquery/docs/locations for supported locations.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetReference","location"]},"gcp:bigqueryanalyticshub/DataExchangeSubscriptionDestinationDatasetDatasetReference:DataExchangeSubscriptionDestinationDatasetDatasetReference":{"properties":{"datasetId":{"type":"string","description":"A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this dataset.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId","projectId"]},"gcp:bigqueryanalyticshub/DataExchangeSubscriptionLinkedDatasetMap:DataExchangeSubscriptionLinkedDatasetMap":{"properties":{"linkedDataset":{"type":"string","description":"(Output)\nOutput only. Name of the linked dataset, e.g. projects/subscriberproject/datasets/linkedDataset\n"},"linkedPubsubSubscription":{"type":"string","description":"(Output)\nOutput only. Name of the Pub/Sub subscription, e.g. projects/subscriberproject/subscriptions/subscriptions/sub_id\n"},"listing":{"type":"string","description":"(Output)\nOutput only. Listing for which linked resource is created.\n"},"resourceName":{"type":"string","description":"(Required) The identifier for this object. Format specified above.\n"}},"type":"object","required":["resourceName"],"language":{"nodejs":{"requiredOutputs":["linkedDataset","linkedPubsubSubscription","listing","resourceName"]}}},"gcp:bigqueryanalyticshub/DataExchangeSubscriptionLinkedResource:DataExchangeSubscriptionLinkedResource":{"properties":{"linkedDataset":{"type":"string","description":"(Output)\nOutput only. Name of the linked dataset, e.g. projects/subscriberproject/datasets/linkedDataset\n"},"listing":{"type":"string","description":"(Output)\nOutput only. Listing for which linked resource is created.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["linkedDataset","listing"]}}},"gcp:bigqueryanalyticshub/ListingBigqueryDataset:ListingBigqueryDataset":{"properties":{"dataset":{"type":"string","description":"Resource name of the dataset source for this listing. e.g. projects/myproject/datasets/123\n","willReplaceOnChanges":true},"effectiveReplicas":{"type":"array","items":{"$ref":"#/types/gcp:bigqueryanalyticshub/ListingBigqueryDatasetEffectiveReplica:ListingBigqueryDatasetEffectiveReplica"},"description":"(Output, Beta)\nServer owned effective state of replicas. Contains both primary and secondary replicas.\nEach replica includes a system-computed (output-only) state and primary designation.\nStructure is documented below.\n"},"replicaLocations":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nA list of regions where the publisher has created shared dataset replicas.\n"},"selectedResources":{"type":"array","items":{"$ref":"#/types/gcp:bigqueryanalyticshub/ListingBigqueryDatasetSelectedResource:ListingBigqueryDatasetSelectedResource"},"description":"Resource in this dataset that is selectively shared. This field is required for data clean room exchanges.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["dataset"],"language":{"nodejs":{"requiredOutputs":["dataset","effectiveReplicas"]}}},"gcp:bigqueryanalyticshub/ListingBigqueryDatasetEffectiveReplica:ListingBigqueryDatasetEffectiveReplica":{"properties":{"location":{"type":"string","description":"The name of the location this data exchange listing.\n"},"primaryState":{"type":"string","description":"Output-only. Indicates that this replica is the primary replica.\nPossible values: PRIMARY_STATE_UNSPECIFIED, PRIMARY_REPLICA\n"},"replicaState":{"type":"string","description":"Output-only. Assigned by Analytics Hub based on real BigQuery replication state.\nPossible values: REPLICA_STATE_UNSPECIFIED, READY_TO_USE, UNAVAILABLE\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["location","primaryState","replicaState"]}}},"gcp:bigqueryanalyticshub/ListingBigqueryDatasetSelectedResource:ListingBigqueryDatasetSelectedResource":{"properties":{"routine":{"type":"string","description":"(Optional, Beta)\nFormat: For routine: projects/{projectId}/datasets/{datasetId}/routines/{routineId} Example:\"projects/test_project/datasets/test_dataset/routines/test_routine\"\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedBigqueryDatasetEffectiveReplicas\"\" pulumi-lang-dotnet=\"\"NestedBigqueryDatasetEffectiveReplicas\"\" pulumi-lang-go=\"\"nestedBigqueryDatasetEffectiveReplicas\"\" pulumi-lang-python=\"\"nested_bigquery_dataset_effective_replicas\"\" pulumi-lang-yaml=\"\"nestedBigqueryDatasetEffectiveReplicas\"\" pulumi-lang-java=\"\"nestedBigqueryDatasetEffectiveReplicas\"\"\u003e\"nested_bigquery_dataset_effective_replicas\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`effectiveReplicas`\" pulumi-lang-dotnet=\"`EffectiveReplicas`\" pulumi-lang-go=\"`effectiveReplicas`\" pulumi-lang-python=\"`effective_replicas`\" pulumi-lang-yaml=\"`effectiveReplicas`\" pulumi-lang-java=\"`effectiveReplicas`\"\u003e`effective_replicas`\u003c/span\u003e block contains:\n","willReplaceOnChanges":true},"table":{"type":"string","description":"Format: For table: projects/{projectId}/datasets/{datasetId}/tables/{tableId} Example:\"projects/test_project/datasets/test_dataset/tables/test_table\"\n","willReplaceOnChanges":true}},"type":"object"},"gcp:bigqueryanalyticshub/ListingCommercialInfo:ListingCommercialInfo":{"properties":{"cloudMarketplaces":{"type":"array","items":{"$ref":"#/types/gcp:bigqueryanalyticshub/ListingCommercialInfoCloudMarketplace:ListingCommercialInfoCloudMarketplace"},"description":"(Output)\nDetails of the Marketplace Data Product associated with the Listing.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudMarketplaces"]}}},"gcp:bigqueryanalyticshub/ListingCommercialInfoCloudMarketplace:ListingCommercialInfoCloudMarketplace":{"properties":{"commercialState":{"type":"string","description":"(Output)\nCommercial state of the Marketplace Data Product.\nPossible values: COMMERCIAL_STATE_UNSPECIFIED, ONBOARDING, ACTIVE\n"},"service":{"type":"string","description":"(Output)\nResource name of the commercial service associated with the Marketplace Data Product. e.g. example.com\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["commercialState","service"]}}},"gcp:bigqueryanalyticshub/ListingDataProvider:ListingDataProvider":{"properties":{"name":{"type":"string","description":"Name of the data provider.\n"},"primaryContact":{"type":"string","description":"Email or URL of the data provider.\n"}},"type":"object","required":["name"]},"gcp:bigqueryanalyticshub/ListingIamBindingCondition:ListingIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigqueryanalyticshub/ListingIamMemberCondition:ListingIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigqueryanalyticshub/ListingPublisher:ListingPublisher":{"properties":{"name":{"type":"string","description":"Name of the listing publisher.\n"},"primaryContact":{"type":"string","description":"Email or URL of the listing publisher.\n"}},"type":"object","required":["name"]},"gcp:bigqueryanalyticshub/ListingPubsubTopic:ListingPubsubTopic":{"properties":{"dataAffinityRegions":{"type":"array","items":{"type":"string"},"description":"Region hint on where the data might be published. Data affinity regions are modifiable.\nSee https://cloud.google.com/about/locations for full listing of possible Cloud regions.\n"},"topic":{"type":"string","description":"Resource name of the Pub/Sub topic source for this listing. e.g. projects/myproject/topics/topicId\n","willReplaceOnChanges":true}},"type":"object","required":["topic"]},"gcp:bigqueryanalyticshub/ListingRestrictedExportConfig:ListingRestrictedExportConfig":{"properties":{"enabled":{"type":"boolean","description":"If true, enable restricted export.\n"},"restrictDirectTableAccess":{"type":"boolean","description":"(Output)\nIf true, restrict direct table access(read api/tabledata.list) on linked table.\n"},"restrictQueryResult":{"type":"boolean","description":"If true, restrict export of query result derived from restricted linked dataset table.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["restrictDirectTableAccess"]}}},"gcp:bigqueryanalyticshub/ListingSubscriptionCommercialInfo:ListingSubscriptionCommercialInfo":{"properties":{"cloudMarketplaces":{"type":"array","items":{"$ref":"#/types/gcp:bigqueryanalyticshub/ListingSubscriptionCommercialInfoCloudMarketplace:ListingSubscriptionCommercialInfoCloudMarketplace"},"description":"(Output)\nCloud Marketplace commercial metadata for this subscription.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudMarketplaces"]}}},"gcp:bigqueryanalyticshub/ListingSubscriptionCommercialInfoCloudMarketplace:ListingSubscriptionCommercialInfoCloudMarketplace":{"properties":{"order":{"type":"string","description":"(Output)\nResource name of the Marketplace Order.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["order"]}}},"gcp:bigqueryanalyticshub/ListingSubscriptionDestinationDataset:ListingSubscriptionDestinationDataset":{"properties":{"datasetReference":{"$ref":"#/types/gcp:bigqueryanalyticshub/ListingSubscriptionDestinationDatasetDatasetReference:ListingSubscriptionDestinationDatasetDatasetReference","description":"A reference that identifies the destination dataset.\nStructure is documented below.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"A user-friendly description of the dataset.\n","willReplaceOnChanges":true},"friendlyName":{"type":"string","description":"A descriptive name for the dataset.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels associated with this dataset. You can use these to\norganize and group your datasets.\n","willReplaceOnChanges":true},"location":{"type":"string","description":"The geographic location where the dataset should reside.\nSee https://cloud.google.com/bigquery/docs/locations for supported locations.\n","willReplaceOnChanges":true},"replicaLocations":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nList of regions where the subscriber wants dataset replicas.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetReference","location"]},"gcp:bigqueryanalyticshub/ListingSubscriptionDestinationDatasetDatasetReference:ListingSubscriptionDestinationDatasetDatasetReference":{"properties":{"datasetId":{"type":"string","description":"A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project containing this dataset.\n","willReplaceOnChanges":true}},"type":"object","required":["datasetId","projectId"]},"gcp:bigqueryanalyticshub/ListingSubscriptionLinkedDatasetMap:ListingSubscriptionLinkedDatasetMap":{"properties":{"linkedDataset":{"type":"string","description":"(Output)\nOutput only. Name of the linked dataset, e.g. projects/subscriberproject/datasets/linkedDataset\n"},"listing":{"type":"string","description":"(Output)\nOutput only. Listing for which linked resource is created.\n"},"resourceName":{"type":"string","description":"(Required) The identifier for this object. Format specified above.\n"}},"type":"object","required":["resourceName"],"language":{"nodejs":{"requiredOutputs":["linkedDataset","listing","resourceName"]}}},"gcp:bigqueryanalyticshub/ListingSubscriptionLinkedResource:ListingSubscriptionLinkedResource":{"properties":{"linkedDataset":{"type":"string","description":"(Output)\nOutput only. Name of the linked dataset, e.g. projects/subscriberproject/datasets/linkedDataset\n"},"listing":{"type":"string","description":"(Output)\nOutput only. Listing for which linked resource is created.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["linkedDataset","listing"]}}},"gcp:bigquerydatapolicy/DataPolicyDataMaskingPolicy:DataPolicyDataMaskingPolicy":{"properties":{"predefinedExpression":{"type":"string","description":"The available masking rules. Learn more here: https://cloud.google.com/bigquery/docs/column-data-masking-intro#masking_options.\nPossible values are: `SHA256`, `ALWAYS_NULL`, `DEFAULT_MASKING_VALUE`, `LAST_FOUR_CHARACTERS`, `FIRST_FOUR_CHARACTERS`, `EMAIL_MASK`, `DATE_YEAR_MASK`.\n"},"routine":{"type":"string","description":"The name of the BigQuery routine that contains the custom masking routine, in the format of projects/{projectNumber}/datasets/{dataset_id}/routines/{routine_id}.\n"}},"type":"object"},"gcp:bigquerydatapolicy/DataPolicyIamBindingCondition:DataPolicyIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigquerydatapolicy/DataPolicyIamMemberCondition:DataPolicyIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigtable/AppProfileDataBoostIsolationReadOnly:AppProfileDataBoostIsolationReadOnly":{"properties":{"computeBillingOwner":{"type":"string","description":"The Compute Billing Owner for this Data Boost App Profile.\nPossible values are: `HOST_PAYS`.\n"}},"type":"object","required":["computeBillingOwner"]},"gcp:bigtable/AppProfileSingleClusterRouting:AppProfileSingleClusterRouting":{"properties":{"allowTransactionalWrites":{"type":"boolean","description":"If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile.\nIt is unsafe to send these requests to the same table/row/column in multiple clusters.\n"},"clusterId":{"type":"string","description":"The cluster to which read/write requests should be routed.\n"}},"type":"object","required":["clusterId"]},"gcp:bigtable/AppProfileStandardIsolation:AppProfileStandardIsolation":{"properties":{"priority":{"type":"string","description":"The priority of requests sent using this app profile.\nPossible values are: `PRIORITY_LOW`, `PRIORITY_MEDIUM`, `PRIORITY_HIGH`.\n"}},"type":"object","required":["priority"]},"gcp:bigtable/AuthorizedViewSubsetView:AuthorizedViewSubsetView":{"properties":{"familySubsets":{"type":"array","items":{"$ref":"#/types/gcp:bigtable/AuthorizedViewSubsetViewFamilySubset:AuthorizedViewSubsetViewFamilySubset"},"description":"A group of column family subsets to be included in the authorized view. This can be specified multiple times. Structure is documented below.\n\n-----\n"},"rowPrefixes":{"type":"array","items":{"type":"string"},"description":"A list of Base64-encoded row prefixes to be included in the authorized view. To provide access to all rows, include the empty string as a prefix (\"\").\n"}},"type":"object"},"gcp:bigtable/AuthorizedViewSubsetViewFamilySubset:AuthorizedViewSubsetViewFamilySubset":{"properties":{"familyName":{"type":"string","description":"Name of the column family to be included in the authorized view. The specified column family must exist in the parent table of this authorized view.\n"},"qualifierPrefixes":{"type":"array","items":{"type":"string"},"description":"A list of Base64-encoded prefixes for qualifiers of the column family to be included in the authorized view.\nEvery qualifier starting with one of these prefixes is included in the authorized view. To provide access to all qualifiers, include the empty string as a prefix (\"\").\n"},"qualifiers":{"type":"array","items":{"type":"string"},"description":"A list of Base64-encoded individual exact column qualifiers of the column family to be included in the authorized view.\n"}},"type":"object","required":["familyName"]},"gcp:bigtable/GCPolicyMaxAge:GCPolicyMaxAge":{"properties":{"days":{"type":"integer","description":"Number of days before applying GC policy.\n","deprecationMessage":"Deprecated in favor of duration","willReplaceOnChanges":true},"duration":{"type":"string","description":"Duration before applying GC policy (ex. \"8h\"). This is required when \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e isn't set\n\n-----\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["days","duration"]}}},"gcp:bigtable/GCPolicyMaxVersion:GCPolicyMaxVersion":{"properties":{"number":{"type":"integer","description":"Number of version before applying the GC policy.\n\n-----\n\u003cspan pulumi-lang-nodejs=\"`gcRules`\" pulumi-lang-dotnet=\"`GcRules`\" pulumi-lang-go=\"`gcRules`\" pulumi-lang-python=\"`gc_rules`\" pulumi-lang-yaml=\"`gcRules`\" pulumi-lang-java=\"`gcRules`\"\u003e`gc_rules`\u003c/span\u003e include 2 fields:\n","willReplaceOnChanges":true}},"type":"object","required":["number"]},"gcp:bigtable/InstanceCluster:InstanceCluster":{"properties":{"autoscalingConfig":{"$ref":"#/types/gcp:bigtable/InstanceClusterAutoscalingConfig:InstanceClusterAutoscalingConfig","description":"[Autoscaling](https://cloud.google.com/bigtable/docs/autoscaling#parameters) config for the cluster, contains the following arguments:\n"},"clusterId":{"type":"string","description":"The ID of the Cloud Bigtable cluster. Must be 6-30 characters and must only contain hyphens, lowercase letters and numbers.\n"},"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster.\n"},"nodeScalingFactor":{"type":"string","description":"The node scaling factor for this cluster. One of `\"NodeScalingFactor1X\"` or `\"NodeScalingFactor2X\"`. Defaults to `\"NodeScalingFactor1X\"`. If `\"NodeScalingFactor2X\"` is specified, then \u003cspan pulumi-lang-nodejs=\"`numNodes`\" pulumi-lang-dotnet=\"`NumNodes`\" pulumi-lang-go=\"`numNodes`\" pulumi-lang-python=\"`num_nodes`\" pulumi-lang-yaml=\"`numNodes`\" pulumi-lang-java=\"`numNodes`\"\u003e`num_nodes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`minNodes`\" pulumi-lang-dotnet=\"`MinNodes`\" pulumi-lang-go=\"`minNodes`\" pulumi-lang-python=\"`min_nodes`\" pulumi-lang-yaml=\"`minNodes`\" pulumi-lang-java=\"`minNodes`\"\u003e`min_nodes`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`maxNodes`\" pulumi-lang-dotnet=\"`MaxNodes`\" pulumi-lang-go=\"`maxNodes`\" pulumi-lang-python=\"`max_nodes`\" pulumi-lang-yaml=\"`maxNodes`\" pulumi-lang-java=\"`maxNodes`\"\u003e`max_nodes`\u003c/span\u003e would need to be specified in increments of 2. This value cannot be updated after the cluster is created.\n\n\u003e **Note**: Removing the field entirely from the config will cause the provider to default to the backend value.\n\n!\u003e **Warning**: Modifying this field will cause the provider to delete/recreate the entire resource.\n\n!\u003e **Warning:** Modifying the \u003cspan pulumi-lang-nodejs=\"`storageType`\" pulumi-lang-dotnet=\"`StorageType`\" pulumi-lang-go=\"`storageType`\" pulumi-lang-python=\"`storage_type`\" pulumi-lang-yaml=\"`storageType`\" pulumi-lang-java=\"`storageType`\"\u003e`storage_type`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsKeyName`\" pulumi-lang-dotnet=\"`KmsKeyName`\" pulumi-lang-go=\"`kmsKeyName`\" pulumi-lang-python=\"`kms_key_name`\" pulumi-lang-yaml=\"`kmsKeyName`\" pulumi-lang-java=\"`kmsKeyName`\"\u003e`kms_key_name`\u003c/span\u003e of an existing cluster (by\n\u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e) will cause the provider to delete/recreate the entire\n\u003cspan pulumi-lang-nodejs=\"`gcp.bigtable.Instance`\" pulumi-lang-dotnet=\"`gcp.bigtable.Instance`\" pulumi-lang-go=\"`bigtable.Instance`\" pulumi-lang-python=\"`bigtable.Instance`\" pulumi-lang-yaml=\"`gcp.bigtable.Instance`\" pulumi-lang-java=\"`gcp.bigtable.Instance`\"\u003e`gcp.bigtable.Instance`\u003c/span\u003e resource. If these values are changing, use a new\n\u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e.\n"},"numNodes":{"type":"integer","description":"The number of nodes in the cluster.\nIf no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.\n"},"state":{"type":"string","description":"describes the current state of the cluster.\n"},"storageType":{"type":"string","description":"The storage type to use. One of `\"SSD\"` or\n`\"HDD\"`. Defaults to `\"SSD\"`.\n"},"zone":{"type":"string","description":"The zone to create the Cloud Bigtable cluster in. If it not\nspecified, the provider zone is used. Each cluster must have a different zone in the same region. Zones that support\nBigtable instances are noted on the [Cloud Bigtable locations page](https://cloud.google.com/bigtable/docs/locations).\n"}},"type":"object","required":["clusterId"],"language":{"nodejs":{"requiredOutputs":["clusterId","kmsKeyName","numNodes","state","zone"]}}},"gcp:bigtable/InstanceClusterAutoscalingConfig:InstanceClusterAutoscalingConfig":{"properties":{"cpuTarget":{"type":"integer","description":"The target CPU utilization for autoscaling, in percentage. Must be between 10 and 80.\n"},"maxNodes":{"type":"integer","description":"The maximum number of nodes for autoscaling.\n"},"minNodes":{"type":"integer","description":"The minimum number of nodes for autoscaling.\n"},"storageTarget":{"type":"integer","description":"The target storage utilization for autoscaling, in GB, for each node in a cluster. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16 TiB) for an HDD cluster. If not set, whatever is already set for the cluster will not change, or if the cluster is just being created, it will use the default value of 2560 for SSD clusters and 8192 for HDD clusters.\n\n!\u003e **Warning**: Only one of \u003cspan pulumi-lang-nodejs=\"`autoscalingConfig`\" pulumi-lang-dotnet=\"`AutoscalingConfig`\" pulumi-lang-go=\"`autoscalingConfig`\" pulumi-lang-python=\"`autoscaling_config`\" pulumi-lang-yaml=\"`autoscalingConfig`\" pulumi-lang-java=\"`autoscalingConfig`\"\u003e`autoscaling_config`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`numNodes`\" pulumi-lang-dotnet=\"`NumNodes`\" pulumi-lang-go=\"`numNodes`\" pulumi-lang-python=\"`num_nodes`\" pulumi-lang-yaml=\"`numNodes`\" pulumi-lang-java=\"`numNodes`\"\u003e`num_nodes`\u003c/span\u003e should be set for a cluster. If both are set, \u003cspan pulumi-lang-nodejs=\"`numNodes`\" pulumi-lang-dotnet=\"`NumNodes`\" pulumi-lang-go=\"`numNodes`\" pulumi-lang-python=\"`num_nodes`\" pulumi-lang-yaml=\"`numNodes`\" pulumi-lang-java=\"`numNodes`\"\u003e`num_nodes`\u003c/span\u003e is ignored. If none is set, autoscaling will be disabled and sized to the current node count.\n"}},"type":"object","required":["cpuTarget","maxNodes","minNodes"],"language":{"nodejs":{"requiredOutputs":["cpuTarget","maxNodes","minNodes","storageTarget"]}}},"gcp:bigtable/InstanceIamBindingCondition:InstanceIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\nFor \u003cspan pulumi-lang-nodejs=\"`gcp.bigtable.InstanceIamPolicy`\" pulumi-lang-dotnet=\"`gcp.bigtable.InstanceIamPolicy`\" pulumi-lang-go=\"`bigtable.InstanceIamPolicy`\" pulumi-lang-python=\"`bigtable.InstanceIamPolicy`\" pulumi-lang-yaml=\"`gcp.bigtable.InstanceIamPolicy`\" pulumi-lang-java=\"`gcp.bigtable.InstanceIamPolicy`\"\u003e`gcp.bigtable.InstanceIamPolicy`\u003c/span\u003e only:\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigtable/InstanceIamMemberCondition:InstanceIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\nFor \u003cspan pulumi-lang-nodejs=\"`gcp.bigtable.InstanceIamPolicy`\" pulumi-lang-dotnet=\"`gcp.bigtable.InstanceIamPolicy`\" pulumi-lang-go=\"`bigtable.InstanceIamPolicy`\" pulumi-lang-python=\"`bigtable.InstanceIamPolicy`\" pulumi-lang-yaml=\"`gcp.bigtable.InstanceIamPolicy`\" pulumi-lang-java=\"`gcp.bigtable.InstanceIamPolicy`\"\u003e`gcp.bigtable.InstanceIamPolicy`\u003c/span\u003e only:\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigtable/SchemaBundleProtoSchema:SchemaBundleProtoSchema":{"properties":{"protoDescriptors":{"type":"string","description":"Base64 encoded content of the file.\n"}},"type":"object","required":["protoDescriptors"]},"gcp:bigtable/TableAutomatedBackupPolicy:TableAutomatedBackupPolicy":{"properties":{"frequency":{"type":"string","description":"How frequently automated backups should occur.\n"},"retentionPeriod":{"type":"string","description":"How long the automated backups should be retained.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["frequency","retentionPeriod"]}}},"gcp:bigtable/TableColumnFamily:TableColumnFamily":{"properties":{"family":{"type":"string","description":"The name of the column family.\n"},"type":{"type":"string","description":"The type of the column family.\n"}},"type":"object","required":["family"]},"gcp:bigtable/TableIamBindingCondition:TableIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:bigtable/TableIamMemberCondition:TableIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:billing/AccountIamBindingCondition:AccountIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:billing/AccountIamMemberCondition:AccountIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:billing/BudgetAllUpdatesRule:BudgetAllUpdatesRule":{"properties":{"disableDefaultIamRecipients":{"type":"boolean","description":"Boolean. When set to true, disables default notifications sent\nwhen a threshold is exceeded. Default recipients are\nthose with Billing Account Administrators and Billing\nAccount Users IAM roles for the target account.\n"},"enableProjectLevelRecipients":{"type":"boolean","description":"When set to true, and when the budget has a single project configured,\nnotifications will be sent to project level recipients of that project.\nThis field will be ignored if the budget has multiple or no project configured.\nCurrently, project level recipients are the users with Owner role on a cloud project.\n"},"monitoringNotificationChannels":{"type":"array","items":{"type":"string"},"description":"The full resource name of a monitoring notification\nchannel in the form\nprojects/{project_id}/notificationChannels/{channel_id}.\nA maximum of 5 channels are allowed.\n"},"pubsubTopic":{"type":"string","description":"The name of the Cloud Pub/Sub topic where budget related\nmessages will be published, in the form\nprojects/{project_id}/topics/{topic_id}. Updates are sent\nat regular intervals to the topic.\n"},"schemaVersion":{"type":"string","description":"The schema version of the notification. Only \"1.0\" is\naccepted. It represents the JSON schema as defined in\nhttps://cloud.google.com/billing/docs/how-to/budgets#notification_format.\n"}},"type":"object"},"gcp:billing/BudgetAmount:BudgetAmount":{"properties":{"lastPeriodAmount":{"type":"boolean","description":"Configures a budget amount that is automatically set to 100% of\nlast period's spend.\nBoolean. Set value to true to use. Do not set to false, instead\nuse the \u003cspan pulumi-lang-nodejs=\"`specifiedAmount`\" pulumi-lang-dotnet=\"`SpecifiedAmount`\" pulumi-lang-go=\"`specifiedAmount`\" pulumi-lang-python=\"`specified_amount`\" pulumi-lang-yaml=\"`specifiedAmount`\" pulumi-lang-java=\"`specifiedAmount`\"\u003e`specified_amount`\u003c/span\u003e block.\n"},"specifiedAmount":{"$ref":"#/types/gcp:billing/BudgetAmountSpecifiedAmount:BudgetAmountSpecifiedAmount","description":"A specified amount to use as the budget. currencyCode is\noptional. If specified, it must match the currency of the\nbilling account. The currencyCode is provided on output.\nStructure is documented below.\n"}},"type":"object"},"gcp:billing/BudgetAmountSpecifiedAmount:BudgetAmountSpecifiedAmount":{"properties":{"currencyCode":{"type":"string","description":"The 3-letter currency code defined in ISO 4217.\n"},"nanos":{"type":"integer","description":"Number of nano (10^-9) units of the amount.\nThe value must be between -999,999,999 and +999,999,999\ninclusive. If units is positive, nanos must be positive or\nzero. If units is zero, nanos can be positive, zero, or\nnegative. If units is negative, nanos must be negative or\nzero. For example $-1.75 is represented as units=-1 and\nnanos=-750,000,000.\n"},"units":{"type":"string","description":"The whole units of the amount. For example if currencyCode\nis \"USD\", then 1 unit is one US dollar.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currencyCode"]}}},"gcp:billing/BudgetBudgetFilter:BudgetBudgetFilter":{"properties":{"calendarPeriod":{"type":"string","description":"A CalendarPeriod represents the abstract concept of a recurring time period that has a\ncanonical start. Grammatically, \"the start of the current CalendarPeriod\".\nAll calendar times begin at 12 AM US and Canadian Pacific Time (UTC-8).\nExactly one of \u003cspan pulumi-lang-nodejs=\"`calendarPeriod`\" pulumi-lang-dotnet=\"`CalendarPeriod`\" pulumi-lang-go=\"`calendarPeriod`\" pulumi-lang-python=\"`calendar_period`\" pulumi-lang-yaml=\"`calendarPeriod`\" pulumi-lang-java=\"`calendarPeriod`\"\u003e`calendar_period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customPeriod`\" pulumi-lang-dotnet=\"`CustomPeriod`\" pulumi-lang-go=\"`customPeriod`\" pulumi-lang-python=\"`custom_period`\" pulumi-lang-yaml=\"`customPeriod`\" pulumi-lang-java=\"`customPeriod`\"\u003e`custom_period`\u003c/span\u003e must be provided.\nPossible values are: `MONTH`, `QUARTER`, `YEAR`, `CALENDAR_PERIOD_UNSPECIFIED`.\n"},"creditTypes":{"type":"array","items":{"type":"string"},"description":"Optional. If creditTypesTreatment is INCLUDE_SPECIFIED_CREDITS,\nthis is a list of credit types to be subtracted from gross cost to determine the spend for threshold calculations. See a list of acceptable credit type values.\nIf creditTypesTreatment is not INCLUDE_SPECIFIED_CREDITS, this field must be empty.\n"},"creditTypesTreatment":{"type":"string","description":"Specifies how credits should be treated when determining spend\nfor threshold calculations.\nDefault value is `INCLUDE_ALL_CREDITS`.\nPossible values are: `INCLUDE_ALL_CREDITS`, `EXCLUDE_ALL_CREDITS`, `INCLUDE_SPECIFIED_CREDITS`.\n"},"customPeriod":{"$ref":"#/types/gcp:billing/BudgetBudgetFilterCustomPeriod:BudgetBudgetFilterCustomPeriod","description":"Specifies to track usage from any start date (required) to any end date (optional).\nThis time period is static, it does not recur.\nExactly one of \u003cspan pulumi-lang-nodejs=\"`calendarPeriod`\" pulumi-lang-dotnet=\"`CalendarPeriod`\" pulumi-lang-go=\"`calendarPeriod`\" pulumi-lang-python=\"`calendar_period`\" pulumi-lang-yaml=\"`calendarPeriod`\" pulumi-lang-java=\"`calendarPeriod`\"\u003e`calendar_period`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`customPeriod`\" pulumi-lang-dotnet=\"`CustomPeriod`\" pulumi-lang-go=\"`customPeriod`\" pulumi-lang-python=\"`custom_period`\" pulumi-lang-yaml=\"`customPeriod`\" pulumi-lang-java=\"`customPeriod`\"\u003e`custom_period`\u003c/span\u003e must be provided.\nStructure is documented below.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A single label and value pair specifying that usage from only\nthis set of labeled resources should be included in the budget.\n"},"projects":{"type":"array","items":{"type":"string"},"description":"A set of projects of the form projects/{project_number},\nspecifying that usage from only this set of projects should be\nincluded in the budget. If omitted, the report will include\nall usage for the billing account, regardless of which project\nthe usage occurred on.\n"},"resourceAncestors":{"type":"array","items":{"type":"string"},"description":"A set of folder and organization names of the form folders/{folderId} or organizations/{organizationId},\nspecifying that usage from only this set of folders and organizations should be included in the budget.\nIf omitted, the budget includes all usage that the billing account pays for. If the folder or organization\ncontains projects that are paid for by a different Cloud Billing account, the budget doesn't apply to those projects.\n"},"services":{"type":"array","items":{"type":"string"},"description":"A set of services of the form services/{service_id},\nspecifying that usage from only this set of services should be\nincluded in the budget. If omitted, the report will include\nusage for all the services. The service names are available\nthrough the Catalog API:\nhttps://cloud.google.com/billing/v1/how-tos/catalog-api.\n"},"subaccounts":{"type":"array","items":{"type":"string"},"description":"A set of subaccounts of the form billingAccounts/{account_id},\nspecifying that usage from only this set of subaccounts should\nbe included in the budget. If a subaccount is set to the name of\nthe parent account, usage from the parent account will be included.\nIf the field is omitted, the report will include usage from the parent\naccount and all subaccounts, if they exist.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["labels","services"]}}},"gcp:billing/BudgetBudgetFilterCustomPeriod:BudgetBudgetFilterCustomPeriod":{"properties":{"endDate":{"$ref":"#/types/gcp:billing/BudgetBudgetFilterCustomPeriodEndDate:BudgetBudgetFilterCustomPeriodEndDate","description":"Optional. The end date of the time period. Budgets with elapsed end date won't be processed.\nIf unset, specifies to track all usage incurred since the startDate.\nStructure is documented below.\n"},"startDate":{"$ref":"#/types/gcp:billing/BudgetBudgetFilterCustomPeriodStartDate:BudgetBudgetFilterCustomPeriodStartDate","description":"A start date is required. The start date must be after January 1, 2017.\nStructure is documented below.\n"}},"type":"object","required":["startDate"]},"gcp:billing/BudgetBudgetFilterCustomPeriodEndDate:BudgetBudgetFilterCustomPeriodEndDate":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999.\n"}},"type":"object","required":["day","month","year"]},"gcp:billing/BudgetBudgetFilterCustomPeriodStartDate:BudgetBudgetFilterCustomPeriodStartDate":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999.\n"}},"type":"object","required":["day","month","year"]},"gcp:billing/BudgetThresholdRule:BudgetThresholdRule":{"properties":{"spendBasis":{"type":"string","description":"The type of basis used to determine if spend has passed\nthe threshold.\nDefault value is `CURRENT_SPEND`.\nPossible values are: `CURRENT_SPEND`, `FORECASTED_SPEND`.\n"},"thresholdPercent":{"type":"number","description":"Send an alert when this threshold is exceeded. This is a\n1.0-based percentage, so 0.5 = 50%. Must be \u003e= 0.\n"}},"type":"object","required":["thresholdPercent"]},"gcp:binaryauthorization/AttestorAttestationAuthorityNote:AttestorAttestationAuthorityNote":{"properties":{"delegationServiceAccountEmail":{"type":"string","description":"(Output)\nThis field will contain the service account email address that\nthis Attestor will use as the principal when querying Container\nAnalysis. Attestor administrators must grant this service account\nthe IAM role needed to read attestations from the noteReference in\nContainer Analysis (containeranalysis.notes.occurrences.viewer).\nThis email address is fixed for the lifetime of the Attestor, but\ncallers should not make any other assumptions about the service\naccount email; future versions may use an email based on a\ndifferent naming pattern.\n"},"noteReference":{"type":"string","description":"The resource name of a ATTESTATION_AUTHORITY Note, created by the\nuser. If the Note is in a different project from the Attestor, it\nshould be specified in the format `projects/*/notes/*` (or the legacy\n`providers/*/notes/*`). This field may not be updated.\nAn attestation by this attestor is stored as a Container Analysis\nATTESTATION_AUTHORITY Occurrence that names a container image\nand that links to this Note.\n","willReplaceOnChanges":true},"publicKeys":{"type":"array","items":{"$ref":"#/types/gcp:binaryauthorization/AttestorAttestationAuthorityNotePublicKey:AttestorAttestationAuthorityNotePublicKey"},"description":"Public keys that verify attestations signed by this attestor. This\nfield may be updated.\nIf this field is non-empty, one of the specified public keys must\nverify that an attestation was signed by this attestor for the\nimage specified in the admission request.\nIf this field is empty, this attestor always returns that no valid\nattestations exist.\nStructure is documented below.\n"}},"type":"object","required":["noteReference"],"language":{"nodejs":{"requiredOutputs":["delegationServiceAccountEmail","noteReference"]}}},"gcp:binaryauthorization/AttestorAttestationAuthorityNotePublicKey:AttestorAttestationAuthorityNotePublicKey":{"properties":{"asciiArmoredPgpPublicKey":{"type":"string","description":"ASCII-armored representation of a PGP public key, as the\nentire output by the command\n`gpg --export --armor foo@example.com` (either LF or CRLF\nline endings). When using this field, id should be left\nblank. The BinAuthz API handlers will calculate the ID\nand fill it in automatically. BinAuthz computes this ID\nas the OpenPGP RFC4880 V4 fingerprint, represented as\nupper-case hex. If id is provided by the caller, it will\nbe overwritten by the API-calculated ID.\n"},"comment":{"type":"string","description":"A descriptive comment. This field may be updated.\n"},"id":{"type":"string","description":"The ID of this public key. Signatures verified by BinAuthz\nmust include the ID of the public key that can be used to\nverify them, and that ID must match the contents of this\nfield exactly. Additional restrictions on this field can\nbe imposed based on which public key type is encapsulated.\nSee the documentation on publicKey cases below for details.\n"},"pkixPublicKey":{"$ref":"#/types/gcp:binaryauthorization/AttestorAttestationAuthorityNotePublicKeyPkixPublicKey:AttestorAttestationAuthorityNotePublicKeyPkixPublicKey","description":"A raw PKIX SubjectPublicKeyInfo format public key.\nNOTE: id may be explicitly provided by the caller when using this\ntype of public key, but it MUST be a valid RFC3986 URI. If id is left\nblank, a default one will be computed based on the digest of the DER\nencoding of the public key.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"gcp:binaryauthorization/AttestorAttestationAuthorityNotePublicKeyPkixPublicKey:AttestorAttestationAuthorityNotePublicKeyPkixPublicKey":{"properties":{"publicKeyPem":{"type":"string","description":"A PEM-encoded public key, as described in\n`https://tools.ietf.org/html/rfc7468#section-13`\n"},"signatureAlgorithm":{"type":"string","description":"The signature algorithm used to verify a message against\na signature using this key. These signature algorithm must\nmatch the structure and any object identifiers encoded in\npublicKeyPem (i.e. this algorithm must match that of the\npublic key).\n"}},"type":"object"},"gcp:binaryauthorization/AttestorIamBindingCondition:AttestorIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:binaryauthorization/AttestorIamMemberCondition:AttestorIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:binaryauthorization/PolicyAdmissionWhitelistPattern:PolicyAdmissionWhitelistPattern":{"properties":{"namePattern":{"type":"string","description":"An image name pattern to whitelist, in the form\n`registry/path/to/image`. This supports a trailing * as a\nwildcard, but this is allowed only in text after the registry/\npart.\n"}},"type":"object","required":["namePattern"]},"gcp:binaryauthorization/PolicyClusterAdmissionRule:PolicyClusterAdmissionRule":{"properties":{"cluster":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"enforcementMode":{"type":"string","description":"The action when a pod creation is denied by the admission rule.\nPossible values are: `ENFORCED_BLOCK_AND_AUDIT_LOG`, `DRYRUN_AUDIT_LOG_ONLY`.\n"},"evaluationMode":{"type":"string","description":"How this admission rule will be evaluated.\nPossible values are: `ALWAYS_ALLOW`, `REQUIRE_ATTESTATION`, `ALWAYS_DENY`.\n"},"requireAttestationsBies":{"type":"array","items":{"type":"string"},"description":"The resource names of the attestors that must attest to a\ncontainer image. If the attestor is in a different project from the\npolicy, it should be specified in the format `projects/*/attestors/*`.\nEach attestor must exist before a policy can reference it. To add an\nattestor to a policy the principal issuing the policy change\nrequest must be able to read the attestor resource.\nNote: this field must be non-empty when the\u003cspan pulumi-lang-nodejs=\" evaluationMode \" pulumi-lang-dotnet=\" EvaluationMode \" pulumi-lang-go=\" evaluationMode \" pulumi-lang-python=\" evaluation_mode \" pulumi-lang-yaml=\" evaluationMode \" pulumi-lang-java=\" evaluationMode \"\u003e evaluation_mode \u003c/span\u003efield\nspecifies REQUIRE_ATTESTATION, otherwise it must be empty.\n"}},"type":"object","required":["cluster","enforcementMode","evaluationMode"]},"gcp:binaryauthorization/PolicyDefaultAdmissionRule:PolicyDefaultAdmissionRule":{"properties":{"enforcementMode":{"type":"string","description":"The action when a pod creation is denied by the admission rule.\nPossible values are: `ENFORCED_BLOCK_AND_AUDIT_LOG`, `DRYRUN_AUDIT_LOG_ONLY`.\n"},"evaluationMode":{"type":"string","description":"How this admission rule will be evaluated.\nPossible values are: `ALWAYS_ALLOW`, `REQUIRE_ATTESTATION`, `ALWAYS_DENY`.\n"},"requireAttestationsBies":{"type":"array","items":{"type":"string"},"description":"The resource names of the attestors that must attest to a\ncontainer image. If the attestor is in a different project from the\npolicy, it should be specified in the format `projects/*/attestors/*`.\nEach attestor must exist before a policy can reference it. To add an\nattestor to a policy the principal issuing the policy change\nrequest must be able to read the attestor resource.\nNote: this field must be non-empty when the\u003cspan pulumi-lang-nodejs=\" evaluationMode \" pulumi-lang-dotnet=\" EvaluationMode \" pulumi-lang-go=\" evaluationMode \" pulumi-lang-python=\" evaluation_mode \" pulumi-lang-yaml=\" evaluationMode \" pulumi-lang-java=\" evaluationMode \"\u003e evaluation_mode \u003c/span\u003efield\nspecifies REQUIRE_ATTESTATION, otherwise it must be empty.\n"}},"type":"object","required":["enforcementMode","evaluationMode"]},"gcp:blockchainnodeengine/BlockchainNodesConnectionInfo:BlockchainNodesConnectionInfo":{"properties":{"endpointInfos":{"type":"array","items":{"$ref":"#/types/gcp:blockchainnodeengine/BlockchainNodesConnectionInfoEndpointInfo:BlockchainNodesConnectionInfoEndpointInfo"},"description":"(Output)\nThe endpoint information through which to interact with a blockchain node.\nStructure is documented below.\n"},"serviceAttachment":{"type":"string","description":"(Output)\nA service attachment that exposes a node, and has the following format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment_name}\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointInfos","serviceAttachment"]}}},"gcp:blockchainnodeengine/BlockchainNodesConnectionInfoEndpointInfo:BlockchainNodesConnectionInfoEndpointInfo":{"properties":{"jsonRpcApiEndpoint":{"type":"string","description":"(Output)\nThe assigned URL for the node JSON-RPC API endpoint.\n"},"websocketsApiEndpoint":{"type":"string","description":"(Output)\nThe assigned URL for the node WebSockets API endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["jsonRpcApiEndpoint","websocketsApiEndpoint"]}}},"gcp:blockchainnodeengine/BlockchainNodesEthereumDetails:BlockchainNodesEthereumDetails":{"properties":{"additionalEndpoints":{"type":"array","items":{"$ref":"#/types/gcp:blockchainnodeengine/BlockchainNodesEthereumDetailsAdditionalEndpoint:BlockchainNodesEthereumDetailsAdditionalEndpoint"},"description":"(Output)\nUser-provided key-value pairs\nStructure is documented below.\n"},"apiEnableAdmin":{"type":"boolean","description":"Enables JSON-RPC access to functions in the admin namespace. Defaults to false.\n","willReplaceOnChanges":true},"apiEnableDebug":{"type":"boolean","description":"Enables JSON-RPC access to functions in the debug namespace. Defaults to false.\n","willReplaceOnChanges":true},"consensusClient":{"type":"string","description":"The consensus client\nPossible values are: `CONSENSUS_CLIENT_UNSPECIFIED`, `LIGHTHOUSE`.\n","willReplaceOnChanges":true},"executionClient":{"type":"string","description":"The execution client\nPossible values are: `EXECUTION_CLIENT_UNSPECIFIED`, `GETH`, `ERIGON`.\n","willReplaceOnChanges":true},"gethDetails":{"$ref":"#/types/gcp:blockchainnodeengine/BlockchainNodesEthereumDetailsGethDetails:BlockchainNodesEthereumDetailsGethDetails","description":"User-provided key-value pairs\nStructure is documented below.\n"},"network":{"type":"string","description":"The Ethereum environment being accessed.\nPossible values are: `MAINNET`, `TESTNET_GOERLI_PRATER`, `TESTNET_SEPOLIA`.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"The type of Ethereum node.\nPossible values are: `LIGHT`, `FULL`, `ARCHIVE`.\n","willReplaceOnChanges":true},"validatorConfig":{"$ref":"#/types/gcp:blockchainnodeengine/BlockchainNodesEthereumDetailsValidatorConfig:BlockchainNodesEthereumDetailsValidatorConfig","description":"Configuration for validator-related parameters on the beacon client, and for any managed validator client.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalEndpoints"]}}},"gcp:blockchainnodeengine/BlockchainNodesEthereumDetailsAdditionalEndpoint:BlockchainNodesEthereumDetailsAdditionalEndpoint":{"properties":{"beaconApiEndpoint":{"type":"string","description":"The assigned URL for the node's Beacon API endpoint.\n"},"beaconPrometheusMetricsApiEndpoint":{"type":"string","description":"The assigned URL for the node's Beacon Prometheus metrics endpoint.\n"},"executionClientPrometheusMetricsApiEndpoint":{"type":"string","description":"The assigned URL for the node's execution client's Prometheus metrics endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["beaconApiEndpoint","beaconPrometheusMetricsApiEndpoint","executionClientPrometheusMetricsApiEndpoint"]}}},"gcp:blockchainnodeengine/BlockchainNodesEthereumDetailsGethDetails:BlockchainNodesEthereumDetailsGethDetails":{"properties":{"garbageCollectionMode":{"type":"string","description":"Blockchain garbage collection modes. Only applicable when NodeType is FULL or ARCHIVE.\nPossible values are: `FULL`, `ARCHIVE`.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedEthereumDetailsAdditionalEndpoints\"\" pulumi-lang-dotnet=\"\"NestedEthereumDetailsAdditionalEndpoints\"\" pulumi-lang-go=\"\"nestedEthereumDetailsAdditionalEndpoints\"\" pulumi-lang-python=\"\"nested_ethereum_details_additional_endpoints\"\" pulumi-lang-yaml=\"\"nestedEthereumDetailsAdditionalEndpoints\"\" pulumi-lang-java=\"\"nestedEthereumDetailsAdditionalEndpoints\"\"\u003e\"nested_ethereum_details_additional_endpoints\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`additionalEndpoints`\" pulumi-lang-dotnet=\"`AdditionalEndpoints`\" pulumi-lang-go=\"`additionalEndpoints`\" pulumi-lang-python=\"`additional_endpoints`\" pulumi-lang-yaml=\"`additionalEndpoints`\" pulumi-lang-java=\"`additionalEndpoints`\"\u003e`additional_endpoints`\u003c/span\u003e block contains:\n","willReplaceOnChanges":true}},"type":"object"},"gcp:blockchainnodeengine/BlockchainNodesEthereumDetailsValidatorConfig:BlockchainNodesEthereumDetailsValidatorConfig":{"properties":{"mevRelayUrls":{"type":"array","items":{"type":"string"},"description":"URLs for MEV-relay services to use for block building. When set, a managed MEV-boost service is configured on the beacon client.\n"}},"type":"object"},"gcp:certificateauthority/AuthorityAccessUrl:AuthorityAccessUrl":{"properties":{"caCertificateAccessUrl":{"type":"string","description":"(Output)\nThe URL where this CertificateAuthority's CA certificate is published. This will only be\nset for CAs that have been activated.\n"},"crlAccessUrls":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe URL where this CertificateAuthority's CRLs are published. This will only be set for\nCAs that have been activated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["caCertificateAccessUrl","crlAccessUrls"]}}},"gcp:certificateauthority/AuthorityConfig:AuthorityConfig":{"properties":{"subjectConfig":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigSubjectConfig:AuthorityConfigSubjectConfig","description":"Specifies some of the values in a certificate that are related to the subject.\nStructure is documented below.\n","willReplaceOnChanges":true},"subjectKeyId":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigSubjectKeyId:AuthorityConfigSubjectKeyId","description":"When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..\nStructure is documented below.\n","willReplaceOnChanges":true},"x509Config":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509Config:AuthorityConfigX509Config","description":"Describes how some of the technical X.509 fields in a certificate should be populated.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["subjectConfig","x509Config"]},"gcp:certificateauthority/AuthorityConfigSubjectConfig:AuthorityConfigSubjectConfig":{"properties":{"subject":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigSubjectConfigSubject:AuthorityConfigSubjectConfigSubject","description":"Contains distinguished name fields such as the location and organization.\nStructure is documented below.\n","willReplaceOnChanges":true},"subjectAltName":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigSubjectConfigSubjectAltName:AuthorityConfigSubjectConfigSubjectAltName","description":"The subject alternative name fields.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["subject"]},"gcp:certificateauthority/AuthorityConfigSubjectConfigSubject:AuthorityConfigSubjectConfigSubject":{"properties":{"commonName":{"type":"string","description":"The common name of the distinguished name.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"The country code of the subject.\n","willReplaceOnChanges":true},"locality":{"type":"string","description":"The locality or city of the subject.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The organization of the subject.\n","willReplaceOnChanges":true},"organizationalUnit":{"type":"string","description":"The organizational unit of the subject.\n","willReplaceOnChanges":true},"postalCode":{"type":"string","description":"The postal code of the subject.\n","willReplaceOnChanges":true},"province":{"type":"string","description":"The province, territory, or regional state of the subject.\n","willReplaceOnChanges":true},"streetAddress":{"type":"string","description":"The street address of the subject.\n","willReplaceOnChanges":true}},"type":"object","required":["commonName"]},"gcp:certificateauthority/AuthorityConfigSubjectConfigSubjectAltName:AuthorityConfigSubjectConfigSubjectAltName":{"properties":{"dnsNames":{"type":"array","items":{"type":"string"},"description":"Contains only valid, fully-qualified host names.\n","willReplaceOnChanges":true},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 2822 E-mail addresses.\n","willReplaceOnChanges":true},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\n","willReplaceOnChanges":true},"uris":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 3986 URIs.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/AuthorityConfigSubjectKeyId:AuthorityConfigSubjectKeyId":{"properties":{"keyId":{"type":"string","description":"The value of the KeyId in lowercase hexadecimal.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedConfigX509Config\"\" pulumi-lang-dotnet=\"\"NestedConfigX509Config\"\" pulumi-lang-go=\"\"nestedConfigX509Config\"\" pulumi-lang-python=\"\"nested_config_x509_config\"\" pulumi-lang-yaml=\"\"nestedConfigX509Config\"\" pulumi-lang-java=\"\"nestedConfigX509Config\"\"\u003e\"nested_config_x509_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`x509Config`\" pulumi-lang-dotnet=\"`X509Config`\" pulumi-lang-go=\"`x509Config`\" pulumi-lang-python=\"`x509_config`\" pulumi-lang-yaml=\"`x509Config`\" pulumi-lang-java=\"`x509Config`\"\u003e`x509_config`\u003c/span\u003e block supports:\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/AuthorityConfigX509Config:AuthorityConfigX509Config":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigAdditionalExtension:AuthorityConfigX509ConfigAdditionalExtension"},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.\n","willReplaceOnChanges":true},"aiaOcspServers":{"type":"array","items":{"type":"string"},"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.\n","willReplaceOnChanges":true},"caOptions":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigCaOptions:AuthorityConfigX509ConfigCaOptions","description":"Describes values that are relevant in a CA certificate.\n","willReplaceOnChanges":true},"keyUsage":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsage:AuthorityConfigX509ConfigKeyUsage","description":"Indicates the intended use for keys that correspond to a certificate.\n","willReplaceOnChanges":true},"nameConstraints":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigNameConstraints:AuthorityConfigX509ConfigNameConstraints","description":"Describes the X.509 name constraints extension.\n","willReplaceOnChanges":true},"policyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigPolicyId:AuthorityConfigX509ConfigPolicyId"},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\n","willReplaceOnChanges":true}},"type":"object","required":["caOptions","keyUsage"]},"gcp:certificateauthority/AuthorityConfigX509ConfigAdditionalExtension:AuthorityConfigX509ConfigAdditionalExtension":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).\n","willReplaceOnChanges":true},"objectId":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigAdditionalExtensionObjectId:AuthorityConfigX509ConfigAdditionalExtensionObjectId","description":"Describes values that are relevant in a CA certificate.\nStructure is documented below.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.\n","willReplaceOnChanges":true}},"type":"object","required":["critical","objectId","value"]},"gcp:certificateauthority/AuthorityConfigX509ConfigAdditionalExtensionObjectId:AuthorityConfigX509ConfigAdditionalExtensionObjectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n","willReplaceOnChanges":true}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/AuthorityConfigX509ConfigCaOptions:AuthorityConfigX509ConfigCaOptions":{"properties":{"isCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.\n","willReplaceOnChanges":true},"maxIssuerPathLength":{"type":"integer","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail. Setting the value to 0\nrequires setting \u003cspan pulumi-lang-nodejs=\"`zeroMaxIssuerPathLength \" pulumi-lang-dotnet=\"`ZeroMaxIssuerPathLength \" pulumi-lang-go=\"`zeroMaxIssuerPathLength \" pulumi-lang-python=\"`zero_max_issuer_path_length \" pulumi-lang-yaml=\"`zeroMaxIssuerPathLength \" pulumi-lang-java=\"`zeroMaxIssuerPathLength \"\u003e`zero_max_issuer_path_length \u003c/span\u003e= true`.\n","willReplaceOnChanges":true},"nonCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to false.\nIf both \u003cspan pulumi-lang-nodejs=\"`isCa`\" pulumi-lang-dotnet=\"`IsCa`\" pulumi-lang-go=\"`isCa`\" pulumi-lang-python=\"`is_ca`\" pulumi-lang-yaml=\"`isCa`\" pulumi-lang-java=\"`isCa`\"\u003e`is_ca`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`nonCa`\" pulumi-lang-dotnet=\"`NonCa`\" pulumi-lang-go=\"`nonCa`\" pulumi-lang-python=\"`non_ca`\" pulumi-lang-yaml=\"`nonCa`\" pulumi-lang-java=\"`nonCa`\"\u003e`non_ca`\u003c/span\u003e are unset, the extension will be omitted from the CA certificate.\n","willReplaceOnChanges":true},"zeroMaxIssuerPathLength":{"type":"boolean","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nIf both \u003cspan pulumi-lang-nodejs=\"`maxIssuerPathLength`\" pulumi-lang-dotnet=\"`MaxIssuerPathLength`\" pulumi-lang-go=\"`maxIssuerPathLength`\" pulumi-lang-python=\"`max_issuer_path_length`\" pulumi-lang-yaml=\"`maxIssuerPathLength`\" pulumi-lang-java=\"`maxIssuerPathLength`\"\u003e`max_issuer_path_length`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zeroMaxIssuerPathLength`\" pulumi-lang-dotnet=\"`ZeroMaxIssuerPathLength`\" pulumi-lang-go=\"`zeroMaxIssuerPathLength`\" pulumi-lang-python=\"`zero_max_issuer_path_length`\" pulumi-lang-yaml=\"`zeroMaxIssuerPathLength`\" pulumi-lang-java=\"`zeroMaxIssuerPathLength`\"\u003e`zero_max_issuer_path_length`\u003c/span\u003e are unset,\nthe max path length will be omitted from the CA certificate.\n","willReplaceOnChanges":true}},"type":"object","required":["isCa"]},"gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsage:AuthorityConfigX509ConfigKeyUsage":{"properties":{"baseKeyUsage":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsageBaseKeyUsage:AuthorityConfigX509ConfigKeyUsageBaseKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n","willReplaceOnChanges":true},"extendedKeyUsage":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsageExtendedKeyUsage:AuthorityConfigX509ConfigKeyUsageExtendedKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n","willReplaceOnChanges":true},"unknownExtendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage:AuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["baseKeyUsage","extendedKeyUsage"]},"gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsageBaseKeyUsage:AuthorityConfigX509ConfigKeyUsageBaseKeyUsage":{"properties":{"certSign":{"type":"boolean","description":"The key may be used to sign certificates.\n","willReplaceOnChanges":true},"contentCommitment":{"type":"boolean","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".\n","willReplaceOnChanges":true},"crlSign":{"type":"boolean","description":"The key may be used sign certificate revocation lists.\n","willReplaceOnChanges":true},"dataEncipherment":{"type":"boolean","description":"The key may be used to encipher data.\n","willReplaceOnChanges":true},"decipherOnly":{"type":"boolean","description":"The key may be used to decipher only.\n","willReplaceOnChanges":true},"digitalSignature":{"type":"boolean","description":"The key may be used for digital signatures.\n","willReplaceOnChanges":true},"encipherOnly":{"type":"boolean","description":"The key may be used to encipher only.\n","willReplaceOnChanges":true},"keyAgreement":{"type":"boolean","description":"The key may be used in a key agreement protocol.\n","willReplaceOnChanges":true},"keyEncipherment":{"type":"boolean","description":"The key may be used to encipher other keys.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsageExtendedKeyUsage:AuthorityConfigX509ConfigKeyUsageExtendedKeyUsage":{"properties":{"clientAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.\n","willReplaceOnChanges":true},"codeSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".\n","willReplaceOnChanges":true},"emailProtection":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".\n","willReplaceOnChanges":true},"ocspSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".\n","willReplaceOnChanges":true},"serverAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.\n","willReplaceOnChanges":true},"timeStamping":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/AuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage:AuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n","willReplaceOnChanges":true}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/AuthorityConfigX509ConfigNameConstraints:AuthorityConfigX509ConfigNameConstraints":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not the name constraints are marked critical.\n","willReplaceOnChanges":true},"excludedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains excluded DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n","willReplaceOnChanges":true},"excludedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the excluded email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n","willReplaceOnChanges":true},"excludedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the excluded IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n","willReplaceOnChanges":true},"excludedUris":{"type":"array","items":{"type":"string"},"description":"Contains the excluded URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n","willReplaceOnChanges":true},"permittedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains permitted DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n","willReplaceOnChanges":true},"permittedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the permitted email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n","willReplaceOnChanges":true},"permittedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the permitted IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n","willReplaceOnChanges":true},"permittedUris":{"type":"array","items":{"type":"string"},"description":"Contains the permitted URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n","willReplaceOnChanges":true}},"type":"object","required":["critical"]},"gcp:certificateauthority/AuthorityConfigX509ConfigPolicyId:AuthorityConfigX509ConfigPolicyId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n","willReplaceOnChanges":true}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/AuthorityKeySpec:AuthorityKeySpec":{"properties":{"algorithm":{"type":"string","description":"The algorithm to use for creating a managed Cloud KMS key for a for a simplified\nexperience. All managed keys will be have their ProtectionLevel as HSM.\nPossible values are: `SIGN_HASH_ALGORITHM_UNSPECIFIED`, `RSA_PSS_2048_SHA256`, `RSA_PSS_3072_SHA256`, `RSA_PSS_4096_SHA256`, `RSA_PKCS1_2048_SHA256`, `RSA_PKCS1_3072_SHA256`, `RSA_PKCS1_4096_SHA256`, `EC_P256_SHA256`, `EC_P384_SHA384`.\n","willReplaceOnChanges":true},"cloudKmsKeyVersion":{"type":"string","description":"The resource name for an existing Cloud KMS CryptoKeyVersion in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/AuthoritySubordinateConfig:AuthoritySubordinateConfig":{"properties":{"certificateAuthority":{"type":"string","description":"This can refer to a CertificateAuthority that was used to create a\nsubordinate CertificateAuthority. This field is used for information\nand usability purposes only. The resource name is in the format\n`projects/*/locations/*/caPools/*/certificateAuthorities/*`.\n"},"pemIssuerChain":{"$ref":"#/types/gcp:certificateauthority/AuthoritySubordinateConfigPemIssuerChain:AuthoritySubordinateConfigPemIssuerChain","description":"Contains the PEM certificate chain for the issuers of this CertificateAuthority,\nbut not pem certificate for this CA itself.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pemIssuerChain"]}}},"gcp:certificateauthority/AuthoritySubordinateConfigPemIssuerChain:AuthoritySubordinateConfigPemIssuerChain":{"properties":{"pemCertificates":{"type":"array","items":{"type":"string"},"description":"Expected to be in leaf-to-root order according to RFC 5246.\n"}},"type":"object"},"gcp:certificateauthority/AuthorityUserDefinedAccessUrls:AuthorityUserDefinedAccessUrls":{"properties":{"aiaIssuingCertificateUrls":{"type":"array","items":{"type":"string"},"description":"A list of URLs where this CertificateAuthority's CA certificate is published that is specified by users.\n"},"crlAccessUrls":{"type":"array","items":{"type":"string"},"description":"A list of URLs where this CertificateAuthority's CRLs are published that is specified by users.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolEncryptionSpec:CaPoolEncryptionSpec":{"properties":{"cloudKmsKey":{"type":"string","description":"The resource name for an existing Cloud KMS key in the format\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIamBindingCondition:CaPoolIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:certificateauthority/CaPoolIamMemberCondition:CaPoolIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:certificateauthority/CaPoolIssuancePolicy:CaPoolIssuancePolicy":{"properties":{"allowedIssuanceModes":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyAllowedIssuanceModes:CaPoolIssuancePolicyAllowedIssuanceModes","description":"IssuanceModes specifies the allowed ways in which Certificates may be requested from this CaPool.\nStructure is documented below.\n"},"allowedKeyTypes":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyAllowedKeyType:CaPoolIssuancePolicyAllowedKeyType"},"description":"If any AllowedKeyType is specified, then the certificate request's public key must match one of the key types listed here.\nOtherwise, any key may be used. You can specify only one key type of those listed here.\nStructure is documented below.\n"},"backdateDuration":{"type":"string","description":"The duration to backdate all certificates issued from this CaPool. If not set, the\ncertificates will be issued with a\u003cspan pulumi-lang-nodejs=\" notBeforeTime \" pulumi-lang-dotnet=\" NotBeforeTime \" pulumi-lang-go=\" notBeforeTime \" pulumi-lang-python=\" not_before_time \" pulumi-lang-yaml=\" notBeforeTime \" pulumi-lang-java=\" notBeforeTime \"\u003e not_before_time \u003c/span\u003eof the issuance time (i.e. the current\ntime). If set, the certificates will be issued with a\u003cspan pulumi-lang-nodejs=\" notBeforeTime \" pulumi-lang-dotnet=\" NotBeforeTime \" pulumi-lang-go=\" notBeforeTime \" pulumi-lang-python=\" not_before_time \" pulumi-lang-yaml=\" notBeforeTime \" pulumi-lang-java=\" notBeforeTime \"\u003e not_before_time \u003c/span\u003eof the issuance\ntime minus the backdate_duration. The\u003cspan pulumi-lang-nodejs=\" notAfterTime \" pulumi-lang-dotnet=\" NotAfterTime \" pulumi-lang-go=\" notAfterTime \" pulumi-lang-python=\" not_after_time \" pulumi-lang-yaml=\" notAfterTime \" pulumi-lang-java=\" notAfterTime \"\u003e not_after_time \u003c/span\u003ewill be adjusted to preserve the\nrequested lifetime. The\u003cspan pulumi-lang-nodejs=\" backdateDuration \" pulumi-lang-dotnet=\" BackdateDuration \" pulumi-lang-go=\" backdateDuration \" pulumi-lang-python=\" backdate_duration \" pulumi-lang-yaml=\" backdateDuration \" pulumi-lang-java=\" backdateDuration \"\u003e backdate_duration \u003c/span\u003emust be less than or equal to 48 hours.\n"},"baselineValues":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValues:CaPoolIssuancePolicyBaselineValues","description":"A set of X.509 values that will be applied to all certificates issued through this CaPool. If a certificate request\nincludes conflicting values for the same properties, they will be overwritten by the values defined here. If a certificate\nrequest uses a CertificateTemplate that defines conflicting predefinedValues for the same properties, the certificate\nissuance request will fail.\nStructure is documented below.\n"},"identityConstraints":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyIdentityConstraints:CaPoolIssuancePolicyIdentityConstraints","description":"Describes constraints on identities that may appear in Certificates issued through this CaPool.\nIf this is omitted, then this CaPool will not add restrictions on a certificate's identity.\nStructure is documented below.\n"},"maximumLifetime":{"type":"string","description":"The maximum lifetime allowed for issued Certificates. Note that if the issuing CertificateAuthority\nexpires before a Certificate's requested maximumLifetime, the effective lifetime will be explicitly truncated to match it.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIssuancePolicyAllowedIssuanceModes:CaPoolIssuancePolicyAllowedIssuanceModes":{"properties":{"allowConfigBasedIssuance":{"type":"boolean","description":"When true, allows callers to create Certificates by specifying a CertificateConfig.\n"},"allowCsrBasedIssuance":{"type":"boolean","description":"When true, allows callers to create Certificates by specifying a CSR.\n"}},"type":"object","required":["allowConfigBasedIssuance","allowCsrBasedIssuance"]},"gcp:certificateauthority/CaPoolIssuancePolicyAllowedKeyType:CaPoolIssuancePolicyAllowedKeyType":{"properties":{"ellipticCurve":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyAllowedKeyTypeEllipticCurve:CaPoolIssuancePolicyAllowedKeyTypeEllipticCurve","description":"Represents an allowed Elliptic Curve key type.\nStructure is documented below.\n"},"rsa":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyAllowedKeyTypeRsa:CaPoolIssuancePolicyAllowedKeyTypeRsa","description":"Describes an RSA key that may be used in a Certificate issued from a CaPool.\nStructure is documented below.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIssuancePolicyAllowedKeyTypeEllipticCurve:CaPoolIssuancePolicyAllowedKeyTypeEllipticCurve":{"properties":{"signatureAlgorithm":{"type":"string","description":"The algorithm used.\nPossible values are: `ECDSA_P256`, `ECDSA_P384`, `EDDSA_25519`.\n"}},"type":"object","required":["signatureAlgorithm"]},"gcp:certificateauthority/CaPoolIssuancePolicyAllowedKeyTypeRsa:CaPoolIssuancePolicyAllowedKeyTypeRsa":{"properties":{"maxModulusSize":{"type":"string","description":"The maximum allowed RSA modulus size, in bits. If this is not set, or if set to zero, the\nservice will not enforce an explicit upper bound on RSA modulus sizes.\n"},"minModulusSize":{"type":"string","description":"The minimum allowed RSA modulus size, in bits. If this is not set, or if set to zero, the\nservice-level min RSA modulus size will continue to apply.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValues:CaPoolIssuancePolicyBaselineValues":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesAdditionalExtension:CaPoolIssuancePolicyBaselineValuesAdditionalExtension"},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.\nStructure is documented below.\n"},"aiaOcspServers":{"type":"array","items":{"type":"string"},"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.\n"},"caOptions":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesCaOptions:CaPoolIssuancePolicyBaselineValuesCaOptions","description":"Describes values that are relevant in a CA certificate.\nStructure is documented below.\n"},"keyUsage":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsage","description":"Indicates the intended use for keys that correspond to a certificate.\nStructure is documented below.\n"},"nameConstraints":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesNameConstraints:CaPoolIssuancePolicyBaselineValuesNameConstraints","description":"Describes the X.509 name constraints extension.\nStructure is documented below.\n"},"policyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesPolicyId:CaPoolIssuancePolicyBaselineValuesPolicyId"},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\nStructure is documented below.\n"}},"type":"object","required":["caOptions","keyUsage"]},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesAdditionalExtension:CaPoolIssuancePolicyBaselineValuesAdditionalExtension":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).\n"},"objectId":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesAdditionalExtensionObjectId:CaPoolIssuancePolicyBaselineValuesAdditionalExtensionObjectId","description":"Describes values that are relevant in a CA certificate.\nStructure is documented below.\n"},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.\n"}},"type":"object","required":["critical","objectId","value"]},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesAdditionalExtensionObjectId:CaPoolIssuancePolicyBaselineValuesAdditionalExtensionObjectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesCaOptions:CaPoolIssuancePolicyBaselineValuesCaOptions":{"properties":{"isCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.\n"},"maxIssuerPathLength":{"type":"integer","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.\n"},"nonCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to false.\nIf both \u003cspan pulumi-lang-nodejs=\"`isCa`\" pulumi-lang-dotnet=\"`IsCa`\" pulumi-lang-go=\"`isCa`\" pulumi-lang-python=\"`is_ca`\" pulumi-lang-yaml=\"`isCa`\" pulumi-lang-java=\"`isCa`\"\u003e`is_ca`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`nonCa`\" pulumi-lang-dotnet=\"`NonCa`\" pulumi-lang-go=\"`nonCa`\" pulumi-lang-python=\"`non_ca`\" pulumi-lang-yaml=\"`nonCa`\" pulumi-lang-java=\"`nonCa`\"\u003e`non_ca`\u003c/span\u003e are unset, the extension will be omitted from the CA certificate.\n"},"zeroMaxIssuerPathLength":{"type":"boolean","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nif both \u003cspan pulumi-lang-nodejs=\"`maxIssuerPathLength`\" pulumi-lang-dotnet=\"`MaxIssuerPathLength`\" pulumi-lang-go=\"`maxIssuerPathLength`\" pulumi-lang-python=\"`max_issuer_path_length`\" pulumi-lang-yaml=\"`maxIssuerPathLength`\" pulumi-lang-java=\"`maxIssuerPathLength`\"\u003e`max_issuer_path_length`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zeroMaxIssuerPathLength`\" pulumi-lang-dotnet=\"`ZeroMaxIssuerPathLength`\" pulumi-lang-go=\"`zeroMaxIssuerPathLength`\" pulumi-lang-python=\"`zero_max_issuer_path_length`\" pulumi-lang-yaml=\"`zeroMaxIssuerPathLength`\" pulumi-lang-java=\"`zeroMaxIssuerPathLength`\"\u003e`zero_max_issuer_path_length`\u003c/span\u003e are unset,\nthe max path length will be omitted from the CA certificate.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsage":{"properties":{"baseKeyUsage":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n"},"extendedKeyUsage":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n"},"unknownExtendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsageUnknownExtendedKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsageUnknownExtendedKeyUsage"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\nStructure is documented below.\n"}},"type":"object","required":["baseKeyUsage","extendedKeyUsage"]},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsage":{"properties":{"certSign":{"type":"boolean","description":"The key may be used to sign certificates.\n"},"contentCommitment":{"type":"boolean","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".\n"},"crlSign":{"type":"boolean","description":"The key may be used sign certificate revocation lists.\n"},"dataEncipherment":{"type":"boolean","description":"The key may be used to encipher data.\n"},"decipherOnly":{"type":"boolean","description":"The key may be used to decipher only.\n"},"digitalSignature":{"type":"boolean","description":"The key may be used for digital signatures.\n"},"encipherOnly":{"type":"boolean","description":"The key may be used to encipher only.\n"},"keyAgreement":{"type":"boolean","description":"The key may be used in a key agreement protocol.\n"},"keyEncipherment":{"type":"boolean","description":"The key may be used to encipher other keys.\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsage":{"properties":{"clientAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.\n"},"codeSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".\n"},"emailProtection":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".\n"},"ocspSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".\n"},"serverAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.\n"},"timeStamping":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".\n"}},"type":"object"},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesKeyUsageUnknownExtendedKeyUsage:CaPoolIssuancePolicyBaselineValuesKeyUsageUnknownExtendedKeyUsage":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesNameConstraints:CaPoolIssuancePolicyBaselineValuesNameConstraints":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not the name constraints are marked critical.\n"},"excludedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains excluded DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n"},"excludedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the excluded email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n"},"excludedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the excluded IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"excludedUris":{"type":"array","items":{"type":"string"},"description":"Contains the excluded URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n"},"permittedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains permitted DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n"},"permittedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the permitted email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n"},"permittedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the permitted IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"permittedUris":{"type":"array","items":{"type":"string"},"description":"Contains the permitted URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n"}},"type":"object","required":["critical"]},"gcp:certificateauthority/CaPoolIssuancePolicyBaselineValuesPolicyId:CaPoolIssuancePolicyBaselineValuesPolicyId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CaPoolIssuancePolicyIdentityConstraints:CaPoolIssuancePolicyIdentityConstraints":{"properties":{"allowSubjectAltNamesPassthrough":{"type":"boolean","description":"If this is set, the SubjectAltNames extension may be copied from a certificate request into the signed certificate.\nOtherwise, the requested SubjectAltNames will be discarded.\n"},"allowSubjectPassthrough":{"type":"boolean","description":"If this is set, the Subject field may be copied from a certificate request into the signed certificate.\nOtherwise, the requested Subject will be discarded.\n"},"celExpression":{"$ref":"#/types/gcp:certificateauthority/CaPoolIssuancePolicyIdentityConstraintsCelExpression:CaPoolIssuancePolicyIdentityConstraintsCelExpression","description":"A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a\ncertificate is signed. To see the full allowed syntax and some examples,\nsee https://cloud.google.com/certificate-authority-service/docs/cel-guide\nStructure is documented below.\n"}},"type":"object","required":["allowSubjectAltNamesPassthrough","allowSubjectPassthrough"]},"gcp:certificateauthority/CaPoolIssuancePolicyIdentityConstraintsCelExpression:CaPoolIssuancePolicyIdentityConstraintsCelExpression":{"properties":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.\n"}},"type":"object","required":["expression"]},"gcp:certificateauthority/CaPoolPublishingOptions:CaPoolPublishingOptions":{"properties":{"encodingFormat":{"type":"string","description":"Specifies the encoding format of each CertificateAuthority's CA\ncertificate and CRLs. If this is omitted, CA certificates and CRLs\nwill be published in PEM.\nPossible values are: `PEM`, `DER`.\n"},"publishCaCert":{"type":"boolean","description":"When true, publishes each CertificateAuthority's CA certificate and includes its URL in the \"Authority Information Access\"\nX.509 extension in all issued Certificates. If this is false, the CA certificate will not be published and the corresponding\nX.509 extension will not be written in issued certificates.\n"},"publishCrl":{"type":"boolean","description":"When true, publishes each CertificateAuthority's CRL and includes its URL in the \"CRL Distribution Points\" X.509 extension\nin all issued Certificates. If this is false, CRLs will not be published and the corresponding X.509 extension will not\nbe written in issued certificates. CRLs will expire 7 days from their creation. However, we will rebuild daily. CRLs are\nalso rebuilt shortly after a certificate is revoked.\n"}},"type":"object","required":["publishCaCert","publishCrl"]},"gcp:certificateauthority/CertificateCertificateDescription:CertificateCertificateDescription":{"properties":{"aiaIssuingCertificateUrls":{"type":"array","items":{"type":"string"},"description":"(Output)\nDescribes lists of issuer CA certificate URLs that appear in the \"Authority Information Access\" extension in the certificate.\n"},"authorityKeyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionAuthorityKeyId:CertificateCertificateDescriptionAuthorityKeyId"},"description":"(Output)\nIdentifies the subjectKeyId of the parent certificate, per https://tools.ietf.org/html/rfc5280#section-4.2.1.1\nStructure is documented below.\n"},"certFingerprints":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionCertFingerprint:CertificateCertificateDescriptionCertFingerprint"},"description":"(Output)\nThe hash of the x.509 certificate.\nStructure is documented below.\n"},"crlDistributionPoints":{"type":"array","items":{"type":"string"},"description":"(Output)\nDescribes a list of locations to obtain CRL information, i.e. the DistributionPoint.fullName described by https://tools.ietf.org/html/rfc5280#section-4.2.1.13\n"},"publicKeys":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionPublicKey:CertificateCertificateDescriptionPublicKey"},"description":"(Output)\nA PublicKey describes a public key.\nStructure is documented below.\n"},"subjectDescriptions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescription:CertificateCertificateDescriptionSubjectDescription"},"description":"(Output)\nDescribes some of the values in a certificate that are related to the subject and lifetime.\nStructure is documented below.\n"},"subjectKeyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionSubjectKeyId:CertificateCertificateDescriptionSubjectKeyId"},"description":"(Output)\nProvides a means of identifiying certificates that contain a particular public key, per https://tools.ietf.org/html/rfc5280#section-4.2.1.2.\nStructure is documented below.\n"},"x509Descriptions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509Description:CertificateCertificateDescriptionX509Description"},"description":"(Output)\nA structured description of the issued X.509 certificate.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["aiaIssuingCertificateUrls","authorityKeyIds","certFingerprints","crlDistributionPoints","publicKeys","subjectDescriptions","subjectKeyIds","x509Descriptions"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionAuthorityKeyId:CertificateCertificateDescriptionAuthorityKeyId":{"properties":{"keyId":{"type":"string","description":"(Output)\nOptional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["keyId"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionCertFingerprint:CertificateCertificateDescriptionCertFingerprint":{"properties":{"sha256Hash":{"type":"string","description":"(Output)\nThe SHA 256 hash, encoded in hexadecimal, of the DER x509 certificate.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256Hash"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionPublicKey:CertificateCertificateDescriptionPublicKey":{"properties":{"format":{"type":"string","description":"The format of the public key. Currently, only PEM format is supported.\nPossible values are: `KEY_TYPE_UNSPECIFIED`, `PEM`.\n"},"key":{"type":"string","description":"Required. A public key. When this is specified in a request, the padding and encoding can be any of the options described by the respective 'KeyType' value. When this is generated by the service, it will always be an RFC 5280 SubjectPublicKeyInfo structure containing an algorithm identifier and a key. A base64-encoded string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["format","key"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescription:CertificateCertificateDescriptionSubjectDescription":{"properties":{"hexSerialNumber":{"type":"string","description":"(Output)\nThe serial number encoded in lowercase hexadecimal.\n"},"lifetime":{"type":"string","description":"The desired lifetime of the CA certificate. Used to create the \"notBeforeTime\" and\n\"notAfterTime\" fields inside an X.509 certificate. A duration in seconds with up to nine\nfractional digits, terminated by 's'. Example: \"3.5s\".\n"},"notAfterTime":{"type":"string","description":"(Output)\nThe time at which the certificate expires.\n"},"notBeforeTime":{"type":"string","description":"(Output)\nThe time at which the certificate becomes valid.\n"},"subjectAltNames":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubjectAltName:CertificateCertificateDescriptionSubjectDescriptionSubjectAltName"},"description":"(Output)\nThe subject alternative name fields.\nStructure is documented below.\n"},"subjects":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubject:CertificateCertificateDescriptionSubjectDescriptionSubject"},"description":"(Output)\nContains distinguished name fields such as the location and organization.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hexSerialNumber","lifetime","notAfterTime","notBeforeTime","subjectAltNames","subjects"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubject:CertificateCertificateDescriptionSubjectDescriptionSubject":{"properties":{"commonName":{"type":"string","description":"The common name of the distinguished name.\n"},"countryCode":{"type":"string","description":"The country code of the subject.\n"},"locality":{"type":"string","description":"The locality or city of the subject.\n"},"organization":{"type":"string","description":"The organization of the subject.\n"},"organizationalUnit":{"type":"string","description":"The organizational unit of the subject.\n"},"postalCode":{"type":"string","description":"The postal code of the subject.\n"},"province":{"type":"string","description":"The province, territory, or regional state of the subject.\n"},"streetAddress":{"type":"string","description":"The street address of the subject.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["commonName","countryCode","locality","organization","organizationalUnit","postalCode","province","streetAddress"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubjectAltName:CertificateCertificateDescriptionSubjectDescriptionSubjectAltName":{"properties":{"customSans":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSan:CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSan"},"description":"(Output)\nContains additional subject alternative name values.\nStructure is documented below.\n"},"dnsNames":{"type":"array","items":{"type":"string"},"description":"Contains only valid, fully-qualified host names.\n"},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 2822 E-mail addresses.\n"},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\n"},"uris":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 3986 URIs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customSans","dnsNames","emailAddresses","ipAddresses","uris"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSan:CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSan":{"properties":{"critical":{"type":"boolean","description":"(Output)\nIndicates whether or not the name constraints are marked critical.\n"},"obectIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSanObectId:CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSanObectId"},"description":"(Output)\nDescribes how some of the technical fields in a certificate should be populated.\nStructure is documented below.\n"},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["critical","obectIds","value"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSanObectId:CertificateCertificateDescriptionSubjectDescriptionSubjectAltNameCustomSanObectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"(Output)\nAn ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["objectIdPaths"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionSubjectKeyId:CertificateCertificateDescriptionSubjectKeyId":{"properties":{"keyId":{"type":"string","description":"The value of the KeyId in lowercase hexadecimal.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["keyId"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509Description:CertificateCertificateDescriptionX509Description":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionAdditionalExtension:CertificateCertificateDescriptionX509DescriptionAdditionalExtension"},"description":"(Output)\nDescribes custom X.509 extensions.\nStructure is documented below.\n"},"aiaOcspServers":{"type":"array","items":{"type":"string"},"description":"(Output)\nDescribes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.\n"},"caOptions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionCaOption:CertificateCertificateDescriptionX509DescriptionCaOption"},"description":"(Output)\nDescribes values that are relevant in a CA certificate.\nStructure is documented below.\n"},"keyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsage"},"description":"(Output)\nIndicates the intended use for keys that correspond to a certificate.\nStructure is documented below.\n"},"nameConstraints":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionNameConstraint:CertificateCertificateDescriptionX509DescriptionNameConstraint"},"description":"(Output)\nDescribes the X.509 name constraints extension.\nStructure is documented below.\n"},"policyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionPolicyId:CertificateCertificateDescriptionX509DescriptionPolicyId"},"description":"(Output)\nDescribes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalExtensions","aiaOcspServers","caOptions","keyUsages","nameConstraints","policyIds"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionAdditionalExtension:CertificateCertificateDescriptionX509DescriptionAdditionalExtension":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).\n"},"objectIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionAdditionalExtensionObjectId:CertificateCertificateDescriptionX509DescriptionAdditionalExtensionObjectId"},"description":"Describes values that are relevant in a CA certificate.\nStructure is documented below.\n"},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["critical","objectIds"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionAdditionalExtensionObjectId:CertificateCertificateDescriptionX509DescriptionAdditionalExtensionObjectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["objectIdPaths"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionCaOption:CertificateCertificateDescriptionX509DescriptionCaOption":{"properties":{"isCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.\n"},"maxIssuerPathLength":{"type":"integer","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isCa","maxIssuerPathLength"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsage":{"properties":{"baseKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsageBaseKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsageBaseKeyUsage"},"description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n"},"extendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsageExtendedKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsageExtendedKeyUsage"},"description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n"},"unknownExtendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsageUnknownExtendedKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsageUnknownExtendedKeyUsage"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["baseKeyUsages","extendedKeyUsages","unknownExtendedKeyUsages"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsageBaseKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsageBaseKeyUsage":{"properties":{"certSign":{"type":"boolean","description":"The key may be used to sign certificates.\n"},"contentCommitment":{"type":"boolean","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".\n"},"crlSign":{"type":"boolean","description":"The key may be used sign certificate revocation lists.\n"},"dataEncipherment":{"type":"boolean","description":"The key may be used to encipher data.\n"},"decipherOnly":{"type":"boolean","description":"The key may be used to decipher only.\n"},"digitalSignature":{"type":"boolean","description":"The key may be used for digital signatures.\n"},"encipherOnly":{"type":"boolean","description":"The key may be used to encipher only.\n"},"keyAgreement":{"type":"boolean","description":"The key may be used in a key agreement protocol.\n"},"keyEncipherment":{"type":"boolean","description":"The key may be used to encipher other keys.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["certSign","contentCommitment","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyEncipherment"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsageExtendedKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsageExtendedKeyUsage":{"properties":{"clientAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.\n"},"codeSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".\n"},"emailProtection":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".\n"},"ocspSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".\n"},"serverAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.\n"},"timeStamping":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientAuth","codeSigning","emailProtection","ocspSigning","serverAuth","timeStamping"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionKeyUsageUnknownExtendedKeyUsage:CertificateCertificateDescriptionX509DescriptionKeyUsageUnknownExtendedKeyUsage":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["objectIdPaths"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionNameConstraint:CertificateCertificateDescriptionX509DescriptionNameConstraint":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not the name constraints are marked critical.\n"},"excludedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains excluded DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n"},"excludedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the excluded email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n"},"excludedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the excluded IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"excludedUris":{"type":"array","items":{"type":"string"},"description":"Contains the excluded URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n"},"permittedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains permitted DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n"},"permittedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the permitted email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n"},"permittedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the permitted IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"permittedUris":{"type":"array","items":{"type":"string"},"description":"Contains the permitted URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["critical","excludedDnsNames","excludedEmailAddresses","excludedIpRanges","excludedUris","permittedDnsNames","permittedEmailAddresses","permittedIpRanges","permittedUris"]}}},"gcp:certificateauthority/CertificateCertificateDescriptionX509DescriptionPolicyId:CertificateCertificateDescriptionX509DescriptionPolicyId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["objectIdPaths"]}}},"gcp:certificateauthority/CertificateConfig:CertificateConfig":{"properties":{"publicKey":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigPublicKey:CertificateConfigPublicKey","description":"A PublicKey describes a public key.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedConfigX509Config\"\" pulumi-lang-dotnet=\"\"NestedConfigX509Config\"\" pulumi-lang-go=\"\"nestedConfigX509Config\"\" pulumi-lang-python=\"\"nested_config_x509_config\"\" pulumi-lang-yaml=\"\"nestedConfigX509Config\"\" pulumi-lang-java=\"\"nestedConfigX509Config\"\"\u003e\"nested_config_x509_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`x509Config`\" pulumi-lang-dotnet=\"`X509Config`\" pulumi-lang-go=\"`x509Config`\" pulumi-lang-python=\"`x509_config`\" pulumi-lang-yaml=\"`x509Config`\" pulumi-lang-java=\"`x509Config`\"\u003e`x509_config`\u003c/span\u003e block supports:\n","willReplaceOnChanges":true},"subjectConfig":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigSubjectConfig:CertificateConfigSubjectConfig","description":"Specifies some of the values in a certificate that are related to the subject.\nStructure is documented below.\n","willReplaceOnChanges":true},"subjectKeyId":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigSubjectKeyId:CertificateConfigSubjectKeyId","description":"When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..\nStructure is documented below.\n","willReplaceOnChanges":true},"x509Config":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509Config:CertificateConfigX509Config","description":"Describes how some of the technical X.509 fields in a certificate should be populated.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["publicKey","subjectConfig","x509Config"]},"gcp:certificateauthority/CertificateConfigPublicKey:CertificateConfigPublicKey":{"properties":{"format":{"type":"string","description":"The format of the public key. Currently, only PEM format is supported.\nPossible values are: `KEY_TYPE_UNSPECIFIED`, `PEM`.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"Required. A public key. When this is specified in a request, the padding and encoding can be any of the options described by the respective 'KeyType' value. When this is generated by the service, it will always be an RFC 5280 SubjectPublicKeyInfo structure containing an algorithm identifier and a key. A base64-encoded string.\n","willReplaceOnChanges":true}},"type":"object","required":["format"]},"gcp:certificateauthority/CertificateConfigSubjectConfig:CertificateConfigSubjectConfig":{"properties":{"subject":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigSubjectConfigSubject:CertificateConfigSubjectConfigSubject","description":"Contains distinguished name fields such as the location and organization.\nStructure is documented below.\n","willReplaceOnChanges":true},"subjectAltName":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigSubjectConfigSubjectAltName:CertificateConfigSubjectConfigSubjectAltName","description":"The subject alternative name fields.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["subject"]},"gcp:certificateauthority/CertificateConfigSubjectConfigSubject:CertificateConfigSubjectConfigSubject":{"properties":{"commonName":{"type":"string","description":"The common name of the distinguished name.\n","willReplaceOnChanges":true},"countryCode":{"type":"string","description":"The country code of the subject.\n","willReplaceOnChanges":true},"locality":{"type":"string","description":"The locality or city of the subject.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The organization of the subject.\n","willReplaceOnChanges":true},"organizationalUnit":{"type":"string","description":"The organizational unit of the subject.\n","willReplaceOnChanges":true},"postalCode":{"type":"string","description":"The postal code of the subject.\n","willReplaceOnChanges":true},"province":{"type":"string","description":"The province, territory, or regional state of the subject.\n","willReplaceOnChanges":true},"streetAddress":{"type":"string","description":"The street address of the subject.\n","willReplaceOnChanges":true}},"type":"object","required":["commonName","organization"]},"gcp:certificateauthority/CertificateConfigSubjectConfigSubjectAltName:CertificateConfigSubjectConfigSubjectAltName":{"properties":{"dnsNames":{"type":"array","items":{"type":"string"},"description":"Contains only valid, fully-qualified host names.\n","willReplaceOnChanges":true},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 2822 E-mail addresses.\n","willReplaceOnChanges":true},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\n","willReplaceOnChanges":true},"uris":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 3986 URIs.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/CertificateConfigSubjectKeyId:CertificateConfigSubjectKeyId":{"properties":{"keyId":{"type":"string","description":"The value of the KeyId in lowercase hexadecimal.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/CertificateConfigX509Config:CertificateConfigX509Config":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigAdditionalExtension:CertificateConfigX509ConfigAdditionalExtension"},"description":"(Output)\nDescribes custom X.509 extensions.\nStructure is documented below.\n","willReplaceOnChanges":true},"aiaOcspServers":{"type":"array","items":{"type":"string"},"description":"(Output)\nDescribes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.\n","willReplaceOnChanges":true},"caOptions":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigCaOptions:CertificateConfigX509ConfigCaOptions","description":"(Output)\nDescribes values that are relevant in a CA certificate.\nStructure is documented below.\n","willReplaceOnChanges":true},"keyUsage":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigKeyUsage:CertificateConfigX509ConfigKeyUsage","description":"(Output)\nIndicates the intended use for keys that correspond to a certificate.\nStructure is documented below.\n","willReplaceOnChanges":true},"nameConstraints":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigNameConstraints:CertificateConfigX509ConfigNameConstraints","description":"(Output)\nDescribes the X.509 name constraints extension.\nStructure is documented below.\n","willReplaceOnChanges":true},"policyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigPolicyId:CertificateConfigX509ConfigPolicyId"},"description":"(Output)\nDescribes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["keyUsage"]},"gcp:certificateauthority/CertificateConfigX509ConfigAdditionalExtension:CertificateConfigX509ConfigAdditionalExtension":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).\n","willReplaceOnChanges":true},"objectId":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigAdditionalExtensionObjectId:CertificateConfigX509ConfigAdditionalExtensionObjectId","description":"Describes values that are relevant in a CA certificate.\nStructure is documented below.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.\n","willReplaceOnChanges":true}},"type":"object","required":["critical","objectId","value"]},"gcp:certificateauthority/CertificateConfigX509ConfigAdditionalExtensionObjectId:CertificateConfigX509ConfigAdditionalExtensionObjectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n","willReplaceOnChanges":true}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CertificateConfigX509ConfigCaOptions:CertificateConfigX509ConfigCaOptions":{"properties":{"isCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.\n","willReplaceOnChanges":true},"maxIssuerPathLength":{"type":"integer","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.\n","willReplaceOnChanges":true},"nonCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to false.\nIf both \u003cspan pulumi-lang-nodejs=\"`isCa`\" pulumi-lang-dotnet=\"`IsCa`\" pulumi-lang-go=\"`isCa`\" pulumi-lang-python=\"`is_ca`\" pulumi-lang-yaml=\"`isCa`\" pulumi-lang-java=\"`isCa`\"\u003e`is_ca`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`nonCa`\" pulumi-lang-dotnet=\"`NonCa`\" pulumi-lang-go=\"`nonCa`\" pulumi-lang-python=\"`non_ca`\" pulumi-lang-yaml=\"`nonCa`\" pulumi-lang-java=\"`nonCa`\"\u003e`non_ca`\u003c/span\u003e are unset, the extension will be omitted from the CA certificate.\n","willReplaceOnChanges":true},"zeroMaxIssuerPathLength":{"type":"boolean","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nif both \u003cspan pulumi-lang-nodejs=\"`maxIssuerPathLength`\" pulumi-lang-dotnet=\"`MaxIssuerPathLength`\" pulumi-lang-go=\"`maxIssuerPathLength`\" pulumi-lang-python=\"`max_issuer_path_length`\" pulumi-lang-yaml=\"`maxIssuerPathLength`\" pulumi-lang-java=\"`maxIssuerPathLength`\"\u003e`max_issuer_path_length`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zeroMaxIssuerPathLength`\" pulumi-lang-dotnet=\"`ZeroMaxIssuerPathLength`\" pulumi-lang-go=\"`zeroMaxIssuerPathLength`\" pulumi-lang-python=\"`zero_max_issuer_path_length`\" pulumi-lang-yaml=\"`zeroMaxIssuerPathLength`\" pulumi-lang-java=\"`zeroMaxIssuerPathLength`\"\u003e`zero_max_issuer_path_length`\u003c/span\u003e are unset,\nthe max path length will be omitted from the CA certificate.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/CertificateConfigX509ConfigKeyUsage:CertificateConfigX509ConfigKeyUsage":{"properties":{"baseKeyUsage":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigKeyUsageBaseKeyUsage:CertificateConfigX509ConfigKeyUsageBaseKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n","willReplaceOnChanges":true},"extendedKeyUsage":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigKeyUsageExtendedKeyUsage:CertificateConfigX509ConfigKeyUsageExtendedKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n","willReplaceOnChanges":true},"unknownExtendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateConfigX509ConfigKeyUsageUnknownExtendedKeyUsage:CertificateConfigX509ConfigKeyUsageUnknownExtendedKeyUsage"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["baseKeyUsage","extendedKeyUsage"]},"gcp:certificateauthority/CertificateConfigX509ConfigKeyUsageBaseKeyUsage:CertificateConfigX509ConfigKeyUsageBaseKeyUsage":{"properties":{"certSign":{"type":"boolean","description":"The key may be used to sign certificates.\n","willReplaceOnChanges":true},"contentCommitment":{"type":"boolean","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".\n","willReplaceOnChanges":true},"crlSign":{"type":"boolean","description":"The key may be used sign certificate revocation lists.\n","willReplaceOnChanges":true},"dataEncipherment":{"type":"boolean","description":"The key may be used to encipher data.\n","willReplaceOnChanges":true},"decipherOnly":{"type":"boolean","description":"The key may be used to decipher only.\n","willReplaceOnChanges":true},"digitalSignature":{"type":"boolean","description":"The key may be used for digital signatures.\n","willReplaceOnChanges":true},"encipherOnly":{"type":"boolean","description":"The key may be used to encipher only.\n","willReplaceOnChanges":true},"keyAgreement":{"type":"boolean","description":"The key may be used in a key agreement protocol.\n","willReplaceOnChanges":true},"keyEncipherment":{"type":"boolean","description":"The key may be used to encipher other keys.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/CertificateConfigX509ConfigKeyUsageExtendedKeyUsage:CertificateConfigX509ConfigKeyUsageExtendedKeyUsage":{"properties":{"clientAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.\n","willReplaceOnChanges":true},"codeSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".\n","willReplaceOnChanges":true},"emailProtection":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".\n","willReplaceOnChanges":true},"ocspSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".\n","willReplaceOnChanges":true},"serverAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.\n","willReplaceOnChanges":true},"timeStamping":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificateauthority/CertificateConfigX509ConfigKeyUsageUnknownExtendedKeyUsage:CertificateConfigX509ConfigKeyUsageUnknownExtendedKeyUsage":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n","willReplaceOnChanges":true}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CertificateConfigX509ConfigNameConstraints:CertificateConfigX509ConfigNameConstraints":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not the name constraints are marked critical.\n","willReplaceOnChanges":true},"excludedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains excluded DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n","willReplaceOnChanges":true},"excludedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the excluded email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n","willReplaceOnChanges":true},"excludedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the excluded IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n","willReplaceOnChanges":true},"excludedUris":{"type":"array","items":{"type":"string"},"description":"Contains the excluded URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n","willReplaceOnChanges":true},"permittedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains permitted DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n","willReplaceOnChanges":true},"permittedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the permitted email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n","willReplaceOnChanges":true},"permittedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the permitted IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n","willReplaceOnChanges":true},"permittedUris":{"type":"array","items":{"type":"string"},"description":"Contains the permitted URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n","willReplaceOnChanges":true}},"type":"object","required":["critical"]},"gcp:certificateauthority/CertificateConfigX509ConfigPolicyId:CertificateConfigX509ConfigPolicyId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n","willReplaceOnChanges":true}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CertificateRevocationDetail:CertificateRevocationDetail":{"properties":{"revocationState":{"type":"string","description":"(Output)\nIndicates why a Certificate was revoked.\n"},"revocationTime":{"type":"string","description":"(Output)\nThe time at which this Certificate was revoked.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["revocationState","revocationTime"]}}},"gcp:certificateauthority/CertificateTemplateIamBindingCondition:CertificateTemplateIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:certificateauthority/CertificateTemplateIamMemberCondition:CertificateTemplateIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:certificateauthority/CertificateTemplateIdentityConstraints:CertificateTemplateIdentityConstraints":{"properties":{"allowSubjectAltNamesPassthrough":{"type":"boolean","description":"Required. If this is true, the SubjectAltNames extension may be copied from a certificate request into the signed certificate. Otherwise, the requested SubjectAltNames will be discarded.\n"},"allowSubjectPassthrough":{"type":"boolean","description":"Required. If this is true, the Subject field may be copied from a certificate request into the signed certificate. Otherwise, the requested Subject will be discarded.\n"},"celExpression":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplateIdentityConstraintsCelExpression:CertificateTemplateIdentityConstraintsCelExpression","description":"Optional. A CEL expression that may be used to validate the resolved X.509 Subject and/or Subject Alternative Name before a certificate is signed. To see the full allowed syntax and some examples, see https://cloud.google.com/certificate-authority-service/docs/using-cel\nStructure is documented below.\n"}},"type":"object","required":["allowSubjectAltNamesPassthrough","allowSubjectPassthrough"]},"gcp:certificateauthority/CertificateTemplateIdentityConstraintsCelExpression:CertificateTemplateIdentityConstraintsCelExpression":{"properties":{"description":{"type":"string","description":"Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.\n"},"title":{"type":"string","description":"Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePassthroughExtensions:CertificateTemplatePassthroughExtensions":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePassthroughExtensionsAdditionalExtension:CertificateTemplatePassthroughExtensionsAdditionalExtension"},"description":"Optional. A set of ObjectIds identifying custom X.509 extensions. Will be combined with\u003cspan pulumi-lang-nodejs=\" knownExtensions \" pulumi-lang-dotnet=\" KnownExtensions \" pulumi-lang-go=\" knownExtensions \" pulumi-lang-python=\" known_extensions \" pulumi-lang-yaml=\" knownExtensions \" pulumi-lang-java=\" knownExtensions \"\u003e known_extensions \u003c/span\u003eto determine the full set of X.509 extensions.\nStructure is documented below.\n"},"knownExtensions":{"type":"array","items":{"type":"string"},"description":"Optional. A set of named X.509 extensions. Will be combined with\u003cspan pulumi-lang-nodejs=\" additionalExtensions \" pulumi-lang-dotnet=\" AdditionalExtensions \" pulumi-lang-go=\" additionalExtensions \" pulumi-lang-python=\" additional_extensions \" pulumi-lang-yaml=\" additionalExtensions \" pulumi-lang-java=\" additionalExtensions \"\u003e additional_extensions \u003c/span\u003eto determine the full set of X.509 extensions.\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePassthroughExtensionsAdditionalExtension:CertificateTemplatePassthroughExtensionsAdditionalExtension":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"Required. The parts of an OID path. The most significant parts of the path come first.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CertificateTemplatePredefinedValues:CertificateTemplatePredefinedValues":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesAdditionalExtension:CertificateTemplatePredefinedValuesAdditionalExtension"},"description":"Optional. Describes custom X.509 extensions.\nStructure is documented below.\n"},"aiaOcspServers":{"type":"array","items":{"type":"string"},"description":"Optional. Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the \"Authority Information Access\" extension in the certificate.\n"},"caOptions":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesCaOptions:CertificateTemplatePredefinedValuesCaOptions","description":"Optional. Describes options in this X509Parameters that are relevant in a CA certificate.\nStructure is documented below.\n"},"keyUsage":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsage:CertificateTemplatePredefinedValuesKeyUsage","description":"Optional. Indicates the intended use for keys that correspond to a certificate.\nStructure is documented below.\n"},"nameConstraints":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesNameConstraints:CertificateTemplatePredefinedValuesNameConstraints","description":"Describes the X.509 name constraints extension.\nStructure is documented below.\n"},"policyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesPolicyId:CertificateTemplatePredefinedValuesPolicyId"},"description":"Optional. Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\nStructure is documented below.\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePredefinedValuesAdditionalExtension:CertificateTemplatePredefinedValuesAdditionalExtension":{"properties":{"critical":{"type":"boolean","description":"Optional. Indicates whether or not this extension is critical (i.e., if the client does not know how to handle this extension, the client should consider this to be an error).\n"},"objectId":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesAdditionalExtensionObjectId:CertificateTemplatePredefinedValuesAdditionalExtensionObjectId","description":"Required. The OID for this X.509 extension.\nStructure is documented below.\n"},"value":{"type":"string","description":"Required. The value of this X.509 extension.\n"}},"type":"object","required":["objectId","value"]},"gcp:certificateauthority/CertificateTemplatePredefinedValuesAdditionalExtensionObjectId:CertificateTemplatePredefinedValuesAdditionalExtensionObjectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"Required. The parts of an OID path. The most significant parts of the path come first.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CertificateTemplatePredefinedValuesCaOptions:CertificateTemplatePredefinedValuesCaOptions":{"properties":{"isCa":{"type":"boolean","description":"Optional. Refers to the \"CA\" X.509 extension, which is a boolean value. When this value is true, the \"CA\" in Basic Constraints extension will be set to true.\n"},"maxIssuerPathLength":{"type":"integer","description":"Optional. Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail.\n"},"nullCa":{"type":"boolean","description":"Optional. When true, the \"CA\" in Basic Constraints extension will be set to null and omitted from the CA certificate.\nIf both \u003cspan pulumi-lang-nodejs=\"`isCa`\" pulumi-lang-dotnet=\"`IsCa`\" pulumi-lang-go=\"`isCa`\" pulumi-lang-python=\"`is_ca`\" pulumi-lang-yaml=\"`isCa`\" pulumi-lang-java=\"`isCa`\"\u003e`is_ca`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`nullCa`\" pulumi-lang-dotnet=\"`NullCa`\" pulumi-lang-go=\"`nullCa`\" pulumi-lang-python=\"`null_ca`\" pulumi-lang-yaml=\"`nullCa`\" pulumi-lang-java=\"`nullCa`\"\u003e`null_ca`\u003c/span\u003e are unset, the \"CA\" in Basic Constraints extension will be set to false.\nNote that the behavior when \u003cspan pulumi-lang-nodejs=\"`isCa \" pulumi-lang-dotnet=\"`IsCa \" pulumi-lang-go=\"`isCa \" pulumi-lang-python=\"`is_ca \" pulumi-lang-yaml=\"`isCa \" pulumi-lang-java=\"`isCa \"\u003e`is_ca \u003c/span\u003e= false` for this resource is different from the behavior in the Certificate Authority, Certificate and CaPool resources.\n"},"zeroMaxIssuerPathLength":{"type":"boolean","description":"Optional. When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nif both \u003cspan pulumi-lang-nodejs=\"`maxIssuerPathLength`\" pulumi-lang-dotnet=\"`MaxIssuerPathLength`\" pulumi-lang-go=\"`maxIssuerPathLength`\" pulumi-lang-python=\"`max_issuer_path_length`\" pulumi-lang-yaml=\"`maxIssuerPathLength`\" pulumi-lang-java=\"`maxIssuerPathLength`\"\u003e`max_issuer_path_length`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`zeroMaxIssuerPathLength`\" pulumi-lang-dotnet=\"`ZeroMaxIssuerPathLength`\" pulumi-lang-go=\"`zeroMaxIssuerPathLength`\" pulumi-lang-python=\"`zero_max_issuer_path_length`\" pulumi-lang-yaml=\"`zeroMaxIssuerPathLength`\" pulumi-lang-java=\"`zeroMaxIssuerPathLength`\"\u003e`zero_max_issuer_path_length`\u003c/span\u003e are unset,\nthe max path length will be omitted from the CA certificate.\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsage:CertificateTemplatePredefinedValuesKeyUsage":{"properties":{"baseKeyUsage":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsage:CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsage","description":"Describes high-level ways in which a key may be used.\nStructure is documented below.\n"},"extendedKeyUsage":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsage:CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsage","description":"Detailed scenarios in which a key may be used.\nStructure is documented below.\n"},"unknownExtendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsage:CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsage"},"description":"Used to describe extended key usages that are not listed in the KeyUsage.ExtendedKeyUsageOptions message.\nStructure is documented below.\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsage:CertificateTemplatePredefinedValuesKeyUsageBaseKeyUsage":{"properties":{"certSign":{"type":"boolean","description":"The key may be used to sign certificates.\n"},"contentCommitment":{"type":"boolean","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".\n"},"crlSign":{"type":"boolean","description":"The key may be used sign certificate revocation lists.\n"},"dataEncipherment":{"type":"boolean","description":"The key may be used to encipher data.\n"},"decipherOnly":{"type":"boolean","description":"The key may be used to decipher only.\n"},"digitalSignature":{"type":"boolean","description":"The key may be used for digital signatures.\n"},"encipherOnly":{"type":"boolean","description":"The key may be used to encipher only.\n"},"keyAgreement":{"type":"boolean","description":"The key may be used in a key agreement protocol.\n"},"keyEncipherment":{"type":"boolean","description":"The key may be used to encipher other keys.\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsage:CertificateTemplatePredefinedValuesKeyUsageExtendedKeyUsage":{"properties":{"clientAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.\n"},"codeSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".\n"},"emailProtection":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".\n"},"ocspSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".\n"},"serverAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.\n"},"timeStamping":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".\n"}},"type":"object"},"gcp:certificateauthority/CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsage:CertificateTemplatePredefinedValuesKeyUsageUnknownExtendedKeyUsage":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"Required. The parts of an OID path. The most significant parts of the path come first.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/CertificateTemplatePredefinedValuesNameConstraints:CertificateTemplatePredefinedValuesNameConstraints":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not the name constraints are marked critical.\n"},"excludedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains excluded DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n"},"excludedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the excluded email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n"},"excludedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the excluded IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"excludedUris":{"type":"array","items":{"type":"string"},"description":"Contains the excluded URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n"},"permittedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains permitted DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, `example.com`, `www.example.com`, `www.sub.example.com`\nwould satisfy `example.com` while `example1.com` does not.\n"},"permittedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the permitted email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. `.example.com`) to indicate\nall email addresses in that domain.\n"},"permittedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the permitted IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"permittedUris":{"type":"array","items":{"type":"string"},"description":"Contains the permitted URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like `.example.com`)\n"}},"type":"object","required":["critical"]},"gcp:certificateauthority/CertificateTemplatePredefinedValuesPolicyId:CertificateTemplatePredefinedValuesPolicyId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"Required. The parts of an OID path. The most significant parts of the path come first.\n"}},"type":"object","required":["objectIdPaths"]},"gcp:certificateauthority/getAuthorityAccessUrl:getAuthorityAccessUrl":{"properties":{"caCertificateAccessUrl":{"type":"string","description":"The URL where this CertificateAuthority's CA certificate is published. This will only be\nset for CAs that have been activated.\n"},"crlAccessUrls":{"type":"array","items":{"type":"string"},"description":"The URL where this CertificateAuthority's CRLs are published. This will only be set for\nCAs that have been activated.\n"}},"type":"object","required":["caCertificateAccessUrl","crlAccessUrls"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfig:getAuthorityConfig":{"properties":{"subjectConfigs":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigSubjectConfig:getAuthorityConfigSubjectConfig"},"description":"Specifies some of the values in a certificate that are related to the subject.\n"},"subjectKeyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigSubjectKeyId:getAuthorityConfigSubjectKeyId"},"description":"When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CA service, which was not generated using method (1) described in RFC 5280 section 4.2.1.2..\n"},"x509Configs":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509Config:getAuthorityConfigX509Config"},"description":"Describes how some of the technical X.509 fields in a certificate should be populated.\n"}},"type":"object","required":["subjectConfigs","subjectKeyIds","x509Configs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigSubjectConfig:getAuthorityConfigSubjectConfig":{"properties":{"subjectAltNames":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigSubjectConfigSubjectAltName:getAuthorityConfigSubjectConfigSubjectAltName"},"description":"The subject alternative name fields.\n"},"subjects":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigSubjectConfigSubject:getAuthorityConfigSubjectConfigSubject"},"description":"Contains distinguished name fields such as the location and organization.\n"}},"type":"object","required":["subjects","subjectAltNames"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigSubjectConfigSubject:getAuthorityConfigSubjectConfigSubject":{"properties":{"commonName":{"type":"string","description":"The common name of the distinguished name.\n"},"countryCode":{"type":"string","description":"The country code of the subject.\n"},"locality":{"type":"string","description":"The locality or city of the subject.\n"},"organization":{"type":"string","description":"The organization of the subject.\n"},"organizationalUnit":{"type":"string","description":"The organizational unit of the subject.\n"},"postalCode":{"type":"string","description":"The postal code of the subject.\n"},"province":{"type":"string","description":"The province, territory, or regional state of the subject.\n"},"streetAddress":{"type":"string","description":"The street address of the subject.\n"}},"type":"object","required":["commonName","countryCode","locality","organization","organizationalUnit","postalCode","province","streetAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigSubjectConfigSubjectAltName:getAuthorityConfigSubjectConfigSubjectAltName":{"properties":{"dnsNames":{"type":"array","items":{"type":"string"},"description":"Contains only valid, fully-qualified host names.\n"},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 2822 E-mail addresses.\n"},"ipAddresses":{"type":"array","items":{"type":"string"},"description":"Contains only valid 32-bit IPv4 addresses or RFC 4291 IPv6 addresses.\n"},"uris":{"type":"array","items":{"type":"string"},"description":"Contains only valid RFC 3986 URIs.\n"}},"type":"object","required":["dnsNames","emailAddresses","ipAddresses","uris"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigSubjectKeyId:getAuthorityConfigSubjectKeyId":{"properties":{"keyId":{"type":"string","description":"The value of the KeyId in lowercase hexadecimal.\n"}},"type":"object","required":["keyId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509Config:getAuthorityConfigX509Config":{"properties":{"additionalExtensions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigAdditionalExtension:getAuthorityConfigX509ConfigAdditionalExtension"},"description":"Specifies an X.509 extension, which may be used in different parts of X.509 objects like certificates, CSRs, and CRLs.\n"},"aiaOcspServers":{"type":"array","items":{"type":"string"},"description":"Describes Online Certificate Status Protocol (OCSP) endpoint addresses that appear in the\n\"Authority Information Access\" extension in the certificate.\n"},"caOptions":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigCaOption:getAuthorityConfigX509ConfigCaOption"},"description":"Describes values that are relevant in a CA certificate.\n"},"keyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsage:getAuthorityConfigX509ConfigKeyUsage"},"description":"Indicates the intended use for keys that correspond to a certificate.\n"},"nameConstraints":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigNameConstraint:getAuthorityConfigX509ConfigNameConstraint"},"description":"Describes the X.509 name constraints extension.\n"},"policyIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigPolicyId:getAuthorityConfigX509ConfigPolicyId"},"description":"Describes the X.509 certificate policy object identifiers, per https://tools.ietf.org/html/rfc5280#section-4.2.1.4.\n"}},"type":"object","required":["additionalExtensions","aiaOcspServers","caOptions","keyUsages","nameConstraints","policyIds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigAdditionalExtension:getAuthorityConfigX509ConfigAdditionalExtension":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not this extension is critical (i.e., if the client does not know how to\nhandle this extension, the client should consider this to be an error).\n"},"objectIds":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigAdditionalExtensionObjectId:getAuthorityConfigX509ConfigAdditionalExtensionObjectId"},"description":"Describes values that are relevant in a CA certificate.\n"},"value":{"type":"string","description":"The value of this X.509 extension. A base64-encoded string.\n"}},"type":"object","required":["critical","objectIds","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigAdditionalExtensionObjectId:getAuthorityConfigX509ConfigAdditionalExtensionObjectId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["objectIdPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigCaOption:getAuthorityConfigX509ConfigCaOption":{"properties":{"isCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to true.\n"},"maxIssuerPathLength":{"type":"integer","description":"Refers to the \"path length constraint\" in Basic Constraints extension. For a CA certificate, this value describes the depth of\nsubordinate CA certificates that are allowed. If this value is less than 0, the request will fail. Setting the value to 0\nrequires setting 'zero_max_issuer_path_length = true'.\n"},"nonCa":{"type":"boolean","description":"When true, the \"CA\" in Basic Constraints extension will be set to false.\nIf both 'is_ca' and 'non_ca' are unset, the extension will be omitted from the CA certificate.\n"},"zeroMaxIssuerPathLength":{"type":"boolean","description":"When true, the \"path length constraint\" in Basic Constraints extension will be set to 0.\nIf both 'max_issuer_path_length' and 'zero_max_issuer_path_length' are unset,\nthe max path length will be omitted from the CA certificate.\n"}},"type":"object","required":["isCa","maxIssuerPathLength","nonCa","zeroMaxIssuerPathLength"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsage:getAuthorityConfigX509ConfigKeyUsage":{"properties":{"baseKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsageBaseKeyUsage:getAuthorityConfigX509ConfigKeyUsageBaseKeyUsage"},"description":"Describes high-level ways in which a key may be used.\n"},"extendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsageExtendedKeyUsage:getAuthorityConfigX509ConfigKeyUsageExtendedKeyUsage"},"description":"Describes high-level ways in which a key may be used.\n"},"unknownExtendedKeyUsages":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage:getAuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["baseKeyUsages","extendedKeyUsages","unknownExtendedKeyUsages"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsageBaseKeyUsage:getAuthorityConfigX509ConfigKeyUsageBaseKeyUsage":{"properties":{"certSign":{"type":"boolean","description":"The key may be used to sign certificates.\n"},"contentCommitment":{"type":"boolean","description":"The key may be used for cryptographic commitments. Note that this may also be referred to as \"non-repudiation\".\n"},"crlSign":{"type":"boolean","description":"The key may be used sign certificate revocation lists.\n"},"dataEncipherment":{"type":"boolean","description":"The key may be used to encipher data.\n"},"decipherOnly":{"type":"boolean","description":"The key may be used to decipher only.\n"},"digitalSignature":{"type":"boolean","description":"The key may be used for digital signatures.\n"},"encipherOnly":{"type":"boolean","description":"The key may be used to encipher only.\n"},"keyAgreement":{"type":"boolean","description":"The key may be used in a key agreement protocol.\n"},"keyEncipherment":{"type":"boolean","description":"The key may be used to encipher other keys.\n"}},"type":"object","required":["certSign","contentCommitment","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyEncipherment"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsageExtendedKeyUsage:getAuthorityConfigX509ConfigKeyUsageExtendedKeyUsage":{"properties":{"clientAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.2. Officially described as \"TLS WWW client authentication\", though regularly used for non-WWW TLS.\n"},"codeSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.3. Officially described as \"Signing of downloadable executable code client authentication\".\n"},"emailProtection":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.4. Officially described as \"Email protection\".\n"},"ocspSigning":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.9. Officially described as \"Signing OCSP responses\".\n"},"serverAuth":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.1. Officially described as \"TLS WWW server authentication\", though regularly used for non-WWW TLS.\n"},"timeStamping":{"type":"boolean","description":"Corresponds to OID 1.3.6.1.5.5.7.3.8. Officially described as \"Binding the hash of an object to a time\".\n"}},"type":"object","required":["clientAuth","codeSigning","emailProtection","ocspSigning","serverAuth","timeStamping"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage:getAuthorityConfigX509ConfigKeyUsageUnknownExtendedKeyUsage":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["objectIdPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigNameConstraint:getAuthorityConfigX509ConfigNameConstraint":{"properties":{"critical":{"type":"boolean","description":"Indicates whether or not the name constraints are marked critical.\n"},"excludedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains excluded DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, 'example.com', 'www.example.com', 'www.sub.example.com'\nwould satisfy 'example.com' while 'example1.com' does not.\n"},"excludedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the excluded email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. '.example.com') to indicate\nall email addresses in that domain.\n"},"excludedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the excluded IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"excludedUris":{"type":"array","items":{"type":"string"},"description":"Contains the excluded URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like '.example.com')\n"},"permittedDnsNames":{"type":"array","items":{"type":"string"},"description":"Contains permitted DNS names. Any DNS name that can be\nconstructed by simply adding zero or more labels to\nthe left-hand side of the name satisfies the name constraint.\nFor example, 'example.com', 'www.example.com', 'www.sub.example.com'\nwould satisfy 'example.com' while 'example1.com' does not.\n"},"permittedEmailAddresses":{"type":"array","items":{"type":"string"},"description":"Contains the permitted email addresses. The value can be a particular\nemail address, a hostname to indicate all email addresses on that host or\na domain with a leading period (e.g. '.example.com') to indicate\nall email addresses in that domain.\n"},"permittedIpRanges":{"type":"array","items":{"type":"string"},"description":"Contains the permitted IP ranges. For IPv4 addresses, the ranges\nare expressed using CIDR notation as specified in RFC 4632.\nFor IPv6 addresses, the ranges are expressed in similar encoding as IPv4\naddresses.\n"},"permittedUris":{"type":"array","items":{"type":"string"},"description":"Contains the permitted URIs that apply to the host part of the name.\nThe value can be a hostname or a domain with a\nleading period (like '.example.com')\n"}},"type":"object","required":["critical","excludedDnsNames","excludedEmailAddresses","excludedIpRanges","excludedUris","permittedDnsNames","permittedEmailAddresses","permittedIpRanges","permittedUris"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityConfigX509ConfigPolicyId:getAuthorityConfigX509ConfigPolicyId":{"properties":{"objectIdPaths":{"type":"array","items":{"type":"integer"},"description":"An ObjectId specifies an object identifier (OID). These provide context and describe types in ASN.1 messages.\n"}},"type":"object","required":["objectIdPaths"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityKeySpec:getAuthorityKeySpec":{"properties":{"algorithm":{"type":"string","description":"The algorithm to use for creating a managed Cloud KMS key for a for a simplified\nexperience. All managed keys will be have their ProtectionLevel as HSM. Possible values: [\"SIGN_HASH_ALGORITHM_UNSPECIFIED\", \"RSA_PSS_2048_SHA256\", \"RSA_PSS_3072_SHA256\", \"RSA_PSS_4096_SHA256\", \"RSA_PKCS1_2048_SHA256\", \"RSA_PKCS1_3072_SHA256\", \"RSA_PKCS1_4096_SHA256\", \"EC_P256_SHA256\", \"EC_P384_SHA384\"]\n"},"cloudKmsKeyVersion":{"type":"string","description":"The resource name for an existing Cloud KMS CryptoKeyVersion in the format\n'projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*'.\n"}},"type":"object","required":["algorithm","cloudKmsKeyVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthoritySubordinateConfig:getAuthoritySubordinateConfig":{"properties":{"certificateAuthority":{"type":"string","description":"This can refer to a CertificateAuthority that was used to create a\nsubordinate CertificateAuthority. This field is used for information\nand usability purposes only. The resource name is in the format\n'projects/*/locations/*/caPools/*/certificateAuthorities/*'.\n"},"pemIssuerChains":{"type":"array","items":{"$ref":"#/types/gcp:certificateauthority/getAuthoritySubordinateConfigPemIssuerChain:getAuthoritySubordinateConfigPemIssuerChain"},"description":"Contains the PEM certificate chain for the issuers of this CertificateAuthority,\nbut not pem certificate for this CA itself.\n"}},"type":"object","required":["certificateAuthority","pemIssuerChains"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthoritySubordinateConfigPemIssuerChain:getAuthoritySubordinateConfigPemIssuerChain":{"properties":{"pemCertificates":{"type":"array","items":{"type":"string"},"description":"Expected to be in leaf-to-root order according to RFC 5246.\n"}},"type":"object","required":["pemCertificates"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificateauthority/getAuthorityUserDefinedAccessUrl:getAuthorityUserDefinedAccessUrl":{"properties":{"aiaIssuingCertificateUrls":{"type":"array","items":{"type":"string"},"description":"A list of URLs where this CertificateAuthority's CA certificate is published that is specified by users.\n"},"crlAccessUrls":{"type":"array","items":{"type":"string"},"description":"A list of URLs where this CertificateAuthority's CRLs are published that is specified by users.\n"}},"type":"object","required":["aiaIssuingCertificateUrls","crlAccessUrls"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/CertificateIssuanceConfigCertificateAuthorityConfig:CertificateIssuanceConfigCertificateAuthorityConfig":{"properties":{"certificateAuthorityServiceConfig":{"$ref":"#/types/gcp:certificatemanager/CertificateIssuanceConfigCertificateAuthorityConfigCertificateAuthorityServiceConfig:CertificateIssuanceConfigCertificateAuthorityConfigCertificateAuthorityServiceConfig","description":"Defines a CertificateAuthorityServiceConfig.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:certificatemanager/CertificateIssuanceConfigCertificateAuthorityConfigCertificateAuthorityServiceConfig:CertificateIssuanceConfigCertificateAuthorityConfigCertificateAuthorityServiceConfig":{"properties":{"caPool":{"type":"string","description":"A CA pool resource used to issue a certificate.\nThe CA pool string has a relative resource path following the form\n\"projects/{project}/locations/{location}/caPools/{caPool}\".\n","willReplaceOnChanges":true}},"type":"object","required":["caPool"]},"gcp:certificatemanager/CertificateManaged:CertificateManaged":{"properties":{"authorizationAttemptInfos":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/CertificateManagedAuthorizationAttemptInfo:CertificateManagedAuthorizationAttemptInfo"},"description":"(Output)\nDetailed state of the latest authorization attempt for each domain\nspecified for this Managed Certificate.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedManagedProvisioningIssue\"\" pulumi-lang-dotnet=\"\"NestedManagedProvisioningIssue\"\" pulumi-lang-go=\"\"nestedManagedProvisioningIssue\"\" pulumi-lang-python=\"\"nested_managed_provisioning_issue\"\" pulumi-lang-yaml=\"\"nestedManagedProvisioningIssue\"\" pulumi-lang-java=\"\"nestedManagedProvisioningIssue\"\"\u003e\"nested_managed_provisioning_issue\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`provisioningIssue`\" pulumi-lang-dotnet=\"`ProvisioningIssue`\" pulumi-lang-go=\"`provisioningIssue`\" pulumi-lang-python=\"`provisioning_issue`\" pulumi-lang-yaml=\"`provisioningIssue`\" pulumi-lang-java=\"`provisioningIssue`\"\u003e`provisioning_issue`\u003c/span\u003e block contains:\n"},"dnsAuthorizations":{"type":"array","items":{"type":"string"},"description":"Authorizations that will be used for performing domain authorization. Either issuanceConfig or dnsAuthorizations should be specificed, but not both.\n","willReplaceOnChanges":true},"domains":{"type":"array","items":{"type":"string"},"description":"The domains for which a managed SSL certificate will be generated.\nWildcard domains are only supported with DNS challenge resolution\n","willReplaceOnChanges":true},"issuanceConfig":{"type":"string","description":"The resource name for a CertificateIssuanceConfig used to configure private PKI certificates in the format projects/*/locations/*/certificateIssuanceConfigs/*.\nIf this field is not set, the certificates will instead be publicly signed as documented at https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa.\nEither issuanceConfig or dnsAuthorizations should be specificed, but not both.\n","willReplaceOnChanges":true},"provisioningIssues":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/CertificateManagedProvisioningIssue:CertificateManagedProvisioningIssue"},"description":"(Output)\nInformation about issues with provisioning this Managed Certificate.\nStructure is documented below.\n"},"state":{"type":"string","description":"(Output)\nState of the domain for managed certificate issuance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["authorizationAttemptInfos","provisioningIssues","state"]}}},"gcp:certificatemanager/CertificateManagedAuthorizationAttemptInfo:CertificateManagedAuthorizationAttemptInfo":{"properties":{"details":{"type":"string","description":"Human readable explanation for reaching the state. Provided to help\naddress the configuration issues.\nNot guaranteed to be stable. For programmatic access use 'failure_reason' field.\n"},"domain":{"type":"string","description":"Domain name of the authorization attempt.\n"},"failureReason":{"type":"string","description":"Reason for failure of the authorization attempt for the domain.\n"},"state":{"type":"string","description":"State of the domain for managed certificate issuance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["details","domain","failureReason","state"]}}},"gcp:certificatemanager/CertificateManagedProvisioningIssue:CertificateManagedProvisioningIssue":{"properties":{"details":{"type":"string","description":"Human readable explanation about the issue. Provided to help address\nthe configuration issues.\nNot guaranteed to be stable. For programmatic access use 'reason' field.\n"},"reason":{"type":"string","description":"Reason for provisioning failures.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["details","reason"]}}},"gcp:certificatemanager/CertificateMapGclbTarget:CertificateMapGclbTarget":{"properties":{"ipConfigs":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/CertificateMapGclbTargetIpConfig:CertificateMapGclbTargetIpConfig"},"description":"An IP configuration where this Certificate Map is serving\nStructure is documented below.\n"},"targetHttpsProxy":{"type":"string","description":"Proxy name must be in the format projects/*/locations/*/targetHttpsProxies/*.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`targetProxy`\" pulumi-lang-dotnet=\"`TargetProxy`\" pulumi-lang-go=\"`targetProxy`\" pulumi-lang-python=\"`target_proxy`\" pulumi-lang-yaml=\"`targetProxy`\" pulumi-lang-java=\"`targetProxy`\"\u003e`target_proxy`\u003c/span\u003e: Only one of `targetHttpsProxy` or\n`targetSslProxy` may be set.\n"},"targetSslProxy":{"type":"string","description":"Proxy name must be in the format projects/*/locations/*/targetSslProxies/*.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`targetProxy`\" pulumi-lang-dotnet=\"`TargetProxy`\" pulumi-lang-go=\"`targetProxy`\" pulumi-lang-python=\"`target_proxy`\" pulumi-lang-yaml=\"`targetProxy`\" pulumi-lang-java=\"`targetProxy`\"\u003e`target_proxy`\u003c/span\u003e: Only one of `targetHttpsProxy` or\n`targetSslProxy` may be set.\n"}},"type":"object"},"gcp:certificatemanager/CertificateMapGclbTargetIpConfig:CertificateMapGclbTargetIpConfig":{"properties":{"ipAddress":{"type":"string","description":"An external IP address\n"},"ports":{"type":"array","items":{"type":"integer"},"description":"A list of ports\n"}},"type":"object"},"gcp:certificatemanager/CertificateSelfManaged:CertificateSelfManaged":{"properties":{"certificatePem":{"type":"string","description":"(Optional, Deprecated)\nThe certificate chain in PEM-encoded form.\nLeaf certificate comes first, followed by intermediate ones if any.\n**Note**: This property is sensitive and will not be displayed in the plan.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`certificatePem`\" pulumi-lang-dotnet=\"`CertificatePem`\" pulumi-lang-go=\"`certificatePem`\" pulumi-lang-python=\"`certificate_pem`\" pulumi-lang-yaml=\"`certificatePem`\" pulumi-lang-java=\"`certificatePem`\"\u003e`certificate_pem`\u003c/span\u003e is deprecated and will be removed in a future major release. Use \u003cspan pulumi-lang-nodejs=\"`pemCertificate`\" pulumi-lang-dotnet=\"`PemCertificate`\" pulumi-lang-go=\"`pemCertificate`\" pulumi-lang-python=\"`pem_certificate`\" pulumi-lang-yaml=\"`pemCertificate`\" pulumi-lang-java=\"`pemCertificate`\"\u003e`pem_certificate`\u003c/span\u003e instead.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`certificatePem`\" pulumi-lang-dotnet=\"`CertificatePem`\" pulumi-lang-go=\"`certificatePem`\" pulumi-lang-python=\"`certificate_pem`\" pulumi-lang-yaml=\"`certificatePem`\" pulumi-lang-java=\"`certificatePem`\"\u003e`certificate_pem`\u003c/span\u003e is deprecated and will be removed in a future major release. Use \u003cspan pulumi-lang-nodejs=\"`pemCertificate`\" pulumi-lang-dotnet=\"`PemCertificate`\" pulumi-lang-go=\"`pemCertificate`\" pulumi-lang-python=\"`pem_certificate`\" pulumi-lang-yaml=\"`pemCertificate`\" pulumi-lang-java=\"`pemCertificate`\"\u003e`pem_certificate`\u003c/span\u003e instead.","secret":true,"willReplaceOnChanges":true},"pemCertificate":{"type":"string","description":"The certificate chain in PEM-encoded form.\nLeaf certificate comes first, followed by intermediate ones if any.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","willReplaceOnChanges":true},"pemPrivateKey":{"type":"string","description":"The private key of the leaf certificate in PEM-encoded form.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"privateKeyPem":{"type":"string","description":"(Optional, Deprecated)\nThe private key of the leaf certificate in PEM-encoded form.\n**Note**: This property is sensitive and will not be displayed in the plan.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`privateKeyPem`\" pulumi-lang-dotnet=\"`PrivateKeyPem`\" pulumi-lang-go=\"`privateKeyPem`\" pulumi-lang-python=\"`private_key_pem`\" pulumi-lang-yaml=\"`privateKeyPem`\" pulumi-lang-java=\"`privateKeyPem`\"\u003e`private_key_pem`\u003c/span\u003e is deprecated and will be removed in a future major release. Use \u003cspan pulumi-lang-nodejs=\"`pemPrivateKey`\" pulumi-lang-dotnet=\"`PemPrivateKey`\" pulumi-lang-go=\"`pemPrivateKey`\" pulumi-lang-python=\"`pem_private_key`\" pulumi-lang-yaml=\"`pemPrivateKey`\" pulumi-lang-java=\"`pemPrivateKey`\"\u003e`pem_private_key`\u003c/span\u003e instead.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`privateKeyPem`\" pulumi-lang-dotnet=\"`PrivateKeyPem`\" pulumi-lang-go=\"`privateKeyPem`\" pulumi-lang-python=\"`private_key_pem`\" pulumi-lang-yaml=\"`privateKeyPem`\" pulumi-lang-java=\"`privateKeyPem`\"\u003e`private_key_pem`\u003c/span\u003e is deprecated and will be removed in a future major release. Use \u003cspan pulumi-lang-nodejs=\"`pemPrivateKey`\" pulumi-lang-dotnet=\"`PemPrivateKey`\" pulumi-lang-go=\"`pemPrivateKey`\" pulumi-lang-python=\"`pem_private_key`\" pulumi-lang-yaml=\"`pemPrivateKey`\" pulumi-lang-java=\"`pemPrivateKey`\"\u003e`pem_private_key`\u003c/span\u003e instead.","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:certificatemanager/DnsAuthorizationDnsResourceRecord:DnsAuthorizationDnsResourceRecord":{"properties":{"data":{"type":"string","description":"(Output)\nData of the DNS Resource Record.\n"},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.\n"},"type":{"type":"string","description":"type of DNS authorization. If unset during the resource creation, FIXED_RECORD will\nbe used for global resources, and PER_PROJECT_RECORD will be used for other locations.\nFIXED_RECORD DNS authorization uses DNS-01 validation method\nPER_PROJECT_RECORD DNS authorization allows for independent management\nof Google-managed certificates with DNS authorization across multiple\nprojects.\nPossible values are: `FIXED_RECORD`, `PER_PROJECT_RECORD`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["data","name","type"]}}},"gcp:certificatemanager/TrustConfigAllowlistedCertificate:TrustConfigAllowlistedCertificate":{"properties":{"pemCertificate":{"type":"string","description":"PEM certificate that is allowlisted. The certificate can be up to 5k bytes, and must be a parseable X.509 certificate.\n"}},"type":"object","required":["pemCertificate"]},"gcp:certificatemanager/TrustConfigTrustStore:TrustConfigTrustStore":{"properties":{"intermediateCas":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/TrustConfigTrustStoreIntermediateCa:TrustConfigTrustStoreIntermediateCa"},"description":"Set of intermediate CA certificates used for the path building phase of chain validation.\nThe field is currently not supported if trust config is used for the workload certificate feature.\nStructure is documented below.\n"},"trustAnchors":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/TrustConfigTrustStoreTrustAnchor:TrustConfigTrustStoreTrustAnchor"},"description":"List of Trust Anchors to be used while performing validation against a given TrustStore.\nStructure is documented below.\n"}},"type":"object"},"gcp:certificatemanager/TrustConfigTrustStoreIntermediateCa:TrustConfigTrustStoreIntermediateCa":{"properties":{"pemCertificate":{"type":"string","description":"PEM intermediate certificate used for building up paths for validation.\nEach certificate provided in PEM format may occupy up to 5kB.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object"},"gcp:certificatemanager/TrustConfigTrustStoreTrustAnchor:TrustConfigTrustStoreTrustAnchor":{"properties":{"pemCertificate":{"type":"string","description":"PEM root certificate of the PKI used for validation.\nEach certificate provided in PEM format may occupy up to 5kB.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object"},"gcp:certificatemanager/getCertificateMapGclbTarget:getCertificateMapGclbTarget":{"properties":{"ipConfigs":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/getCertificateMapGclbTargetIpConfig:getCertificateMapGclbTargetIpConfig"},"description":"An IP configuration where this Certificate Map is serving\n"},"targetHttpsProxy":{"type":"string","description":"Proxy name must be in the format projects/*/locations/*/targetHttpsProxies/*.\nThis field is part of a union field 'target_proxy': Only one of 'targetHttpsProxy' or\n'targetSslProxy' may be set.\n"},"targetSslProxy":{"type":"string","description":"Proxy name must be in the format projects/*/locations/*/targetSslProxies/*.\nThis field is part of a union field 'target_proxy': Only one of 'targetHttpsProxy' or\n'targetSslProxy' may be set.\n"}},"type":"object","required":["ipConfigs","targetHttpsProxy","targetSslProxy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/getCertificateMapGclbTargetIpConfig:getCertificateMapGclbTargetIpConfig":{"properties":{"ipAddress":{"type":"string","description":"An external IP address\n"},"ports":{"type":"array","items":{"type":"integer"},"description":"A list of ports\n"}},"type":"object","required":["ipAddress","ports"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/getCertificatesCertificate:getCertificatesCertificate":{"properties":{"description":{"type":"string","description":"A human-readable description of the resource.\n"},"effectiveLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.\n","secret":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Set of label tags associated with the Certificate resource.\n\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field 'effective_labels' for all of the labels present on the resource.\n"},"location":{"type":"string","description":"The Certificate Manager location. If not specified, \"global\" is used.\n"},"manageds":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/getCertificatesCertificateManaged:getCertificatesCertificateManaged"},"description":"Configuration and state of a Managed Certificate.\nCertificate Manager provisions and renews Managed Certificates\nautomatically, for as long as it's authorized to do so.\n"},"name":{"type":"string","description":"A user-defined name of the certificate. Certificate names must be unique\nThe name must be 1-64 characters long, and match the regular expression [a-zA-Z][a-zA-Z0-9_-]* which means the first character must be a letter,\nand all following characters must be a dash, underscore, letter or digit.\n"},"project":{"type":"string","description":"The ID of the project in which the resource belongs. If it\nis not provided, the provider project is used.\n"},"pulumiLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The combination of labels configured directly on the resource\n and default labels configured on the provider.\n","secret":true},"sanDnsnames":{"type":"array","items":{"type":"string"},"description":"The list of Subject Alternative Names of dnsName type defined in the certificate (see RFC 5280 4.2.1.6)\n"},"scope":{"type":"string","description":"The scope of the certificate.\n\nDEFAULT: Certificates with default scope are served from core Google data centers.\nIf unsure, choose this option.\n\nEDGE_CACHE: Certificates with scope EDGE_CACHE are special-purposed certificates, served from Edge Points of Presence.\nSee https://cloud.google.com/vpc/docs/edge-locations.\n\nALL_REGIONS: Certificates with ALL_REGIONS scope are served from all GCP regions (You can only use ALL_REGIONS with global certs).\nSee https://cloud.google.com/compute/docs/regions-zones.\n\nCLIENT_AUTH: Certificates with CLIENT_AUTH scope are used by a load balancer (TLS client) to be presented to the backend (TLS server) when backend mTLS is configured.\nSee https://cloud.google.com/load-balancing/docs/backend-authenticated-tls-backend-mtls#client-certificate.\n"}},"type":"object","required":["description","effectiveLabels","labels","location","manageds","name","project","sanDnsnames","scope","pulumiLabels"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/getCertificatesCertificateManaged:getCertificatesCertificateManaged":{"properties":{"authorizationAttemptInfos":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/getCertificatesCertificateManagedAuthorizationAttemptInfo:getCertificatesCertificateManagedAuthorizationAttemptInfo"},"description":"Detailed state of the latest authorization attempt for each domain\nspecified for this Managed Certificate.\n"},"dnsAuthorizations":{"type":"array","items":{"type":"string"},"description":"Authorizations that will be used for performing domain authorization. Either issuanceConfig or dnsAuthorizations should be specificed, but not both.\n"},"domains":{"type":"array","items":{"type":"string"},"description":"The domains for which a managed SSL certificate will be generated.\nWildcard domains are only supported with DNS challenge resolution\n"},"issuanceConfig":{"type":"string","description":"The resource name for a CertificateIssuanceConfig used to configure private PKI certificates in the format projects/*/locations/*/certificateIssuanceConfigs/*.\nIf this field is not set, the certificates will instead be publicly signed as documented at https://cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs#caa.\nEither issuanceConfig or dnsAuthorizations should be specificed, but not both.\n"},"provisioningIssues":{"type":"array","items":{"$ref":"#/types/gcp:certificatemanager/getCertificatesCertificateManagedProvisioningIssue:getCertificatesCertificateManagedProvisioningIssue"},"description":"Information about issues with provisioning this Managed Certificate.\n"},"state":{"type":"string","description":"A state of this Managed Certificate.\n"}},"type":"object","required":["authorizationAttemptInfos","dnsAuthorizations","domains","issuanceConfig","provisioningIssues","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/getCertificatesCertificateManagedAuthorizationAttemptInfo:getCertificatesCertificateManagedAuthorizationAttemptInfo":{"properties":{"details":{"type":"string","description":"Human readable explanation for reaching the state. Provided to help\naddress the configuration issues.\nNot guaranteed to be stable. For programmatic access use 'failure_reason' field.\n"},"domain":{"type":"string","description":"Domain name of the authorization attempt.\n"},"failureReason":{"type":"string","description":"Reason for failure of the authorization attempt for the domain.\n"},"state":{"type":"string","description":"State of the domain for managed certificate issuance.\n"}},"type":"object","required":["details","domain","failureReason","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/getCertificatesCertificateManagedProvisioningIssue:getCertificatesCertificateManagedProvisioningIssue":{"properties":{"details":{"type":"string","description":"Human readable explanation about the issue. Provided to help address\nthe configuration issues.\nNot guaranteed to be stable. For programmatic access use 'reason' field.\n"},"reason":{"type":"string","description":"Reason for provisioning failures.\n"}},"type":"object","required":["details","reason"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:certificatemanager/getDnsAuthorizationDnsResourceRecord:getDnsAuthorizationDnsResourceRecord":{"properties":{"data":{"type":"string","description":"Data of the DNS Resource Record.\n"},"name":{"type":"string","description":"The name of the DNS Authorization.\n"},"type":{"type":"string","description":"Type of the DNS Resource Record.\n"}},"type":"object","required":["data","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:ces/AgentAfterAgentCallback:AgentAfterAgentCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/AgentAfterModelCallback:AgentAfterModelCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/AgentAfterToolCallback:AgentAfterToolCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/AgentBeforeAgentCallback:AgentBeforeAgentCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/AgentBeforeModelCallback:AgentBeforeModelCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/AgentBeforeToolCallback:AgentBeforeToolCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/AgentLlmAgent:AgentLlmAgent":{"type":"object"},"gcp:ces/AgentModelSettings:AgentModelSettings":{"properties":{"model":{"type":"string","description":"The LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"If set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object"},"gcp:ces/AgentRemoteDialogflowAgent:AgentRemoteDialogflowAgent":{"properties":{"agent":{"type":"string","description":"The\n[Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents\nagent resource name.\nFormat: `projects/{project}/locations/{location}/agents/{agent}`\n"},"environmentId":{"type":"string","description":"The environment ID of the Dialogflow agent be used for the agent\nexecution. If not specified, the draft environment will be used.\n"},"flowId":{"type":"string","description":"The flow ID of the flow in the Dialogflow agent.\n"},"inputVariableMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"The mapping of the app variables names to the Dialogflow session\nparameters names to be sent to the Dialogflow agent as input.\n"},"outputVariableMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"The mapping of the Dialogflow session parameters names to the app\nvariables names to be sent back to the CES agent after the Dialogflow\nagent execution ends.\n"}},"type":"object","required":["agent","flowId"]},"gcp:ces/AgentToolset:AgentToolset":{"properties":{"toolIds":{"type":"array","items":{"type":"string"},"description":"The tools IDs to filter the toolset.\n"},"toolset":{"type":"string","description":"The resource name of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","required":["toolset"]},"gcp:ces/AppAudioProcessingConfig:AppAudioProcessingConfig":{"properties":{"ambientSoundConfig":{"$ref":"#/types/gcp:ces/AppAudioProcessingConfigAmbientSoundConfig:AppAudioProcessingConfigAmbientSoundConfig","description":"Configuration for the ambient sound to be played with the synthesized agent\nresponse, to enhance the naturalness of the conversation.\nStructure is documented below.\n"},"bargeInConfig":{"$ref":"#/types/gcp:ces/AppAudioProcessingConfigBargeInConfig:AppAudioProcessingConfigBargeInConfig","description":"Configuration for how the user barge-in activities should be handled.\nStructure is documented below.\n"},"inactivityTimeout":{"type":"string","description":"The duration of user inactivity (no speech or interaction) before the agent\nprompts the user for reengagement. If not set, the agent will not prompt\nthe user for reengagement.\n"},"synthesizeSpeechConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppAudioProcessingConfigSynthesizeSpeechConfig:AppAudioProcessingConfigSynthesizeSpeechConfig"},"description":"Configuration of how the agent response should be synthesized, mapping from\nthe language code to SynthesizeSpeechConfig.\nIf the configuration for the specified language code is not found, the\nconfiguration for the root language code will be used. For example, if the\nmap contains \"en-us\" and \"en\", and the specified language code is \"en-gb\",\nthen \"en\" configuration will be used.\nNote: Language code is case-insensitive.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/AppAudioProcessingConfigAmbientSoundConfig:AppAudioProcessingConfigAmbientSoundConfig":{"properties":{"gcsUri":{"type":"string","description":"Ambient noise as a mono-channel, 16kHz WAV file stored in [Cloud\nStorage](https://cloud.google.com/storage).\nNote: Please make sure the CES service agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com` has\n`storage.objects.get` permission to the Cloud Storage object.\n"},"prebuiltAmbientSound":{"type":"string","description":"Name of the prebuilt ambient sound.\nValid values are: - \u003cspan pulumi-lang-nodejs=\"\"coffeeShop\"\" pulumi-lang-dotnet=\"\"CoffeeShop\"\" pulumi-lang-go=\"\"coffeeShop\"\" pulumi-lang-python=\"\"coffee_shop\"\" pulumi-lang-yaml=\"\"coffeeShop\"\" pulumi-lang-java=\"\"coffeeShop\"\"\u003e\"coffee_shop\"\u003c/span\u003e - \"keyboard\" - \"keypad\" - \"hum\"\n-\u003cspan pulumi-lang-nodejs=\"\"office1\"\" pulumi-lang-dotnet=\"\"Office1\"\" pulumi-lang-go=\"\"office1\"\" pulumi-lang-python=\"\"office_1\"\" pulumi-lang-yaml=\"\"office1\"\" pulumi-lang-java=\"\"office1\"\"\u003e\"office_1\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"office2\"\" pulumi-lang-dotnet=\"\"Office2\"\" pulumi-lang-go=\"\"office2\"\" pulumi-lang-python=\"\"office_2\"\" pulumi-lang-yaml=\"\"office2\"\" pulumi-lang-java=\"\"office2\"\"\u003e\"office_2\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"office3\"\" pulumi-lang-dotnet=\"\"Office3\"\" pulumi-lang-go=\"\"office3\"\" pulumi-lang-python=\"\"office_3\"\" pulumi-lang-yaml=\"\"office3\"\" pulumi-lang-java=\"\"office3\"\"\u003e\"office_3\"\u003c/span\u003e\n-\u003cspan pulumi-lang-nodejs=\"\"room1\"\" pulumi-lang-dotnet=\"\"Room1\"\" pulumi-lang-go=\"\"room1\"\" pulumi-lang-python=\"\"room_1\"\" pulumi-lang-yaml=\"\"room1\"\" pulumi-lang-java=\"\"room1\"\"\u003e\"room_1\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"room2\"\" pulumi-lang-dotnet=\"\"Room2\"\" pulumi-lang-go=\"\"room2\"\" pulumi-lang-python=\"\"room_2\"\" pulumi-lang-yaml=\"\"room2\"\" pulumi-lang-java=\"\"room2\"\"\u003e\"room_2\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"room3\"\" pulumi-lang-dotnet=\"\"Room3\"\" pulumi-lang-go=\"\"room3\"\" pulumi-lang-python=\"\"room_3\"\" pulumi-lang-yaml=\"\"room3\"\" pulumi-lang-java=\"\"room3\"\"\u003e\"room_3\"\u003c/span\u003e\n-\u003cspan pulumi-lang-nodejs=\"\"room4\"\" pulumi-lang-dotnet=\"\"Room4\"\" pulumi-lang-go=\"\"room4\"\" pulumi-lang-python=\"\"room_4\"\" pulumi-lang-yaml=\"\"room4\"\" pulumi-lang-java=\"\"room4\"\"\u003e\"room_4\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"room5\"\" pulumi-lang-dotnet=\"\"Room5\"\" pulumi-lang-go=\"\"room5\"\" pulumi-lang-python=\"\"room_5\"\" pulumi-lang-yaml=\"\"room5\"\" pulumi-lang-java=\"\"room5\"\"\u003e\"room_5\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"airConditioner\"\" pulumi-lang-dotnet=\"\"AirConditioner\"\" pulumi-lang-go=\"\"airConditioner\"\" pulumi-lang-python=\"\"air_conditioner\"\" pulumi-lang-yaml=\"\"airConditioner\"\" pulumi-lang-java=\"\"airConditioner\"\"\u003e\"air_conditioner\"\u003c/span\u003e\n"},"volumeGainDb":{"type":"number","description":"Volume gain (in dB) of the normal native volume supported by\nambient noise, in the range [-96.0, 16.0]. If unset, or set to a value of\n0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)\nwill play at approximately half the amplitude of the normal native signal\namplitude. A value of +6.0 (dB) will play at approximately twice the\namplitude of the normal native signal amplitude. We strongly recommend not\nto exceed +10 (dB) as there's usually no effective increase in loudness for\nany value greater than that.\n"}},"type":"object"},"gcp:ces/AppAudioProcessingConfigBargeInConfig:AppAudioProcessingConfigBargeInConfig":{"properties":{"bargeInAwareness":{"type":"boolean","description":"If enabled, the agent will adapt its next response based on the assumption\nthat the user hasn't heard the full preceding agent message.\nThis should not be used in scenarios where agent responses are displayed\nvisually.\n"}},"type":"object"},"gcp:ces/AppAudioProcessingConfigSynthesizeSpeechConfig:AppAudioProcessingConfigSynthesizeSpeechConfig":{"properties":{"languageCode":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"speakingRate":{"type":"number","description":"The speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native\nspeed supported by the specific voice. 2.0 is twice as fast, and 0.5 is\nhalf as fast. Values outside of the range [0.25, 2.0] will return an error.\n"},"voice":{"type":"string","description":"The name of the voice. If not set, the service will choose a\nvoice based on the other parameters such as language_code.\nFor the list of available voices, please refer to Supported voices and\nlanguages from Cloud Text-to-Speech.\n"}},"type":"object","required":["languageCode"]},"gcp:ces/AppClientCertificateSettings:AppClientCertificateSettings":{"properties":{"passphrase":{"type":"string","description":"The passphrase to decrypt the private key.\nShould be left unset if the private key is not encrypted.\n"},"privateKey":{"type":"string","description":"The name of the SecretManager secret version resource\nstoring the private key encoded in PEM format.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n"},"tlsCertificate":{"type":"string","description":"The TLS certificate encoded in PEM format.\nThis string must include the begin header and end footer lines.\n"}},"type":"object","required":["privateKey","tlsCertificate"]},"gcp:ces/AppDataStoreSettings:AppDataStoreSettings":{"properties":{"engines":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppDataStoreSettingsEngine:AppDataStoreSettingsEngine"},"description":"(Output)\nThe engines for the app.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedDataStoreSettingsEngines\"\" pulumi-lang-dotnet=\"\"NestedDataStoreSettingsEngines\"\" pulumi-lang-go=\"\"nestedDataStoreSettingsEngines\"\" pulumi-lang-python=\"\"nested_data_store_settings_engines\"\" pulumi-lang-yaml=\"\"nestedDataStoreSettingsEngines\"\" pulumi-lang-java=\"\"nestedDataStoreSettingsEngines\"\"\u003e\"nested_data_store_settings_engines\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`engines`\" pulumi-lang-dotnet=\"`Engines`\" pulumi-lang-go=\"`engines`\" pulumi-lang-python=\"`engines`\" pulumi-lang-yaml=\"`engines`\" pulumi-lang-java=\"`engines`\"\u003e`engines`\u003c/span\u003e block contains:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["engines"]}}},"gcp:ces/AppDataStoreSettingsEngine:AppDataStoreSettingsEngine":{"properties":{"name":{"type":"string","description":"Identifier. The unique identifier of the app.\nFormat: `projects/{project}/locations/{location}/apps/{app}`\n"},"type":{"type":"string","description":"The type of the engine.\nPossible values:\nENGINE_TYPE_SEARCH\nENGINE_TYPE_CHAT\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","type"]}}},"gcp:ces/AppDefaultChannelProfile:AppDefaultChannelProfile":{"properties":{"channelType":{"type":"string","description":"The type of the channel profile.\nPossible values:\nUNKNOWN\nWEB_UI\nAPI\nTWILIO\nGOOGLE_TELEPHONY_PLATFORM\nCONTACT_CENTER_AS_A_SERVICE\n"},"disableBargeInControl":{"type":"boolean","description":"Whether to disable user barge-in in the conversation.\n- true: User interruptions are disabled while the agent is speaking.\n- false: The agent retains automatic control over when the user can interrupt.\n"},"disableDtmf":{"type":"boolean","description":"Whether to disable DTMF (dual-tone multi-frequency).\n"},"personaProperty":{"$ref":"#/types/gcp:ces/AppDefaultChannelProfilePersonaProperty:AppDefaultChannelProfilePersonaProperty","description":"Represents the persona property of a channel.\nStructure is documented below.\n"},"profileId":{"type":"string","description":"The unique identifier of the channel profile.\n"},"webWidgetConfig":{"$ref":"#/types/gcp:ces/AppDefaultChannelProfileWebWidgetConfig:AppDefaultChannelProfileWebWidgetConfig","description":"Message for configuration for the web widget.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/AppDefaultChannelProfilePersonaProperty:AppDefaultChannelProfilePersonaProperty":{"properties":{"persona":{"type":"string","description":"The persona of the channel.\nPossible values:\nUNKNOWN\nCONCISE\nCHATTY\n"}},"type":"object"},"gcp:ces/AppDefaultChannelProfileWebWidgetConfig:AppDefaultChannelProfileWebWidgetConfig":{"properties":{"modality":{"type":"string","description":"The modality of the web widget.\nPossible values:\nUNKNOWN_MODALITY\nCHAT_AND_VOICE\nVOICE_ONLY\nCHAT_ONLY\n"},"theme":{"type":"string","description":"The theme of the web widget.\nPossible values:\nUNKNOWN_THEME\nLIGHT\nDARK\n"},"webWidgetTitle":{"type":"string","description":"The title of the web widget.\n"}},"type":"object"},"gcp:ces/AppEvaluationMetricsThresholds:AppEvaluationMetricsThresholds":{"properties":{"goldenEvaluationMetricsThresholds":{"$ref":"#/types/gcp:ces/AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds:AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds","description":"Settings for golden evaluations.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds:AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholds":{"properties":{"expectationLevelMetricsThresholds":{"$ref":"#/types/gcp:ces/AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds:AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds","description":"Expectation level metrics thresholds.\nStructure is documented below.\n"},"turnLevelMetricsThresholds":{"$ref":"#/types/gcp:ces/AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds:AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds","description":"Turn level metrics thresholds.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds:AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsExpectationLevelMetricsThresholds":{"properties":{"toolInvocationParameterCorrectnessThreshold":{"type":"number","description":"The success threshold for individual tool invocation parameter\ncorrectness. Must be a float between 0 and 1. Default is 1.0.\n"}},"type":"object"},"gcp:ces/AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds:AppEvaluationMetricsThresholdsGoldenEvaluationMetricsThresholdsTurnLevelMetricsThresholds":{"properties":{"overallToolInvocationCorrectnessThreshold":{"type":"number","description":"The success threshold for overall tool invocation correctness. Must be\na float between 0 and 1. Default is 1.0.\n"},"semanticSimilaritySuccessThreshold":{"type":"integer","description":"The success threshold for semantic similarity. Must be an integer\nbetween 0 and 4. Default is \u003e= 3.\n"}},"type":"object"},"gcp:ces/AppLanguageSettings:AppLanguageSettings":{"properties":{"defaultLanguageCode":{"type":"string","description":"The default language code of the app.\n"},"enableMultilingualSupport":{"type":"boolean","description":"Enables multilingual support. If true, agents in the app will use pre-built\ninstructions to improve handling of multilingual input.\n"},"fallbackAction":{"type":"string","description":"The action to perform when an agent receives input in an unsupported\nlanguage.\nThis can be a predefined action or a custom tool call.\nValid values are:\n- A tool's full resource name, which triggers a specific tool execution.\n- A predefined system action, such as \"escalate\" or \"exit\", which triggers\nan EndSession signal with corresponding metadata\nto terminate the conversation.\n"},"supportedLanguageCodes":{"type":"array","items":{"type":"string"},"description":"List of languages codes supported by the app, in addition to the\n\u003cspan pulumi-lang-nodejs=\"`defaultLanguageCode`\" pulumi-lang-dotnet=\"`DefaultLanguageCode`\" pulumi-lang-go=\"`defaultLanguageCode`\" pulumi-lang-python=\"`default_language_code`\" pulumi-lang-yaml=\"`defaultLanguageCode`\" pulumi-lang-java=\"`defaultLanguageCode`\"\u003e`default_language_code`\u003c/span\u003e.\n"}},"type":"object"},"gcp:ces/AppLoggingSettings:AppLoggingSettings":{"properties":{"audioRecordingConfig":{"$ref":"#/types/gcp:ces/AppLoggingSettingsAudioRecordingConfig:AppLoggingSettingsAudioRecordingConfig","description":"Configuration for how the audio interactions should be recorded.\nStructure is documented below.\n"},"bigqueryExportSettings":{"$ref":"#/types/gcp:ces/AppLoggingSettingsBigqueryExportSettings:AppLoggingSettingsBigqueryExportSettings","description":"Settings to describe the BigQuery export behaviors for the app.\nStructure is documented below.\n"},"cloudLoggingSettings":{"$ref":"#/types/gcp:ces/AppLoggingSettingsCloudLoggingSettings:AppLoggingSettingsCloudLoggingSettings","description":"Settings to describe the Cloud Logging behaviors for the app.\nStructure is documented below.\n"},"conversationLoggingSettings":{"$ref":"#/types/gcp:ces/AppLoggingSettingsConversationLoggingSettings:AppLoggingSettingsConversationLoggingSettings","description":"Settings to describe the conversation logging behaviors for the app.\nStructure is documented below.\n"},"redactionConfig":{"$ref":"#/types/gcp:ces/AppLoggingSettingsRedactionConfig:AppLoggingSettingsRedactionConfig","description":"Configuration to instruct how sensitive data should be handled.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/AppLoggingSettingsAudioRecordingConfig:AppLoggingSettingsAudioRecordingConfig":{"properties":{"gcsBucket":{"type":"string","description":"The [Cloud Storage](https://cloud.google.com/storage) bucket to store the\nsession audio recordings. The URI must start with \"gs://\".\nNote: If the Cloud Storage bucket is in a different project from the app,\nyou should grant `storage.objects.create` permission to the CES service\nagent `service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"gcsPathPrefix":{"type":"string","description":"The Cloud Storage path prefix for audio recordings.\nThis prefix can include the following placeholders, which will be\ndynamically substituted at serving time:\n- $project:   project ID\n- $location:  app location\n- $app:       app ID\n- $date:      session date in YYYY-MM-DD format\n- $session:   session ID\nIf the path prefix is not specified, the default prefix\n`$project/$location/$app/$date/$session/` will be used.\n"}},"type":"object"},"gcp:ces/AppLoggingSettingsBigqueryExportSettings:AppLoggingSettingsBigqueryExportSettings":{"properties":{"dataset":{"type":"string","description":"The BigQuery dataset to export the data to.\n"},"enabled":{"type":"boolean","description":"Indicates whether the BigQuery export is enabled.\n"},"project":{"type":"string","description":"The project ID of the BigQuery dataset to export the data to.\nNote: If the BigQuery dataset is in a different project from the app, you should grant\nroles/bigquery.admin role to the CES service agent service-\u003cPROJECT-\nNUMBER\u003e@gcp-sa-ces.iam.gserviceaccount.com.\n"}},"type":"object"},"gcp:ces/AppLoggingSettingsCloudLoggingSettings:AppLoggingSettingsCloudLoggingSettings":{"properties":{"enableCloudLogging":{"type":"boolean","description":"Whether to enable Cloud Logging for the sessions.\n"}},"type":"object"},"gcp:ces/AppLoggingSettingsConversationLoggingSettings:AppLoggingSettingsConversationLoggingSettings":{"properties":{"disableConversationLogging":{"type":"boolean","description":"Whether to disable conversation logging for the sessions.\n"}},"type":"object"},"gcp:ces/AppLoggingSettingsRedactionConfig:AppLoggingSettingsRedactionConfig":{"properties":{"deidentifyTemplate":{"type":"string","description":"[DLP](https://cloud.google.com/dlp/docs) deidentify template name to\ninstruct on how to de-identify content.\nFormat:\n`projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`\n"},"enableRedaction":{"type":"boolean","description":"If true, redaction will be applied in various logging scenarios, including\nconversation history, Cloud Logging and audio recording.\n"},"inspectTemplate":{"type":"string","description":"[DLP](https://cloud.google.com/dlp/docs) inspect template name to configure\ndetection of sensitive data types.\nFormat:\n`projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`\n"}},"type":"object"},"gcp:ces/AppModelSettings:AppModelSettings":{"properties":{"model":{"type":"string","description":"The LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"If set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object"},"gcp:ces/AppTimeZoneSettings:AppTimeZoneSettings":{"properties":{"timeZone":{"type":"string","description":"The time zone of the app from the time zone database, e.g., America/Los_Angeles, Europe/Paris.\n"}},"type":"object"},"gcp:ces/AppVariableDeclaration:AppVariableDeclaration":{"properties":{"description":{"type":"string","description":"The description of the variable.\n"},"name":{"type":"string","description":"The name of the variable. The name must start with a letter or underscore\nand contain only letters, numbers, or underscores.\n"},"schema":{"$ref":"#/types/gcp:ces/AppVariableDeclarationSchema:AppVariableDeclarationSchema","description":"Represents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"}},"type":"object","required":["description","name","schema"]},"gcp:ces/AppVariableDeclarationSchema:AppVariableDeclarationSchema":{"properties":{"additionalProperties":{"type":"string","description":"Optional. Defines the schema for additional properties allowed in an object.\nThe value must be a valid JSON string representing the Schema object.\n(Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).\n"},"anyOf":{"type":"string","description":"Optional. The instance value should be valid against at least one of the schemas in this list.\n"},"default":{"type":"string","description":"Optional. Default value of the data. Represents a dynamically typed value\nwhich can be either null, a number, a string, a boolean, a struct,\nor a list of values. The provided default value must be compatible\nwith the defined 'type' and other schema constraints.\n"},"defs":{"type":"string","description":"A map of definitions for use by ref. Only allowed at the root of the schema.\n"},"description":{"type":"string","description":"The description of the data.\n"},"enums":{"type":"array","items":{"type":"string"},"description":"Possible values of the element of primitive type with enum format.\nExamples:\n1. We can define direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}\n2. We can define apartment number as :\n{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}\n"},"items":{"type":"string","description":"Schema of the elements of Type.ARRAY.\n"},"nullable":{"type":"boolean","description":"Indicates if the value may be null.\n"},"prefixItems":{"type":"string","description":"Optional. Schemas of initial elements of Type.ARRAY.\n"},"properties":{"type":"string","description":"Properties of Type.OBJECT.\n"},"ref":{"type":"string","description":"Allows indirect references between schema nodes. The value should be a\nvalid reference to a child of the root \u003cspan pulumi-lang-nodejs=\"`defs`\" pulumi-lang-dotnet=\"`Defs`\" pulumi-lang-go=\"`defs`\" pulumi-lang-python=\"`defs`\" pulumi-lang-yaml=\"`defs`\" pulumi-lang-java=\"`defs`\"\u003e`defs`\u003c/span\u003e.\nFor example, the following schema defines a reference to a schema node\nnamed \"Pet\":\ntype: object\nproperties:\npet:\nref: #/defs/Pet\ndefs:\nPet:\ntype: object\nproperties:\nname:\ntype: string\nThe value of the \"pet\" property is a reference to the schema node\nnamed \"Pet\".\nSee details in\nhttps://json-schema.org/understanding-json-schema/structuring.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"Required properties of Type.OBJECT.\n"},"title":{"type":"string","description":"The title of the schema.\n"},"type":{"type":"string","description":"The type of the data.\nPossible values:\nSTRING\nINTEGER\nNUMBER\nBOOLEAN\nOBJECT\nARRAY\n"},"uniqueItems":{"type":"boolean","description":"Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.\n"}},"type":"object","required":["type"]},"gcp:ces/AppVersionSnapshot:AppVersionSnapshot":{"properties":{"agents":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgent:AppVersionSnapshotAgent"},"description":"(Output)\nList of agents in the app.\nStructure is documented below.\n"},"apps":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotApp:AppVersionSnapshotApp"},"description":"Resource ID segment making up resource \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e. It identifies the resource within its parent collection as described in https://google.aip.dev/122.\n"},"examples":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExample:AppVersionSnapshotExample"},"description":"(Output)\nList of examples in the app.\nStructure is documented below.\n"},"guardrails":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrail:AppVersionSnapshotGuardrail"},"description":"(Output)\nList of guardrails for the app.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`\n"},"tools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotTool:AppVersionSnapshotTool"},"description":"(Output)\nList of available tools for the agent.\nFormat: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`\n"},"toolsets":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolset:AppVersionSnapshotToolset"},"description":"(Output)\nList of toolsets for the agent.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["agents","apps","examples","guardrails","tools","toolsets"]}}},"gcp:ces/AppVersionSnapshotAgent:AppVersionSnapshotAgent":{"properties":{"afterAgentCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentAfterAgentCallback:AppVersionSnapshotAgentAfterAgentCallback"},"description":"(Output)\nThe callbacks to execute after the agent is called.\nThe provided callbacks are executed sequentially in the exact order they\nare given in the list. If a callback returns an overridden response,\nexecution stops and any remaining callbacks are skipped.\nStructure is documented below.\n"},"afterModelCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentAfterModelCallback:AppVersionSnapshotAgentAfterModelCallback"},"description":"(Output)\nThe callbacks to execute after the model is called. If there are multiple\ncalls to the model, the callback will be executed multiple times.\nThe provided callbacks are executed sequentially in the exact order they\nare given in the list. If a callback returns an overridden response,\nexecution stops and any remaining callbacks are skipped.\nStructure is documented below.\n"},"afterToolCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentAfterToolCallback:AppVersionSnapshotAgentAfterToolCallback"},"description":"(Output)\nThe callbacks to execute after the tool is invoked. If there are multiple\ntool invocations, the callback will be executed multiple times.\nThe provided callbacks are executed sequentially in the exact order they\nare given in the list. If a callback returns an overridden response,\nexecution stops and any remaining callbacks are skipped.\nStructure is documented below.\n"},"beforeAgentCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentBeforeAgentCallback:AppVersionSnapshotAgentBeforeAgentCallback"},"description":"(Output)\nThe callbacks to execute before the agent is called.\nThe provided callbacks are executed sequentially in the exact order they\nare given in the list. If a callback returns an overridden response,\nexecution stops and any remaining callbacks are skipped.\nStructure is documented below.\n"},"beforeModelCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentBeforeModelCallback:AppVersionSnapshotAgentBeforeModelCallback"},"description":"(Output)\nThe callbacks to execute before the model is called. If there are multiple\ncalls to the model, the callback will be executed multiple times.\nThe provided callbacks are executed sequentially in the exact order they\nare given in the list. If a callback returns an overridden response,\nexecution stops and any remaining callbacks are skipped.\nStructure is documented below.\n"},"beforeToolCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentBeforeToolCallback:AppVersionSnapshotAgentBeforeToolCallback"},"description":"(Output)\nThe callbacks to execute before the tool is invoked. If there are multiple\ntool invocations, the callback will be executed multiple times.\nThe provided callbacks are executed sequentially in the exact order they\nare given in the list. If a callback returns an overridden response,\nexecution stops and any remaining callbacks are skipped.\nStructure is documented below.\n"},"childAgents":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of child agents in the agent tree.\nFormat: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"},"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"etag":{"type":"string","description":"(Output)\nETag used to ensure the object hasn't changed during a read-modify-write\noperation. If the etag is empty, the update will overwrite any concurrent\nchanges.\n"},"generatedSummary":{"type":"string","description":"(Output)\nIf the tool is generated by the LLM assistant, this field contains a\ndescriptive summary of the generation.\n"},"guardrails":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of guardrails for the app.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`\n"},"instruction":{"type":"string","description":"(Output)\nInstructions for the LLM model to guide the agent's behavior.\n"},"llmAgents":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentLlmAgent:AppVersionSnapshotAgentLlmAgent"},"description":"(Output)\nDefault agent type. The agent uses instructions and callbacks specified in\nthe agent to perform the task using a large language model.\n"},"modelSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentModelSetting:AppVersionSnapshotAgentModelSetting"},"description":"(Output)\nModel settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"remoteDialogflowAgents":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentRemoteDialogflowAgent:AppVersionSnapshotAgentRemoteDialogflowAgent"},"description":"(Output)\nThe agent which will transfer execution to an existing remote\n[Dialogflow](https://cloud.google.com/dialogflow/cx/docs/concept/console-conversational-agents)\nagent flow. The corresponding Dialogflow agent will process subsequent user\nqueries until the session ends or flow ends and the control is transferred\nback to the parent CES agent.\nStructure is documented below.\n"},"tools":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of available tools for the agent.\nFormat: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`\n"},"toolsets":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAgentToolset:AppVersionSnapshotAgentToolset"},"description":"(Output)\nList of toolsets for the agent.\nStructure is documented below.\n"},"updateTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["afterAgentCallbacks","afterModelCallbacks","afterToolCallbacks","beforeAgentCallbacks","beforeModelCallbacks","beforeToolCallbacks","childAgents","createTime","description","displayName","etag","generatedSummary","guardrails","instruction","llmAgents","modelSettings","name","remoteDialogflowAgents","tools","toolsets","updateTime"]}}},"gcp:ces/AppVersionSnapshotAgentAfterAgentCallback:AppVersionSnapshotAgentAfterAgentCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotAgentAfterModelCallback:AppVersionSnapshotAgentAfterModelCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotAgentAfterToolCallback:AppVersionSnapshotAgentAfterToolCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotAgentBeforeAgentCallback:AppVersionSnapshotAgentBeforeAgentCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotAgentBeforeModelCallback:AppVersionSnapshotAgentBeforeModelCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotAgentBeforeToolCallback:AppVersionSnapshotAgentBeforeToolCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotAgentLlmAgent:AppVersionSnapshotAgentLlmAgent":{"type":"object"},"gcp:ces/AppVersionSnapshotAgentModelSetting:AppVersionSnapshotAgentModelSetting":{"properties":{"model":{"type":"string","description":"(Output)\nThe LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"(Output)\nIf set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["model","temperature"]}}},"gcp:ces/AppVersionSnapshotAgentRemoteDialogflowAgent:AppVersionSnapshotAgentRemoteDialogflowAgent":{"properties":{"agent":{"type":"string","description":"(Output)\nThe name of the agent to transfer the conversation to. The agent must be\nin the same app as the current agent.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"},"environmentId":{"type":"string","description":"(Output)\nThe environment ID of the Dialogflow agent be used for the agent\nexecution. If not specified, the draft environment will be used.\n"},"flowId":{"type":"string","description":"(Output)\nThe flow ID of the flow in the Dialogflow agent.\n"},"inputVariableMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nThe mapping of the app variables names to the Dialogflow session\nparameters names to be sent to the Dialogflow agent as input.\n"},"outputVariableMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nThe mapping of the Dialogflow session parameters names to the app\nvariables names to be sent back to the CES agent after the Dialogflow\nagent execution ends.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["agent","environmentId","flowId","inputVariableMapping","outputVariableMapping"]}}},"gcp:ces/AppVersionSnapshotAgentToolset:AppVersionSnapshotAgentToolset":{"properties":{"toolIds":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe tools IDs to filter the toolset.\n"},"toolset":{"type":"string","description":"(Output)\nThe resource name of the Toolset from which this tool is derived.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["toolIds","toolset"]}}},"gcp:ces/AppVersionSnapshotApp:AppVersionSnapshotApp":{"properties":{"audioProcessingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppAudioProcessingConfig:AppVersionSnapshotAppAudioProcessingConfig"},"description":"(Output)\nConfiguration for how the input and output audio should be processed and\ndelivered.\nStructure is documented below.\n"},"clientCertificateSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppClientCertificateSetting:AppVersionSnapshotAppClientCertificateSetting"},"description":"(Output)\nThe default client certificate settings for the app.\nStructure is documented below.\n"},"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"dataStoreSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppDataStoreSetting:AppVersionSnapshotAppDataStoreSetting"},"description":"(Output)\nData store related settings for the app.\nStructure is documented below.\n"},"defaultChannelProfiles":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppDefaultChannelProfile:AppVersionSnapshotAppDefaultChannelProfile"},"description":"(Output)\nA ChannelProfile configures the agent's behavior for a specific communication\nchannel, such as web UI or telephony.\nStructure is documented below.\n"},"deploymentCount":{"type":"integer","description":"(Output)\nNumber of deployments in the app.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"etag":{"type":"string","description":"(Output)\nETag used to ensure the object hasn't changed during a read-modify-write\noperation. If the etag is empty, the update will overwrite any concurrent\nchanges.\n"},"evaluationMetricsThresholds":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppEvaluationMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThreshold"},"description":"(Output)\nThreshold settings for metrics in an Evaluation.\nStructure is documented below.\n"},"globalInstruction":{"type":"string","description":"(Output)\nInstructions for all the agents in the app.\nYou can use this instruction to set up a stable identity or personality\nacross all the agents.\n"},"guardrails":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of guardrails for the app.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/guardrails/{guardrail}`\n"},"languageSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLanguageSetting:AppVersionSnapshotAppLanguageSetting"},"description":"(Output)\nLanguage settings of the app.\nStructure is documented below.\n"},"loggingSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLoggingSetting:AppVersionSnapshotAppLoggingSetting"},"description":"(Output)\nSettings to describe the logging behaviors for the app.\nStructure is documented below.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nMetadata about the app. This field can be used to store additional\ninformation relevant to the app's details or intended usages.\n"},"modelSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppModelSetting:AppVersionSnapshotAppModelSetting"},"description":"(Output)\nModel settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"rootAgent":{"type":"string","description":"(Output)\nThe root agent is the entry point of the app.\nFormat: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"},"timeZoneSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppTimeZoneSetting:AppVersionSnapshotAppTimeZoneSetting"},"description":"(Output)\nTimeZone settings of the app.\nStructure is documented below.\n"},"updateTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was last updated.\n"},"variableDeclarations":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppVariableDeclaration:AppVersionSnapshotAppVariableDeclaration"},"description":"(Output)\nThe declarations of the variables.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["audioProcessingConfigs","clientCertificateSettings","createTime","dataStoreSettings","defaultChannelProfiles","deploymentCount","description","displayName","etag","evaluationMetricsThresholds","globalInstruction","guardrails","languageSettings","loggingSettings","metadata","modelSettings","name","rootAgent","timeZoneSettings","updateTime","variableDeclarations"]}}},"gcp:ces/AppVersionSnapshotAppAudioProcessingConfig:AppVersionSnapshotAppAudioProcessingConfig":{"properties":{"ambientSoundConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppAudioProcessingConfigAmbientSoundConfig:AppVersionSnapshotAppAudioProcessingConfigAmbientSoundConfig"},"description":"(Output)\nConfiguration for the ambient sound to be played with the synthesized agent\nresponse, to enhance the naturalness of the conversation.\nStructure is documented below.\n"},"bargeInConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppAudioProcessingConfigBargeInConfig:AppVersionSnapshotAppAudioProcessingConfigBargeInConfig"},"description":"(Output)\nConfiguration for how the user barge-in activities should be handled.\nStructure is documented below.\n"},"inactivityTimeout":{"type":"string","description":"(Output)\nThe duration of user inactivity (no speech or interaction) before the agent\nprompts the user for reengagement. If not set, the agent will not prompt\nthe user for reengagement.\n"},"synthesizeSpeechConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppAudioProcessingConfigSynthesizeSpeechConfig:AppVersionSnapshotAppAudioProcessingConfigSynthesizeSpeechConfig"},"description":"(Output)\nConfiguration of how the agent response should be synthesized, mapping from\nthe language code to SynthesizeSpeechConfig.\nIf the configuration for the specified language code is not found, the\nconfiguration for the root language code will be used. For example, if the\nmap contains \"en-us\" and \"en\", and the specified language code is \"en-gb\",\nthen \"en\" configuration will be used.\nNote: Language code is case-insensitive.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ambientSoundConfigs","bargeInConfigs","inactivityTimeout","synthesizeSpeechConfigs"]}}},"gcp:ces/AppVersionSnapshotAppAudioProcessingConfigAmbientSoundConfig:AppVersionSnapshotAppAudioProcessingConfigAmbientSoundConfig":{"properties":{"gcsUri":{"type":"string","description":"(Output)\nAmbient noise as a mono-channel, 16kHz WAV file stored in [Cloud\nStorage](https://cloud.google.com/storage).\nNote: Please make sure the CES service agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com` has\n`storage.objects.get` permission to the Cloud Storage object.\n"},"prebuiltAmbientSound":{"type":"string","description":"(Output)\nName of the prebuilt ambient sound.\nValid values are: - \u003cspan pulumi-lang-nodejs=\"\"coffeeShop\"\" pulumi-lang-dotnet=\"\"CoffeeShop\"\" pulumi-lang-go=\"\"coffeeShop\"\" pulumi-lang-python=\"\"coffee_shop\"\" pulumi-lang-yaml=\"\"coffeeShop\"\" pulumi-lang-java=\"\"coffeeShop\"\"\u003e\"coffee_shop\"\u003c/span\u003e - \"keyboard\" - \"keypad\" - \"hum\"\n-\u003cspan pulumi-lang-nodejs=\"\"office1\"\" pulumi-lang-dotnet=\"\"Office1\"\" pulumi-lang-go=\"\"office1\"\" pulumi-lang-python=\"\"office_1\"\" pulumi-lang-yaml=\"\"office1\"\" pulumi-lang-java=\"\"office1\"\"\u003e\"office_1\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"office2\"\" pulumi-lang-dotnet=\"\"Office2\"\" pulumi-lang-go=\"\"office2\"\" pulumi-lang-python=\"\"office_2\"\" pulumi-lang-yaml=\"\"office2\"\" pulumi-lang-java=\"\"office2\"\"\u003e\"office_2\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"office3\"\" pulumi-lang-dotnet=\"\"Office3\"\" pulumi-lang-go=\"\"office3\"\" pulumi-lang-python=\"\"office_3\"\" pulumi-lang-yaml=\"\"office3\"\" pulumi-lang-java=\"\"office3\"\"\u003e\"office_3\"\u003c/span\u003e\n-\u003cspan pulumi-lang-nodejs=\"\"room1\"\" pulumi-lang-dotnet=\"\"Room1\"\" pulumi-lang-go=\"\"room1\"\" pulumi-lang-python=\"\"room_1\"\" pulumi-lang-yaml=\"\"room1\"\" pulumi-lang-java=\"\"room1\"\"\u003e\"room_1\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"room2\"\" pulumi-lang-dotnet=\"\"Room2\"\" pulumi-lang-go=\"\"room2\"\" pulumi-lang-python=\"\"room_2\"\" pulumi-lang-yaml=\"\"room2\"\" pulumi-lang-java=\"\"room2\"\"\u003e\"room_2\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"room3\"\" pulumi-lang-dotnet=\"\"Room3\"\" pulumi-lang-go=\"\"room3\"\" pulumi-lang-python=\"\"room_3\"\" pulumi-lang-yaml=\"\"room3\"\" pulumi-lang-java=\"\"room3\"\"\u003e\"room_3\"\u003c/span\u003e\n-\u003cspan pulumi-lang-nodejs=\"\"room4\"\" pulumi-lang-dotnet=\"\"Room4\"\" pulumi-lang-go=\"\"room4\"\" pulumi-lang-python=\"\"room_4\"\" pulumi-lang-yaml=\"\"room4\"\" pulumi-lang-java=\"\"room4\"\"\u003e\"room_4\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"room5\"\" pulumi-lang-dotnet=\"\"Room5\"\" pulumi-lang-go=\"\"room5\"\" pulumi-lang-python=\"\"room_5\"\" pulumi-lang-yaml=\"\"room5\"\" pulumi-lang-java=\"\"room5\"\"\u003e\"room_5\"\u003c/span\u003e - \u003cspan pulumi-lang-nodejs=\"\"airConditioner\"\" pulumi-lang-dotnet=\"\"AirConditioner\"\" pulumi-lang-go=\"\"airConditioner\"\" pulumi-lang-python=\"\"air_conditioner\"\" pulumi-lang-yaml=\"\"airConditioner\"\" pulumi-lang-java=\"\"airConditioner\"\"\u003e\"air_conditioner\"\u003c/span\u003e\n"},"volumeGainDb":{"type":"number","description":"(Output)\nVolume gain (in dB) of the normal native volume supported by\nambient noise, in the range [-96.0, 16.0]. If unset, or set to a value of\n0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB)\nwill play at approximately half the amplitude of the normal native signal\namplitude. A value of +6.0 (dB) will play at approximately twice the\namplitude of the normal native signal amplitude. We strongly recommend not\nto exceed +10 (dB) as there's usually no effective increase in loudness for\nany value greater than that.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["gcsUri","prebuiltAmbientSound","volumeGainDb"]}}},"gcp:ces/AppVersionSnapshotAppAudioProcessingConfigBargeInConfig:AppVersionSnapshotAppAudioProcessingConfigBargeInConfig":{"properties":{"bargeInAwareness":{"type":"boolean","description":"(Output)\nIf enabled, the agent will adapt its next response based on the assumption\nthat the user hasn't heard the full preceding agent message.\nThis should not be used in scenarios where agent responses are displayed\nvisually.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bargeInAwareness"]}}},"gcp:ces/AppVersionSnapshotAppAudioProcessingConfigSynthesizeSpeechConfig:AppVersionSnapshotAppAudioProcessingConfigSynthesizeSpeechConfig":{"properties":{"languageCode":{"type":"string","description":"(Required) The identifier for this object. Format specified above.\n"},"speakingRate":{"type":"number","description":"(Output)\nThe speaking rate/speed in the range [0.25, 2.0]. 1.0 is the normal native\nspeed supported by the specific voice. 2.0 is twice as fast, and 0.5 is\nhalf as fast. Values outside of the range [0.25, 2.0] will return an error.\n"},"voice":{"type":"string","description":"(Output)\nThe name of the voice. If not set, the service will choose a\nvoice based on the other parameters such as language_code.\nFor the list of available voices, please refer to Supported voices and\nlanguages from Cloud Text-to-Speech.\n"}},"type":"object","required":["languageCode"],"language":{"nodejs":{"requiredOutputs":["languageCode","speakingRate","voice"]}}},"gcp:ces/AppVersionSnapshotAppClientCertificateSetting:AppVersionSnapshotAppClientCertificateSetting":{"properties":{"passphrase":{"type":"string","description":"(Output)\nThe passphrase to decrypt the private key.\nShould be left unset if the private key is not encrypted.\n"},"privateKey":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource\nstoring the private key encoded in PEM format.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n"},"tlsCertificate":{"type":"string","description":"(Output)\nThe TLS certificate encoded in PEM format.\nThis string must include the begin header and end footer lines.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["passphrase","privateKey","tlsCertificate"]}}},"gcp:ces/AppVersionSnapshotAppDataStoreSetting:AppVersionSnapshotAppDataStoreSetting":{"properties":{"engines":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppDataStoreSettingEngine:AppVersionSnapshotAppDataStoreSettingEngine"},"description":"(Output)\nThe engines for the app.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["engines"]}}},"gcp:ces/AppVersionSnapshotAppDataStoreSettingEngine:AppVersionSnapshotAppDataStoreSettingEngine":{"properties":{"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"type":{"type":"string","description":"(Output)\nThe type of the data store. This field is readonly and populated by the\nserver.\nPossible values:\nPUBLIC_WEB\nUNSTRUCTURED\nFAQ\nCONNECTOR\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","type"]}}},"gcp:ces/AppVersionSnapshotAppDefaultChannelProfile:AppVersionSnapshotAppDefaultChannelProfile":{"properties":{"channelType":{"type":"string","description":"(Output)\nThe type of the channel profile.\nPossible values:\nUNKNOWN\nWEB_UI\nAPI\nTWILIO\nGOOGLE_TELEPHONY_PLATFORM\nCONTACT_CENTER_AS_A_SERVICE\n"},"disableBargeInControl":{"type":"boolean","description":"(Output)\nWhether to disable user barge-in in the conversation.\n- true: User interruptions are disabled while the agent is speaking.\n- false: The agent retains automatic control over when the user can interrupt.\n"},"disableDtmf":{"type":"boolean","description":"(Output)\nWhether to disable DTMF (dual-tone multi-frequency).\n"},"personaProperties":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppDefaultChannelProfilePersonaProperty:AppVersionSnapshotAppDefaultChannelProfilePersonaProperty"},"description":"(Output)\nRepresents the persona property of a channel.\nStructure is documented below.\n"},"profileId":{"type":"string","description":"(Output)\nThe unique identifier of the channel profile.\n"},"webWidgetConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppDefaultChannelProfileWebWidgetConfig:AppVersionSnapshotAppDefaultChannelProfileWebWidgetConfig"},"description":"(Output)\nMessage for configuration for the web widget.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["channelType","disableBargeInControl","disableDtmf","personaProperties","profileId","webWidgetConfigs"]}}},"gcp:ces/AppVersionSnapshotAppDefaultChannelProfilePersonaProperty:AppVersionSnapshotAppDefaultChannelProfilePersonaProperty":{"properties":{"persona":{"type":"string","description":"(Output)\nThe persona of the channel.\nPossible values:\nUNKNOWN\nCONCISE\nCHATTY\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["persona"]}}},"gcp:ces/AppVersionSnapshotAppDefaultChannelProfileWebWidgetConfig:AppVersionSnapshotAppDefaultChannelProfileWebWidgetConfig":{"properties":{"modality":{"type":"string","description":"(Output)\nThe modality of the web widget.\nPossible values:\nUNKNOWN_MODALITY\nCHAT_AND_VOICE\nVOICE_ONLY\nCHAT_ONLY\n"},"theme":{"type":"string","description":"(Output)\nThe theme of the web widget.\nPossible values:\nUNKNOWN_THEME\nLIGHT\nDARK\n"},"webWidgetTitle":{"type":"string","description":"(Output)\nThe title of the web widget.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["modality","theme","webWidgetTitle"]}}},"gcp:ces/AppVersionSnapshotAppEvaluationMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThreshold":{"properties":{"goldenEvaluationMetricsThresholds":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThreshold"},"description":"(Output)\nSettings for golden evaluations.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["goldenEvaluationMetricsThresholds"]}}},"gcp:ces/AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThreshold":{"properties":{"expectationLevelMetricsThresholds":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdExpectationLevelMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdExpectationLevelMetricsThreshold"},"description":"(Output)\nExpectation level metrics thresholds.\nStructure is documented below.\n"},"turnLevelMetricsThresholds":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdTurnLevelMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdTurnLevelMetricsThreshold"},"description":"(Output)\nTurn level metrics thresholds.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["expectationLevelMetricsThresholds","turnLevelMetricsThresholds"]}}},"gcp:ces/AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdExpectationLevelMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdExpectationLevelMetricsThreshold":{"properties":{"toolInvocationParameterCorrectnessThreshold":{"type":"number","description":"(Output)\nThe success threshold for individual tool invocation parameter\ncorrectness. Must be a float between 0 and 1. Default is 1.0.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["toolInvocationParameterCorrectnessThreshold"]}}},"gcp:ces/AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdTurnLevelMetricsThreshold:AppVersionSnapshotAppEvaluationMetricsThresholdGoldenEvaluationMetricsThresholdTurnLevelMetricsThreshold":{"properties":{"overallToolInvocationCorrectnessThreshold":{"type":"number","description":"(Output)\nThe success threshold for overall tool invocation correctness. Must be\na float between 0 and 1. Default is 1.0.\n"},"semanticSimilaritySuccessThreshold":{"type":"integer","description":"(Output)\nThe success threshold for semantic similarity. Must be an integer\nbetween 0 and 4. Default is \u003e= 3.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["overallToolInvocationCorrectnessThreshold","semanticSimilaritySuccessThreshold"]}}},"gcp:ces/AppVersionSnapshotAppLanguageSetting:AppVersionSnapshotAppLanguageSetting":{"properties":{"defaultLanguageCode":{"type":"string","description":"(Output)\nThe default language code of the app.\n"},"enableMultilingualSupport":{"type":"boolean","description":"(Output)\nEnables multilingual support. If true, agents in the app will use pre-built\ninstructions to improve handling of multilingual input.\n"},"fallbackAction":{"type":"string","description":"(Output)\nThe action to perform when an agent receives input in an unsupported\nlanguage.\nThis can be a predefined action or a custom tool call.\nValid values are:\n- A tool's full resource name, which triggers a specific tool execution.\n- A predefined system action, such as \"escalate\" or \"exit\", which triggers\nan EndSession signal with corresponding metadata\nto terminate the conversation.\n"},"supportedLanguageCodes":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of languages codes supported by the app, in addition to the\n\u003cspan pulumi-lang-nodejs=\"`defaultLanguageCode`\" pulumi-lang-dotnet=\"`DefaultLanguageCode`\" pulumi-lang-go=\"`defaultLanguageCode`\" pulumi-lang-python=\"`default_language_code`\" pulumi-lang-yaml=\"`defaultLanguageCode`\" pulumi-lang-java=\"`defaultLanguageCode`\"\u003e`default_language_code`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["defaultLanguageCode","enableMultilingualSupport","fallbackAction","supportedLanguageCodes"]}}},"gcp:ces/AppVersionSnapshotAppLoggingSetting:AppVersionSnapshotAppLoggingSetting":{"properties":{"audioRecordingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLoggingSettingAudioRecordingConfig:AppVersionSnapshotAppLoggingSettingAudioRecordingConfig"},"description":"(Output)\nConfiguration for how the audio interactions should be recorded.\nStructure is documented below.\n"},"bigqueryExportSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLoggingSettingBigqueryExportSetting:AppVersionSnapshotAppLoggingSettingBigqueryExportSetting"},"description":"(Output)\nSettings to describe the BigQuery export behaviors for the app.\nStructure is documented below.\n"},"cloudLoggingSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLoggingSettingCloudLoggingSetting:AppVersionSnapshotAppLoggingSettingCloudLoggingSetting"},"description":"(Output)\nSettings to describe the Cloud Logging behaviors for the app.\nStructure is documented below.\n"},"conversationLoggingSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLoggingSettingConversationLoggingSetting:AppVersionSnapshotAppLoggingSettingConversationLoggingSetting"},"description":"(Output)\nSettings to describe the conversation logging behaviors for the app.\nStructure is documented below.\n"},"redactionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppLoggingSettingRedactionConfig:AppVersionSnapshotAppLoggingSettingRedactionConfig"},"description":"(Output)\nConfiguration to instruct how sensitive data should be handled.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["audioRecordingConfigs","bigqueryExportSettings","cloudLoggingSettings","conversationLoggingSettings","redactionConfigs"]}}},"gcp:ces/AppVersionSnapshotAppLoggingSettingAudioRecordingConfig:AppVersionSnapshotAppLoggingSettingAudioRecordingConfig":{"properties":{"gcsBucket":{"type":"string","description":"(Output)\nThe [Cloud Storage](https://cloud.google.com/storage) bucket to store the\nsession audio recordings. The URI must start with \"gs://\".\nNote: If the Cloud Storage bucket is in a different project from the app,\nyou should grant `storage.objects.create` permission to the CES service\nagent `service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"gcsPathPrefix":{"type":"string","description":"(Output)\nThe Cloud Storage path prefix for audio recordings.\nThis prefix can include the following placeholders, which will be\ndynamically substituted at serving time:\n- $project:   project ID\n- $location:  app location\n- $app:       app ID\n- $date:      session date in YYYY-MM-DD format\n- $session:   session ID\nIf the path prefix is not specified, the default prefix\n`$project/$location/$app/$date/$session/` will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["gcsBucket","gcsPathPrefix"]}}},"gcp:ces/AppVersionSnapshotAppLoggingSettingBigqueryExportSetting:AppVersionSnapshotAppLoggingSettingBigqueryExportSetting":{"properties":{"dataset":{"type":"string","description":"(Output)\nThe BigQuery dataset to export the data to.\n"},"enabled":{"type":"boolean","description":"(Output)\nWhether the guardrail is enabled.\n"},"project":{"type":"string","description":"The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataset","enabled","project"]}}},"gcp:ces/AppVersionSnapshotAppLoggingSettingCloudLoggingSetting:AppVersionSnapshotAppLoggingSettingCloudLoggingSetting":{"properties":{"enableCloudLogging":{"type":"boolean","description":"(Output)\nWhether to enable Cloud Logging for the sessions.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableCloudLogging"]}}},"gcp:ces/AppVersionSnapshotAppLoggingSettingConversationLoggingSetting:AppVersionSnapshotAppLoggingSettingConversationLoggingSetting":{"properties":{"disableConversationLogging":{"type":"boolean","description":"(Output)\nWhether to disable conversation logging for the sessions.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disableConversationLogging"]}}},"gcp:ces/AppVersionSnapshotAppLoggingSettingRedactionConfig:AppVersionSnapshotAppLoggingSettingRedactionConfig":{"properties":{"deidentifyTemplate":{"type":"string","description":"(Output)\n[DLP](https://cloud.google.com/dlp/docs) deidentify template name to\ninstruct on how to de-identify content.\nFormat:\n`projects/{project}/locations/{location}/deidentifyTemplates/{deidentify_template}`\n"},"enableRedaction":{"type":"boolean","description":"(Output)\nIf true, redaction will be applied in various logging scenarios, including\nconversation history, Cloud Logging and audio recording.\n"},"inspectTemplate":{"type":"string","description":"(Output)\n[DLP](https://cloud.google.com/dlp/docs) inspect template name to configure\ndetection of sensitive data types.\nFormat:\n`projects/{project}/locations/{location}/inspectTemplates/{inspect_template}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["deidentifyTemplate","enableRedaction","inspectTemplate"]}}},"gcp:ces/AppVersionSnapshotAppModelSetting:AppVersionSnapshotAppModelSetting":{"properties":{"model":{"type":"string","description":"(Output)\nThe LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"(Output)\nIf set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["model","temperature"]}}},"gcp:ces/AppVersionSnapshotAppTimeZoneSetting:AppVersionSnapshotAppTimeZoneSetting":{"properties":{"timeZone":{"type":"string","description":"(Output)\nThe time zone of the app from the time zone database, e.g., America/Los_Angeles, Europe/Paris.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["timeZone"]}}},"gcp:ces/AppVersionSnapshotAppVariableDeclaration:AppVersionSnapshotAppVariableDeclaration":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"schemas":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotAppVariableDeclarationSchema:AppVersionSnapshotAppVariableDeclarationSchema"},"description":"(Output)\nRepresents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","name","schemas"]}}},"gcp:ces/AppVersionSnapshotAppVariableDeclarationSchema:AppVersionSnapshotAppVariableDeclarationSchema":{"properties":{"additionalProperties":{"type":"string","description":"(Output)\nOptional. Defines the schema for additional properties allowed in an object.\nThe value must be a valid JSON string representing the Schema object.\n(Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).\n"},"anyOf":{"type":"string","description":"(Output)\nOptional. The instance value should be valid against at least one of the schemas in this list.\n"},"default":{"type":"string","description":"(Output)\nOptional. Default value of the data. Represents a dynamically typed value\nwhich can be either null, a number, a string, a boolean, a struct,\nor a list of values. The provided default value must be compatible\nwith the defined 'type' and other schema constraints.\n"},"defs":{"type":"string","description":"(Output)\nA map of definitions for use by ref. Only allowed at the root of the schema.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"enums":{"type":"array","items":{"type":"string"},"description":"(Output)\nPossible values of the element of primitive type with enum format.\nExamples:\n1. We can define direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}\n2. We can define apartment number as :\n{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}\n"},"items":{"type":"string","description":"(Output)\nSchema of the elements of Type.ARRAY.\n"},"nullable":{"type":"boolean","description":"(Output)\nIndicates if the value may be null.\n"},"prefixItems":{"type":"string","description":"(Output)\nOptional. Schemas of initial elements of Type.ARRAY.\n"},"properties":{"type":"string","description":"(Output)\nProperties of Type.OBJECT.\n"},"ref":{"type":"string","description":"(Output)\nAllows indirect references between schema nodes. The value should be a\nvalid reference to a child of the root \u003cspan pulumi-lang-nodejs=\"`defs`\" pulumi-lang-dotnet=\"`Defs`\" pulumi-lang-go=\"`defs`\" pulumi-lang-python=\"`defs`\" pulumi-lang-yaml=\"`defs`\" pulumi-lang-java=\"`defs`\"\u003e`defs`\u003c/span\u003e.\nFor example, the following schema defines a reference to a schema node\nnamed \"Pet\":\ntype: object\nproperties:\npet:\nref: #/defs/Pet\ndefs:\nPet:\ntype: object\nproperties:\nname:\ntype: string\nThe value of the \"pet\" property is a reference to the schema node\nnamed \"Pet\".\nSee details in\nhttps://json-schema.org/understanding-json-schema/structuring.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"(Output)\nRequired properties of Type.OBJECT.\n"},"type":{"type":"string","description":"(Output)\nThe type of the data store. This field is readonly and populated by the\nserver.\nPossible values:\nPUBLIC_WEB\nUNSTRUCTURED\nFAQ\nCONNECTOR\n"},"uniqueItems":{"type":"boolean","description":"(Output)\nIndicate the items in the array must be unique. Only applies to TYPE.ARRAY.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalProperties","anyOf","default","defs","description","enums","items","nullable","prefixItems","properties","ref","requireds","type","uniqueItems"]}}},"gcp:ces/AppVersionSnapshotExample:AppVersionSnapshotExample":{"properties":{"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"entryAgent":{"type":"string","description":"(Output)\nThe agent that initially handles the conversation. If not specified, the\nexample represents a conversation that is handled by the root agent.\nFormat: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"},"etag":{"type":"string","description":"(Output)\nETag used to ensure the object hasn't changed during a read-modify-write\noperation. If the etag is empty, the update will overwrite any concurrent\nchanges.\n"},"invalid":{"type":"boolean","description":"(Output)\nThe example may become invalid if referencing resources are deleted.\nInvalid examples will not be used as few-shot examples.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessage:AppVersionSnapshotExampleMessage"},"description":"(Output)\nThe collection of messages that make up the conversation.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"updateTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createTime","description","displayName","entryAgent","etag","invalid","messages","name","updateTime"]}}},"gcp:ces/AppVersionSnapshotExampleMessage:AppVersionSnapshotExampleMessage":{"properties":{"chunks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunk:AppVersionSnapshotExampleMessageChunk"},"description":"(Output)\nContent of the message as a series of chunks.\nStructure is documented below.\n"},"role":{"type":"string","description":"(Output)\nThe role within the conversation, e.g., user, agent.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["chunks","role"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunk:AppVersionSnapshotExampleMessageChunk":{"properties":{"agentTransfers":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunkAgentTransfer:AppVersionSnapshotExampleMessageChunkAgentTransfer"},"description":"(Output)\nRepresents an event indicating the transfer of a conversation to a different\nagent.\nStructure is documented below.\n"},"images":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunkImage:AppVersionSnapshotExampleMessageChunkImage"},"description":"(Output)\nRepresents an image input or output in the conversation.\nStructure is documented below.\n"},"text":{"type":"string","description":"(Output)\nText for the agent to respond with.\n"},"toolCalls":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunkToolCall:AppVersionSnapshotExampleMessageChunkToolCall"},"description":"(Output)\nRequest for the client or the agent to execute the specified tool.\nStructure is documented below.\n"},"toolResponses":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunkToolResponse:AppVersionSnapshotExampleMessageChunkToolResponse"},"description":"(Output)\nThe execution result of a specific tool from the client or the agent.\nStructure is documented below.\n"},"updatedVariables":{"type":"string","description":"(Output)\nA struct represents variables that were updated in the conversation,\nkeyed by variable names.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["agentTransfers","images","text","toolCalls","toolResponses","updatedVariables"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunkAgentTransfer:AppVersionSnapshotExampleMessageChunkAgentTransfer":{"properties":{"displayName":{"type":"string","description":"The display name of the app version.\n"},"targetAgent":{"type":"string","description":"(Output)\nThe agent to which the conversation is being transferred. The agent will\nhandle the conversation from this point forward.\nFormat: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","targetAgent"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunkImage:AppVersionSnapshotExampleMessageChunkImage":{"properties":{"data":{"type":"string","description":"(Output)\nRaw bytes of the image.\n"},"mimeType":{"type":"string","description":"(Output)\nThe IANA standard MIME type of the source data.\nSupported image types includes:\n* image/png\n* image/jpeg\n* image/webp\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["data","mimeType"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunkToolCall:AppVersionSnapshotExampleMessageChunkToolCall":{"properties":{"args":{"type":"string","description":"(Output)\nThe input parameters and values for the tool in JSON object format.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"id":{"type":"string","description":"(Output)\nThe matching ID of the tool call the response is for.\n"},"tool":{"type":"string","description":"(Output)\nThe name of the tool to execute.\nFormat: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`\n"},"toolsetTools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunkToolCallToolsetTool:AppVersionSnapshotExampleMessageChunkToolCallToolsetTool"},"description":"(Output)\nA tool that is created from a toolset.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["args","displayName","id","tool","toolsetTools"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunkToolCallToolsetTool:AppVersionSnapshotExampleMessageChunkToolCallToolsetTool":{"properties":{"toolId":{"type":"string","description":"(Output)\nThe tool ID to filter the tools to retrieve the schema for.\n"},"toolset":{"type":"string","description":"(Output)\nThe resource name of the Toolset from which this tool is derived.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["toolId","toolset"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunkToolResponse:AppVersionSnapshotExampleMessageChunkToolResponse":{"properties":{"displayName":{"type":"string","description":"The display name of the app version.\n"},"id":{"type":"string","description":"(Output)\nThe matching ID of the tool call the response is for.\n"},"response":{"type":"string","description":"(Output)\nRepresents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"},"tool":{"type":"string","description":"(Output)\nThe name of the tool to execute.\nFormat: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`\n"},"toolsetTools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotExampleMessageChunkToolResponseToolsetTool:AppVersionSnapshotExampleMessageChunkToolResponseToolsetTool"},"description":"(Output)\nA tool that is created from a toolset.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName","id","response","tool","toolsetTools"]}}},"gcp:ces/AppVersionSnapshotExampleMessageChunkToolResponseToolsetTool:AppVersionSnapshotExampleMessageChunkToolResponseToolsetTool":{"properties":{"toolId":{"type":"string","description":"(Output)\nThe tool ID to filter the tools to retrieve the schema for.\n"},"toolset":{"type":"string","description":"(Output)\nThe resource name of the Toolset from which this tool is derived.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["toolId","toolset"]}}},"gcp:ces/AppVersionSnapshotGuardrail:AppVersionSnapshotGuardrail":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailAction:AppVersionSnapshotGuardrailAction"},"description":"(Output)\nAction that is taken when a certain precondition is met.\nStructure is documented below.\n"},"codeCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailCodeCallback:AppVersionSnapshotGuardrailCodeCallback"},"description":"(Output)\nGuardrail that blocks the conversation based on the code callbacks\nprovided.\nStructure is documented below.\n"},"contentFilters":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailContentFilter:AppVersionSnapshotGuardrailContentFilter"},"description":"(Output)\nGuardrail that bans certain content from being used in the conversation.\nStructure is documented below.\n"},"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"enabled":{"type":"boolean","description":"(Output)\nWhether the guardrail is enabled.\n"},"etag":{"type":"string","description":"(Output)\nETag used to ensure the object hasn't changed during a read-modify-write\noperation. If the etag is empty, the update will overwrite any concurrent\nchanges.\n"},"llmPolicies":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailLlmPolicy:AppVersionSnapshotGuardrailLlmPolicy"},"description":"(Output)\nGuardrail that blocks the conversation if the LLM response is considered\nviolating the policy based on the LLM classification.\nStructure is documented below.\n"},"llmPromptSecurities":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurity:AppVersionSnapshotGuardrailLlmPromptSecurity"},"description":"(Output)\nGuardrail that blocks the conversation if the input is considered unsafe\nbased on the LLM classification.\nStructure is documented below.\n"},"modelSafeties":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailModelSafety:AppVersionSnapshotGuardrailModelSafety"},"description":"(Output)\nModel safety settings overrides. When this is set, it will override the\ndefault settings and trigger the guardrail if the response is considered\nunsafe.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"updateTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["actions","codeCallbacks","contentFilters","createTime","description","displayName","enabled","etag","llmPolicies","llmPromptSecurities","modelSafeties","name","updateTime"]}}},"gcp:ces/AppVersionSnapshotGuardrailAction:AppVersionSnapshotGuardrailAction":{"properties":{"generativeAnswers":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailActionGenerativeAnswer:AppVersionSnapshotGuardrailActionGenerativeAnswer"},"description":"(Output)\nThe agent will immediately respond with a generative answer.\nStructure is documented below.\n"},"respondImmediatelies":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailActionRespondImmediately:AppVersionSnapshotGuardrailActionRespondImmediately"},"description":"(Output)\nThe agent will immediately respond with a preconfigured response.\nStructure is documented below.\n"},"transferAgents":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailActionTransferAgent:AppVersionSnapshotGuardrailActionTransferAgent"},"description":"(Output)\nThe agent will transfer the conversation to a different agent.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["generativeAnswers","respondImmediatelies","transferAgents"]}}},"gcp:ces/AppVersionSnapshotGuardrailActionGenerativeAnswer:AppVersionSnapshotGuardrailActionGenerativeAnswer":{"properties":{"prompt":{"type":"string","description":"(Output)\nThe prompt definition. If not set, default prompt will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["prompt"]}}},"gcp:ces/AppVersionSnapshotGuardrailActionRespondImmediately:AppVersionSnapshotGuardrailActionRespondImmediately":{"properties":{"responses":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailActionRespondImmediatelyResponse:AppVersionSnapshotGuardrailActionRespondImmediatelyResponse"},"description":"(Output)\nThe canned responses for the agent to choose from. The response is chosen\nrandomly.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["responses"]}}},"gcp:ces/AppVersionSnapshotGuardrailActionRespondImmediatelyResponse:AppVersionSnapshotGuardrailActionRespondImmediatelyResponse":{"properties":{"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"text":{"type":"string","description":"(Output)\nText for the agent to respond with.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disabled","text"]}}},"gcp:ces/AppVersionSnapshotGuardrailActionTransferAgent:AppVersionSnapshotGuardrailActionTransferAgent":{"properties":{"agent":{"type":"string","description":"(Output)\nThe name of the agent to transfer the conversation to. The agent must be\nin the same app as the current agent.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["agent"]}}},"gcp:ces/AppVersionSnapshotGuardrailCodeCallback:AppVersionSnapshotGuardrailCodeCallback":{"properties":{"afterAgentCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailCodeCallbackAfterAgentCallback:AppVersionSnapshotGuardrailCodeCallbackAfterAgentCallback"},"description":"(Output)\nA callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"},"afterModelCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailCodeCallbackAfterModelCallback:AppVersionSnapshotGuardrailCodeCallbackAfterModelCallback"},"description":"(Output)\nA callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"},"beforeAgentCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailCodeCallbackBeforeAgentCallback:AppVersionSnapshotGuardrailCodeCallbackBeforeAgentCallback"},"description":"(Output)\nA callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"},"beforeModelCallbacks":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailCodeCallbackBeforeModelCallback:AppVersionSnapshotGuardrailCodeCallbackBeforeModelCallback"},"description":"(Output)\nA callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["afterAgentCallbacks","afterModelCallbacks","beforeAgentCallbacks","beforeModelCallbacks"]}}},"gcp:ces/AppVersionSnapshotGuardrailCodeCallbackAfterAgentCallback:AppVersionSnapshotGuardrailCodeCallbackAfterAgentCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotGuardrailCodeCallbackAfterModelCallback:AppVersionSnapshotGuardrailCodeCallbackAfterModelCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotGuardrailCodeCallbackBeforeAgentCallback:AppVersionSnapshotGuardrailCodeCallbackBeforeAgentCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotGuardrailCodeCallbackBeforeModelCallback:AppVersionSnapshotGuardrailCodeCallbackBeforeModelCallback":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","disabled","pythonCode"]}}},"gcp:ces/AppVersionSnapshotGuardrailContentFilter:AppVersionSnapshotGuardrailContentFilter":{"properties":{"bannedContents":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of banned phrases. Applies to both user inputs and agent responses.\n"},"bannedContentsInAgentResponses":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of banned phrases. Applies only to agent responses.\n"},"bannedContentsInUserInputs":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of banned phrases. Applies only to user inputs.\n"},"disregardDiacritics":{"type":"boolean","description":"(Output)\nIf true, diacritics are ignored during matching.\n"},"matchType":{"type":"string","description":"(Output)\nMatch type for the content filter.\nPossible values:\nSIMPLE_STRING_MATCH\nWORD_BOUNDARY_STRING_MATCH\nREGEXP_MATCH\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bannedContents","bannedContentsInAgentResponses","bannedContentsInUserInputs","disregardDiacritics","matchType"]}}},"gcp:ces/AppVersionSnapshotGuardrailLlmPolicy:AppVersionSnapshotGuardrailLlmPolicy":{"properties":{"failOpen":{"type":"boolean","description":"(Output)\nIf an error occurs during the policy check, fail open and do not trigger\nthe guardrail.\n"},"maxConversationMessages":{"type":"integer","description":"(Output)\nWhen checking this policy, consider the last 'n' messages in the\nconversation.\nWhen not set a default value of 10 will be used.\n"},"modelSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailLlmPolicyModelSetting:AppVersionSnapshotGuardrailLlmPolicyModelSetting"},"description":"(Output)\nModel settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"policyScope":{"type":"string","description":"(Output)\nDefines when to apply the policy check during the conversation. If set to\n`POLICY_SCOPE_UNSPECIFIED`, the policy will be applied to the user input.\nWhen applying the policy to the agent response, additional latency will\nbe introduced before the agent can respond.\nPossible values:\nUSER_QUERY\nAGENT_RESPONSE\nUSER_QUERY_AND_AGENT_RESPONSE\n"},"prompt":{"type":"string","description":"(Output)\nThe prompt definition. If not set, default prompt will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failOpen","maxConversationMessages","modelSettings","policyScope","prompt"]}}},"gcp:ces/AppVersionSnapshotGuardrailLlmPolicyModelSetting:AppVersionSnapshotGuardrailLlmPolicyModelSetting":{"properties":{"model":{"type":"string","description":"(Output)\nThe LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"(Output)\nIf set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["model","temperature"]}}},"gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurity:AppVersionSnapshotGuardrailLlmPromptSecurity":{"properties":{"customPolicies":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicy:AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicy"},"description":"(Output)\nGuardrail that blocks the conversation if the LLM response is considered\nviolating the policy based on the LLM classification.\nStructure is documented below.\n"},"defaultSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurityDefaultSetting:AppVersionSnapshotGuardrailLlmPromptSecurityDefaultSetting"},"description":"(Output)\nConfiguration for default system security settings.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customPolicies","defaultSettings"]}}},"gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicy:AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicy":{"properties":{"failOpen":{"type":"boolean","description":"(Output)\nIf an error occurs during the policy check, fail open and do not trigger\nthe guardrail.\n"},"maxConversationMessages":{"type":"integer","description":"(Output)\nWhen checking this policy, consider the last 'n' messages in the\nconversation.\nWhen not set a default value of 10 will be used.\n"},"modelSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicyModelSetting:AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicyModelSetting"},"description":"(Output)\nModel settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"policyScope":{"type":"string","description":"(Output)\nDefines when to apply the policy check during the conversation. If set to\n`POLICY_SCOPE_UNSPECIFIED`, the policy will be applied to the user input.\nWhen applying the policy to the agent response, additional latency will\nbe introduced before the agent can respond.\nPossible values:\nUSER_QUERY\nAGENT_RESPONSE\nUSER_QUERY_AND_AGENT_RESPONSE\n"},"prompt":{"type":"string","description":"(Output)\nThe prompt definition. If not set, default prompt will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failOpen","maxConversationMessages","modelSettings","policyScope","prompt"]}}},"gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicyModelSetting:AppVersionSnapshotGuardrailLlmPromptSecurityCustomPolicyModelSetting":{"properties":{"model":{"type":"string","description":"(Output)\nThe LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"(Output)\nIf set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["model","temperature"]}}},"gcp:ces/AppVersionSnapshotGuardrailLlmPromptSecurityDefaultSetting:AppVersionSnapshotGuardrailLlmPromptSecurityDefaultSetting":{"properties":{"defaultPromptTemplate":{"type":"string","description":"(Output)\nThe default prompt template used by the system.\nThis field is for display purposes to show the user what prompt\nthe system uses by default. It is OUTPUT_ONLY.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["defaultPromptTemplate"]}}},"gcp:ces/AppVersionSnapshotGuardrailModelSafety:AppVersionSnapshotGuardrailModelSafety":{"properties":{"safetySettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotGuardrailModelSafetySafetySetting:AppVersionSnapshotGuardrailModelSafetySafetySetting"},"description":"(Output)\nList of safety settings.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["safetySettings"]}}},"gcp:ces/AppVersionSnapshotGuardrailModelSafetySafetySetting:AppVersionSnapshotGuardrailModelSafetySafetySetting":{"properties":{"category":{"type":"string","description":"(Output)\nThe harm category.\nPossible values:\nHARM_CATEGORY_HATE_SPEECH\nHARM_CATEGORY_DANGEROUS_CONTENT\nHARM_CATEGORY_HARASSMENT\nHARM_CATEGORY_SEXUALLY_EXPLICIT\n"},"threshold":{"type":"string","description":"(Output)\nThe harm block threshold.\nPossible values:\nBLOCK_LOW_AND_ABOVE\nBLOCK_MEDIUM_AND_ABOVE\nBLOCK_ONLY_HIGH\nBLOCK_NONE\nOFF\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["category","threshold"]}}},"gcp:ces/AppVersionSnapshotTool:AppVersionSnapshotTool":{"properties":{"clientFunctions":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolClientFunction:AppVersionSnapshotToolClientFunction"},"description":"(Output)\nRepresents a client-side function that the agent can invoke. When the\ntool is chosen by the agent, control is handed off to the client.\nThe client is responsible for executing the function and returning the result\nas a ToolResponse to continue the interaction with the agent.\nStructure is documented below.\n"},"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"dataStoreTools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreTool:AppVersionSnapshotToolDataStoreTool"},"description":"(Output)\nTool to retrieve from Vertex AI Search datastore or engine for grounding.\nAccepts either a datastore or an engine, but not both.\nSee Vertex AI Search:\nhttps://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction.\nStructure is documented below.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"etag":{"type":"string","description":"(Output)\nETag used to ensure the object hasn't changed during a read-modify-write\noperation. If the etag is empty, the update will overwrite any concurrent\nchanges.\n"},"executionType":{"type":"string","description":"(Output)\nPossible values:\nSYNCHRONOUS\nASYNCHRONOUS\n"},"generatedSummary":{"type":"string","description":"(Output)\nIf the tool is generated by the LLM assistant, this field contains a\ndescriptive summary of the generation.\n"},"googleSearchTools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolGoogleSearchTool:AppVersionSnapshotToolGoogleSearchTool"},"description":"(Output)\nRepresents a tool to perform Google web searches for grounding.\nSee\nhttps://cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"openApiTools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiTool:AppVersionSnapshotToolOpenApiTool"},"description":"(Output)\nA remote API tool defined by an OpenAPI schema.\nStructure is documented below.\n"},"pythonFunctions":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolPythonFunction:AppVersionSnapshotToolPythonFunction"},"description":"(Output)\nA Python function tool.\nStructure is documented below.\n"},"systemTools":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolSystemTool:AppVersionSnapshotToolSystemTool"},"description":"(Output)\nThe system tool.\nStructure is documented below.\n"},"updateTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientFunctions","createTime","dataStoreTools","displayName","etag","executionType","generatedSummary","googleSearchTools","name","openApiTools","pythonFunctions","systemTools","updateTime"]}}},"gcp:ces/AppVersionSnapshotToolClientFunction:AppVersionSnapshotToolClientFunction":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"parameters":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolClientFunctionParameter:AppVersionSnapshotToolClientFunctionParameter"},"description":"(Output)\nRepresents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"},"responses":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolClientFunctionResponse:AppVersionSnapshotToolClientFunctionResponse"},"description":"(Output)\nRepresents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","name","parameters","responses"]}}},"gcp:ces/AppVersionSnapshotToolClientFunctionParameter:AppVersionSnapshotToolClientFunctionParameter":{"properties":{"additionalProperties":{"type":"string","description":"(Output)\nOptional. Defines the schema for additional properties allowed in an object.\nThe value must be a valid JSON string representing the Schema object.\n(Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).\n"},"anyOf":{"type":"string","description":"(Output)\nOptional. The instance value should be valid against at least one of the schemas in this list.\n"},"default":{"type":"string","description":"(Output)\nOptional. Default value of the data. Represents a dynamically typed value\nwhich can be either null, a number, a string, a boolean, a struct,\nor a list of values. The provided default value must be compatible\nwith the defined 'type' and other schema constraints.\n"},"defs":{"type":"string","description":"(Output)\nA map of definitions for use by ref. Only allowed at the root of the schema.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"enums":{"type":"array","items":{"type":"string"},"description":"(Output)\nPossible values of the element of primitive type with enum format.\nExamples:\n1. We can define direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}\n2. We can define apartment number as :\n{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}\n"},"items":{"type":"string","description":"(Output)\nSchema of the elements of Type.ARRAY.\n"},"nullable":{"type":"boolean","description":"(Output)\nIndicates if the value may be null.\n"},"prefixItems":{"type":"string","description":"(Output)\nOptional. Schemas of initial elements of Type.ARRAY.\n"},"properties":{"type":"string","description":"(Output)\nProperties of Type.OBJECT.\n"},"ref":{"type":"string","description":"(Output)\nAllows indirect references between schema nodes. The value should be a\nvalid reference to a child of the root \u003cspan pulumi-lang-nodejs=\"`defs`\" pulumi-lang-dotnet=\"`Defs`\" pulumi-lang-go=\"`defs`\" pulumi-lang-python=\"`defs`\" pulumi-lang-yaml=\"`defs`\" pulumi-lang-java=\"`defs`\"\u003e`defs`\u003c/span\u003e.\nFor example, the following schema defines a reference to a schema node\nnamed \"Pet\":\ntype: object\nproperties:\npet:\nref: #/defs/Pet\ndefs:\nPet:\ntype: object\nproperties:\nname:\ntype: string\nThe value of the \"pet\" property is a reference to the schema node\nnamed \"Pet\".\nSee details in\nhttps://json-schema.org/understanding-json-schema/structuring.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"(Output)\nRequired properties of Type.OBJECT.\n"},"type":{"type":"string","description":"(Output)\nThe type of the data store. This field is readonly and populated by the\nserver.\nPossible values:\nPUBLIC_WEB\nUNSTRUCTURED\nFAQ\nCONNECTOR\n"},"uniqueItems":{"type":"boolean","description":"(Output)\nIndicate the items in the array must be unique. Only applies to TYPE.ARRAY.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalProperties","anyOf","default","defs","description","enums","items","nullable","prefixItems","properties","ref","requireds","type","uniqueItems"]}}},"gcp:ces/AppVersionSnapshotToolClientFunctionResponse:AppVersionSnapshotToolClientFunctionResponse":{"properties":{"additionalProperties":{"type":"string","description":"(Output)\nOptional. Defines the schema for additional properties allowed in an object.\nThe value must be a valid JSON string representing the Schema object.\n(Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).\n"},"anyOf":{"type":"string","description":"(Output)\nOptional. The instance value should be valid against at least one of the schemas in this list.\n"},"default":{"type":"string","description":"(Output)\nOptional. Default value of the data. Represents a dynamically typed value\nwhich can be either null, a number, a string, a boolean, a struct,\nor a list of values. The provided default value must be compatible\nwith the defined 'type' and other schema constraints.\n"},"defs":{"type":"string","description":"(Output)\nA map of definitions for use by ref. Only allowed at the root of the schema.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"enums":{"type":"array","items":{"type":"string"},"description":"(Output)\nPossible values of the element of primitive type with enum format.\nExamples:\n1. We can define direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}\n2. We can define apartment number as :\n{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}\n"},"items":{"type":"string","description":"(Output)\nSchema of the elements of Type.ARRAY.\n"},"nullable":{"type":"boolean","description":"(Output)\nIndicates if the value may be null.\n"},"prefixItems":{"type":"string","description":"(Output)\nOptional. Schemas of initial elements of Type.ARRAY.\n"},"properties":{"type":"string","description":"(Output)\nProperties of Type.OBJECT.\n"},"ref":{"type":"string","description":"(Output)\nAllows indirect references between schema nodes. The value should be a\nvalid reference to a child of the root \u003cspan pulumi-lang-nodejs=\"`defs`\" pulumi-lang-dotnet=\"`Defs`\" pulumi-lang-go=\"`defs`\" pulumi-lang-python=\"`defs`\" pulumi-lang-yaml=\"`defs`\" pulumi-lang-java=\"`defs`\"\u003e`defs`\u003c/span\u003e.\nFor example, the following schema defines a reference to a schema node\nnamed \"Pet\":\ntype: object\nproperties:\npet:\nref: #/defs/Pet\ndefs:\nPet:\ntype: object\nproperties:\nname:\ntype: string\nThe value of the \"pet\" property is a reference to the schema node\nnamed \"Pet\".\nSee details in\nhttps://json-schema.org/understanding-json-schema/structuring.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"(Output)\nRequired properties of Type.OBJECT.\n"},"type":{"type":"string","description":"(Output)\nThe type of the data store. This field is readonly and populated by the\nserver.\nPossible values:\nPUBLIC_WEB\nUNSTRUCTURED\nFAQ\nCONNECTOR\n"},"uniqueItems":{"type":"boolean","description":"(Output)\nIndicate the items in the array must be unique. Only applies to TYPE.ARRAY.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalProperties","anyOf","default","defs","description","enums","items","nullable","prefixItems","properties","ref","requireds","type","uniqueItems"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreTool:AppVersionSnapshotToolDataStoreTool":{"properties":{"boostSpecs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpec:AppVersionSnapshotToolDataStoreToolBoostSpec"},"description":"(Output)\nBoost specification to boost certain documents.\nStructure is documented below.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"engineSources":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSource:AppVersionSnapshotToolDataStoreToolEngineSource"},"description":"(Output)\nConfiguration for searching within an Engine, potentially targeting\nspecific DataStores.\nStructure is documented below.\n"},"maxResults":{"type":"integer","description":"(Output)\nNumber of search results to return per query.\nThe default value is 10. The maximum allowed value is 10.\n"},"modalityConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfig:AppVersionSnapshotToolDataStoreToolModalityConfig"},"description":"(Output)\nThe modality configs for the data store.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["boostSpecs","description","engineSources","maxResults","modalityConfigs","name"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpec:AppVersionSnapshotToolDataStoreToolBoostSpec":{"properties":{"dataStores":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe Data Store where the boosting configuration is applied. Full resource\nname of DataStore, such as\nprojects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.\n"},"specs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpec:AppVersionSnapshotToolDataStoreToolBoostSpecSpec"},"description":"(Output)\nA list of boosting specifications.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataStores","specs"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpec:AppVersionSnapshotToolDataStoreToolBoostSpecSpec":{"properties":{"conditionBoostSpecs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpec:AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpec"},"description":"(Output)\nA list of boosting specifications.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["conditionBoostSpecs"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpec:AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpec":{"properties":{"boost":{"type":"number","description":"(Output)\nStrength of the boost, which should be in [-1, 1]. Negative boost means\ndemotion. Default is 0.0.\nSetting to 1.0 gives the suggestions a big promotion. However, it does\nnot necessarily mean that the top result will be a boosted suggestion.\nSetting to -1.0 gives the suggestions a big demotion. However, other\nsuggestions that are relevant might still be shown.\nSetting to 0.0 means no boost applied. The boosting condition is\nignored.\n"},"boostControlSpecs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec:AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec"},"description":"(Output)\nSpecification for custom ranking based on customer specified attribute\nvalue. It provides more controls for customized ranking than the simple\n(condition, boost) combination above.\nStructure is documented below.\n"},"condition":{"type":"string","description":"(Output)\nAn expression which specifies a boost condition. The syntax is the same\nas filter expression syntax. Currently, the only supported condition is\na list of BCP-47 lang codes.\nExample: To boost suggestions in languages en or fr:\n(lang_code: ANY(\"en\", \"fr\"))\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["boost","boostControlSpecs","condition"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec:AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec":{"properties":{"attributeType":{"type":"string","description":"(Output)\nThe attribute type to be used to determine the boost amount. The\nattribute value can be derived from the field value of the specified\nfield_name. In the case of numerical it is straightforward i.e.\u003cspan pulumi-lang-nodejs=\"\nattributeValue \" pulumi-lang-dotnet=\"\nAttributeValue \" pulumi-lang-go=\"\nattributeValue \" pulumi-lang-python=\"\nattribute_value \" pulumi-lang-yaml=\"\nattributeValue \" pulumi-lang-java=\"\nattributeValue \"\u003e\nattribute_value \u003c/span\u003e= numerical_field_value. In the case of freshness\nhowever,\u003cspan pulumi-lang-nodejs=\" attributeValue \" pulumi-lang-dotnet=\" AttributeValue \" pulumi-lang-go=\" attributeValue \" pulumi-lang-python=\" attribute_value \" pulumi-lang-yaml=\" attributeValue \" pulumi-lang-java=\" attributeValue \"\u003e attribute_value \u003c/span\u003e= (time.now() - datetime_field_value).\nPossible values:\nNUMERICAL\nFRESHNESS\n"},"controlPoints":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint:AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint"},"description":"(Output)\nThe control points used to define the curve. The monotonic function\n(defined through the\u003cspan pulumi-lang-nodejs=\" interpolationType \" pulumi-lang-dotnet=\" InterpolationType \" pulumi-lang-go=\" interpolationType \" pulumi-lang-python=\" interpolation_type \" pulumi-lang-yaml=\" interpolationType \" pulumi-lang-java=\" interpolationType \"\u003e interpolation_type \u003c/span\u003eabove) passes through the\ncontrol points listed here.\nStructure is documented below.\n"},"fieldName":{"type":"string","description":"(Output)\nThe name of the field whose value will be used to determine the\nboost amount.\n"},"interpolationType":{"type":"string","description":"(Output)\nThe interpolation type to be applied to connect the control points\nlisted below.\nPossible values:\nLINEAR\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["attributeType","controlPoints","fieldName","interpolationType"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint:AppVersionSnapshotToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint":{"properties":{"attributeValue":{"type":"string","description":"(Output)\nCan be one of:\n1. The numerical field value.\n2. The duration spec for freshness:\nThe value must be formatted as an XSD `dayTimeDuration` value (a\nrestricted subset of an ISO 8601 duration value). The pattern for\nthis is: `nDnM]`.\n"},"boostAmount":{"type":"number","description":"(Output)\nThe value between -1 to 1 by which to boost the score if the\u003cspan pulumi-lang-nodejs=\"\nattributeValue \" pulumi-lang-dotnet=\"\nAttributeValue \" pulumi-lang-go=\"\nattributeValue \" pulumi-lang-python=\"\nattribute_value \" pulumi-lang-yaml=\"\nattributeValue \" pulumi-lang-java=\"\nattributeValue \"\u003e\nattribute_value \u003c/span\u003eevaluates to the value specified above.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["attributeValue","boostAmount"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSource:AppVersionSnapshotToolDataStoreToolEngineSource":{"properties":{"dataStoreSources":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSource:AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSource"},"description":"(Output)\nUse to target specific DataStores within the Engine.\nIf empty, the search applies to all DataStores associated with the\nEngine.\nStructure is documented below.\n"},"engine":{"type":"string","description":"(Output)\nFull resource name of the Engine.\nFormat:\n`projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`\n"},"filter":{"type":"string","description":"(Output)\nFilter specification for the DataStore.\nSee:\nhttps://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataStoreSources","engine","filter"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSource:AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSource":{"properties":{"dataStores":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStore:AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStore"},"description":"(Output)\nA DataStore resource in Vertex AI Search.\nStructure is documented below.\n"},"filter":{"type":"string","description":"(Output)\nFilter specification for the DataStore.\nSee:\nhttps://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataStores","filter"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStore:AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStore":{"properties":{"connectorConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig:AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig"},"description":"(Output)\nThe connector config for the data store connection.\nStructure is documented below.\n"},"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"documentProcessingMode":{"type":"string","description":"(Output)\nThe document processing mode for the data store connection.\nOnly set for PUBLIC_WEB and UNSTRUCTURED data stores.\nPossible values:\nDOCUMENTS\nCHUNKS\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"type":{"type":"string","description":"(Output)\nThe type of the data store. This field is readonly and populated by the\nserver.\nPossible values:\nPUBLIC_WEB\nUNSTRUCTURED\nFAQ\nCONNECTOR\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectorConfigs","createTime","displayName","documentProcessingMode","name","type"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig:AppVersionSnapshotToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig":{"properties":{"collection":{"type":"string","description":"(Output)\nResource name of the collection the data store belongs to.\n"},"collectionDisplayName":{"type":"string","description":"(Output)\nDisplay name of the collection the data store belongs to.\n"},"dataSource":{"type":"string","description":"(Output)\nThe name of the data source.\nExample: \u003cspan pulumi-lang-nodejs=\"`salesforce`\" pulumi-lang-dotnet=\"`Salesforce`\" pulumi-lang-go=\"`salesforce`\" pulumi-lang-python=\"`salesforce`\" pulumi-lang-yaml=\"`salesforce`\" pulumi-lang-java=\"`salesforce`\"\u003e`salesforce`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`jira`\" pulumi-lang-dotnet=\"`Jira`\" pulumi-lang-go=\"`jira`\" pulumi-lang-python=\"`jira`\" pulumi-lang-yaml=\"`jira`\" pulumi-lang-java=\"`jira`\"\u003e`jira`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`confluence`\" pulumi-lang-dotnet=\"`Confluence`\" pulumi-lang-go=\"`confluence`\" pulumi-lang-python=\"`confluence`\" pulumi-lang-yaml=\"`confluence`\" pulumi-lang-java=\"`confluence`\"\u003e`confluence`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bigquery`\" pulumi-lang-dotnet=\"`Bigquery`\" pulumi-lang-go=\"`bigquery`\" pulumi-lang-python=\"`bigquery`\" pulumi-lang-yaml=\"`bigquery`\" pulumi-lang-java=\"`bigquery`\"\u003e`bigquery`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["collection","collectionDisplayName","dataSource"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfig:AppVersionSnapshotToolDataStoreToolModalityConfig":{"properties":{"groundingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigGroundingConfig:AppVersionSnapshotToolDataStoreToolModalityConfigGroundingConfig"},"description":"(Output)\nGrounding configuration.\nStructure is documented below.\n"},"modalityType":{"type":"string","description":"(Output)\nThe modality type.\nPossible values:\nTEXT\nAUDIO\n"},"rewriterConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfig:AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfig"},"description":"(Output)\nRewriter configuration.\nStructure is documented below.\n"},"summarizationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfig:AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfig"},"description":"(Output)\nSummarization configuration.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["groundingConfigs","modalityType","rewriterConfigs","summarizationConfigs"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigGroundingConfig:AppVersionSnapshotToolDataStoreToolModalityConfigGroundingConfig":{"properties":{"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"groundingLevel":{"type":"number","description":"(Output)\nThe groundedness threshold of the answer based on the retrieved sources.\nThe value has a configurable range of [1, 5]. The level is used to\nthreshold the groundedness of the answer, meaning that all responses with\na groundedness score below the threshold will fall back to returning\nrelevant snippets only.\nFor example, a level of 3 means that the groundedness score must be\n3 or higher for the response to be returned.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disabled","groundingLevel"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfig:AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfig":{"properties":{"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"modelSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfigModelSetting:AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfigModelSetting"},"description":"(Output)\nModel settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"prompt":{"type":"string","description":"(Output)\nThe prompt definition. If not set, default prompt will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disabled","modelSettings","prompt"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfigModelSetting:AppVersionSnapshotToolDataStoreToolModalityConfigRewriterConfigModelSetting":{"properties":{"model":{"type":"string","description":"(Output)\nThe LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"(Output)\nIf set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["model","temperature"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfig:AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfig":{"properties":{"disabled":{"type":"boolean","description":"(Output)\nWhether summarization is disabled.\n"},"modelSettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfigModelSetting:AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfigModelSetting"},"description":"(Output)\nModel settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"prompt":{"type":"string","description":"(Output)\nThe prompt definition. If not set, default prompt will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disabled","modelSettings","prompt"]}}},"gcp:ces/AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfigModelSetting:AppVersionSnapshotToolDataStoreToolModalityConfigSummarizationConfigModelSetting":{"properties":{"model":{"type":"string","description":"(Output)\nThe LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"(Output)\nIf set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["model","temperature"]}}},"gcp:ces/AppVersionSnapshotToolGoogleSearchTool:AppVersionSnapshotToolGoogleSearchTool":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"excludeDomains":{"type":"array","items":{"type":"string"},"description":"(Output)\nList of domains to be excluded from the search results.\nExample: \"example.com\".\nA maximum of 2000 domains can be excluded.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","excludeDomains","name"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiTool:AppVersionSnapshotToolOpenApiTool":{"properties":{"apiAuthentications":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthentication:AppVersionSnapshotToolOpenApiToolApiAuthentication"},"description":"(Output)\nAuthentication information required for API calls.\nStructure is documented below.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"ignoreUnknownFields":{"type":"boolean","description":"(Output)\nIf true, the agent will ignore unknown fields in the API response for all\noperations defined in the OpenAPI schema.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"openApiSchema":{"type":"string","description":"(Output)\nThe OpenAPI schema of the toolset.\n"},"serviceDirectoryConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolServiceDirectoryConfig:AppVersionSnapshotToolOpenApiToolServiceDirectoryConfig"},"description":"(Output)\nConfiguration for tools using Service Directory.\nStructure is documented below.\n"},"tlsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolTlsConfig:AppVersionSnapshotToolOpenApiToolTlsConfig"},"description":"(Output)\nThe TLS configuration.\nStructure is documented below.\n"},"url":{"type":"string","description":"(Output)\nThe server URL of the Open API schema.\nThis field is only set in toolsets in the environment dependencies\nduring the export process if the schema contains a server url.\nDuring the import process, if this url is present in the environment dependencies\nand the schema has the $env_var placeholder,\nit will replace the placeholder in the schema.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiAuthentications","description","ignoreUnknownFields","name","openApiSchema","serviceDirectoryConfigs","tlsConfigs","url"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthentication:AppVersionSnapshotToolOpenApiToolApiAuthentication":{"properties":{"apiKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationApiKeyConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationApiKeyConfig"},"description":"(Output)\nConfigurations for authentication with API key.\nStructure is documented below.\n"},"oauthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationOauthConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationOauthConfig"},"description":"(Output)\nConfigurations for authentication with OAuth.\nStructure is documented below.\n"},"serviceAccountAuthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAccountAuthConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAccountAuthConfig"},"description":"(Output)\nConfigurations for authentication using a custom service account.\nStructure is documented below.\n"},"serviceAgentIdTokenAuthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig"},"description":"(Output)\nConfigurations for authentication with [ID\ntoken](https://cloud.google.com/docs/authentication/token-types#id) generated\nfrom service agent.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiKeyConfigs","oauthConfigs","serviceAccountAuthConfigs","serviceAgentIdTokenAuthConfigs"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationApiKeyConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationApiKeyConfig":{"properties":{"apiKeySecretVersion":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource storing the API key.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"keyName":{"type":"string","description":"(Output)\nThe parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n"},"requestLocation":{"type":"string","description":"(Output)\nKey location in the request.\nPossible values:\nHEADER\nQUERY_STRING\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiKeySecretVersion","keyName","requestLocation"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationOauthConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"(Output)\nThe client ID from the OAuth provider.\n"},"clientSecretVersion":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource storing the\nclient secret.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"oauthGrantType":{"type":"string","description":"(Output)\nOAuth grant types.\nPossible values:\nCLIENT_CREDENTIAL\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe OAuth scopes to grant.\n"},"tokenEndpoint":{"type":"string","description":"(Output)\nThe token endpoint in the OAuth provider to exchange for an access token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientId","clientSecretVersion","oauthGrantType","scopes","tokenEndpoint"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAccountAuthConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"(Output)\nThe email address of the service account used for authenticatation. CES\nuses this service account to exchange an access token and the access token\nis then sent in the `Authorization` header of the request.\nThe service account must have the\n`roles/iam.serviceAccountTokenCreator` role granted to the\nCES service agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccount"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig:AppVersionSnapshotToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig":{"type":"object"},"gcp:ces/AppVersionSnapshotToolOpenApiToolServiceDirectoryConfig:AppVersionSnapshotToolOpenApiToolServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"(Output)\nThe name of [Service\nDirectory](https://cloud.google.com/service-directory) service.\nFormat:\n`projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`.\nLocation of the service directory must be the same as the location of the\napp.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["service"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolTlsConfig:AppVersionSnapshotToolOpenApiToolTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolOpenApiToolTlsConfigCaCert:AppVersionSnapshotToolOpenApiToolTlsConfigCaCert"},"description":"(Output)\nSpecifies a list of allowed custom CA certificates for HTTPS\nverification.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["caCerts"]}}},"gcp:ces/AppVersionSnapshotToolOpenApiToolTlsConfigCaCert:AppVersionSnapshotToolOpenApiToolTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"(Output)\nThe allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, CES will use Google's default trust\nstore to verify certificates. N.B. Make sure the HTTPS server\ncertificates are signed with \"subject alt name\". For instance a\ncertificate can be self-signed using the following command,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cert","displayName"]}}},"gcp:ces/AppVersionSnapshotToolPythonFunction:AppVersionSnapshotToolPythonFunction":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"pythonCode":{"type":"string","description":"(Output)\nThe Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","name","pythonCode"]}}},"gcp:ces/AppVersionSnapshotToolSystemTool:AppVersionSnapshotToolSystemTool":{"properties":{"description":{"type":"string","description":"The description of the app version.\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","name"]}}},"gcp:ces/AppVersionSnapshotToolset:AppVersionSnapshotToolset":{"properties":{"createTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was created.\n"},"description":{"type":"string","description":"The description of the app version.\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"},"etag":{"type":"string","description":"(Output)\nETag used to ensure the object hasn't changed during a read-modify-write\noperation. If the etag is empty, the update will overwrite any concurrent\nchanges.\n"},"executionType":{"type":"string","description":"(Output)\nPossible values:\nSYNCHRONOUS\nASYNCHRONOUS\n"},"name":{"type":"string","description":"(Output)\nIdentifier. The unique identifier of the toolset.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"},"openApiToolsets":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolset:AppVersionSnapshotToolsetOpenApiToolset"},"description":"(Output)\nA toolset that contains a list of tools that are defined by an OpenAPI\nschema.\nStructure is documented below.\n"},"updateTime":{"type":"string","description":"(Output)\nTimestamp when the toolset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createTime","description","displayName","etag","executionType","name","openApiToolsets","updateTime"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolset:AppVersionSnapshotToolsetOpenApiToolset":{"properties":{"apiAuthentications":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthentication:AppVersionSnapshotToolsetOpenApiToolsetApiAuthentication"},"description":"(Output)\nAuthentication information required for API calls.\nStructure is documented below.\n"},"ignoreUnknownFields":{"type":"boolean","description":"(Output)\nIf true, the agent will ignore unknown fields in the API response for all\noperations defined in the OpenAPI schema.\n"},"openApiSchema":{"type":"string","description":"(Output)\nThe OpenAPI schema of the toolset.\n"},"serviceDirectoryConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetServiceDirectoryConfig:AppVersionSnapshotToolsetOpenApiToolsetServiceDirectoryConfig"},"description":"(Output)\nConfiguration for tools using Service Directory.\nStructure is documented below.\n"},"tlsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetTlsConfig:AppVersionSnapshotToolsetOpenApiToolsetTlsConfig"},"description":"(Output)\nThe TLS configuration.\nStructure is documented below.\n"},"url":{"type":"string","description":"(Output)\nThe server URL of the Open API schema.\nThis field is only set in toolsets in the environment dependencies\nduring the export process if the schema contains a server url.\nDuring the import process, if this url is present in the environment dependencies\nand the schema has the $env_var placeholder,\nit will replace the placeholder in the schema.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiAuthentications","ignoreUnknownFields","openApiSchema","serviceDirectoryConfigs","tlsConfigs","url"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthentication:AppVersionSnapshotToolsetOpenApiToolsetApiAuthentication":{"properties":{"apiKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationApiKeyConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationApiKeyConfig"},"description":"(Output)\nConfigurations for authentication with API key.\nStructure is documented below.\n"},"bearerTokenConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig"},"description":"(Output)\nConfigurations for authentication with a bearer token.\nStructure is documented below.\n"},"oauthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationOauthConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationOauthConfig"},"description":"(Output)\nConfigurations for authentication with OAuth.\nStructure is documented below.\n"},"serviceAccountAuthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig"},"description":"(Output)\nConfigurations for authentication using a custom service account.\nStructure is documented below.\n"},"serviceAgentIdTokenAuthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig"},"description":"(Output)\nConfigurations for authentication with [ID\ntoken](https://cloud.google.com/docs/authentication/token-types#id) generated\nfrom service agent.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiKeyConfigs","bearerTokenConfigs","oauthConfigs","serviceAccountAuthConfigs","serviceAgentIdTokenAuthConfigs"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationApiKeyConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationApiKeyConfig":{"properties":{"apiKeySecretVersion":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource storing the API key.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"keyName":{"type":"string","description":"(Output)\nThe parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n"},"requestLocation":{"type":"string","description":"(Output)\nKey location in the request.\nPossible values:\nHEADER\nQUERY_STRING\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiKeySecretVersion","keyName","requestLocation"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig":{"properties":{"token":{"type":"string","description":"(Output)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["token"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationOauthConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"(Output)\nThe client ID from the OAuth provider.\n"},"clientSecretVersion":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource storing the\nclient secret.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"oauthGrantType":{"type":"string","description":"(Output)\nOAuth grant types.\nPossible values:\nCLIENT_CREDENTIAL\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe OAuth scopes to grant.\n"},"tokenEndpoint":{"type":"string","description":"(Output)\nThe token endpoint in the OAuth provider to exchange for an access token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientId","clientSecretVersion","oauthGrantType","scopes","tokenEndpoint"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"(Output)\nThe email address of the service account used for authenticatation. CES\nuses this service account to exchange an access token and the access token\nis then sent in the `Authorization` header of the request.\nThe service account must have the\n`roles/iam.serviceAccountTokenCreator` role granted to the\nCES service agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccount"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig:AppVersionSnapshotToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig":{"type":"object"},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetServiceDirectoryConfig:AppVersionSnapshotToolsetOpenApiToolsetServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"(Output)\nThe name of [Service\nDirectory](https://cloud.google.com/service-directory) service.\nFormat:\n`projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`.\nLocation of the service directory must be the same as the location of the\napp.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["service"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetTlsConfig:AppVersionSnapshotToolsetOpenApiToolsetTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetTlsConfigCaCert:AppVersionSnapshotToolsetOpenApiToolsetTlsConfigCaCert"},"description":"(Output)\nSpecifies a list of allowed custom CA certificates for HTTPS\nverification.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["caCerts"]}}},"gcp:ces/AppVersionSnapshotToolsetOpenApiToolsetTlsConfigCaCert:AppVersionSnapshotToolsetOpenApiToolsetTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"(Output)\nThe allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, CES will use Google's default trust\nstore to verify certificates. N.B. Make sure the HTTPS server\ncertificates are signed with \"subject alt name\". For instance a\ncertificate can be self-signed using the following command,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n"},"displayName":{"type":"string","description":"The display name of the app version.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cert","displayName"]}}},"gcp:ces/DeploymentChannelProfile:DeploymentChannelProfile":{"properties":{"channelType":{"type":"string","description":"The type of the channel profile.\nPossible values:\nUNKNOWN\nWEB_UI\nAPI\nTWILIO\nGOOGLE_TELEPHONY_PLATFORM\nCONTACT_CENTER_AS_A_SERVICE\n"},"disableBargeInControl":{"type":"boolean","description":"Whether to disable user barge-in control in the conversation.\n- **true**: User interruptions are disabled while the agent is speaking.\n- **false**: The agent retains automatic control over when the user can\ninterrupt.\n"},"disableDtmf":{"type":"boolean","description":"Whether to disable DTMF (dual-tone multi-frequency).\n"},"personaProperty":{"$ref":"#/types/gcp:ces/DeploymentChannelProfilePersonaProperty:DeploymentChannelProfilePersonaProperty","description":"Represents the persona property of a channel.\nStructure is documented below.\n"},"profileId":{"type":"string","description":"The unique identifier of the channel profile.\n"},"webWidgetConfig":{"$ref":"#/types/gcp:ces/DeploymentChannelProfileWebWidgetConfig:DeploymentChannelProfileWebWidgetConfig","description":"Message for configuration for the web widget.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/DeploymentChannelProfilePersonaProperty:DeploymentChannelProfilePersonaProperty":{"properties":{"persona":{"type":"string","description":"The persona of the channel.\nPossible values:\nUNKNOWN\nCONCISE\nCHATTY\n"}},"type":"object"},"gcp:ces/DeploymentChannelProfileWebWidgetConfig:DeploymentChannelProfileWebWidgetConfig":{"properties":{"modality":{"type":"string","description":"The modality of the web widget.\nPossible values:\nUNKNOWN_MODALITY\nCHAT_AND_VOICE\nVOICE_ONLY\nCHAT_ONLY\n"},"theme":{"type":"string","description":"The theme of the web widget.\nPossible values:\nUNKNOWN_THEME\nLIGHT\nDARK\n"},"webWidgetTitle":{"type":"string","description":"The title of the web widget.\n"}},"type":"object"},"gcp:ces/ExampleMessage:ExampleMessage":{"properties":{"chunks":{"type":"array","items":{"$ref":"#/types/gcp:ces/ExampleMessageChunk:ExampleMessageChunk"},"description":"Content of the message as a series of chunks.\nStructure is documented below.\n"},"role":{"type":"string","description":"The role within the conversation, e.g., user, agent.\n"}},"type":"object"},"gcp:ces/ExampleMessageChunk:ExampleMessageChunk":{"properties":{"agentTransfer":{"$ref":"#/types/gcp:ces/ExampleMessageChunkAgentTransfer:ExampleMessageChunkAgentTransfer","description":"Represents an event indicating the transfer of a conversation to a different\nagent.\nStructure is documented below.\n"},"image":{"$ref":"#/types/gcp:ces/ExampleMessageChunkImage:ExampleMessageChunkImage","description":"Represents an image input or output in the conversation.\nStructure is documented below.\n"},"text":{"type":"string","description":"Text data.\n"},"toolCall":{"$ref":"#/types/gcp:ces/ExampleMessageChunkToolCall:ExampleMessageChunkToolCall","description":"Request for the client or the agent to execute the specified tool.\nStructure is documented below.\n"},"toolResponse":{"$ref":"#/types/gcp:ces/ExampleMessageChunkToolResponse:ExampleMessageChunkToolResponse","description":"The execution result of a specific tool from the client or the agent.\nStructure is documented below.\n"},"updatedVariables":{"type":"string","description":"A struct represents variables that were updated in the conversation,\nkeyed by variable names.\n"}},"type":"object"},"gcp:ces/ExampleMessageChunkAgentTransfer:ExampleMessageChunkAgentTransfer":{"properties":{"displayName":{"type":"string","description":"(Output)\nDisplay name of the agent.\n"},"targetAgent":{"type":"string","description":"The agent to which the conversation is being transferred. The agent will\nhandle the conversation from this point forward.\nFormat: `projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"}},"type":"object","required":["targetAgent"],"language":{"nodejs":{"requiredOutputs":["displayName","targetAgent"]}}},"gcp:ces/ExampleMessageChunkImage:ExampleMessageChunkImage":{"properties":{"data":{"type":"string","description":"Raw bytes of the image.\n"},"mimeType":{"type":"string","description":"The IANA standard MIME type of the source data.\nSupported image types includes:\n* image/png\n* image/jpeg\n* image/webp\n"}},"type":"object","required":["data","mimeType"]},"gcp:ces/ExampleMessageChunkToolCall:ExampleMessageChunkToolCall":{"properties":{"args":{"type":"string","description":"The input parameters and values for the tool in JSON object format.\n"},"displayName":{"type":"string","description":"(Output)\nDisplay name of the tool.\n"},"id":{"type":"string","description":"The unique identifier of the tool call. If populated, the client should\nreturn the execution result with the matching ID in\nToolResponse.\n"},"tool":{"type":"string","description":"The name of the tool to execute.\nFormat: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`\n"},"toolsetTool":{"$ref":"#/types/gcp:ces/ExampleMessageChunkToolCallToolsetTool:ExampleMessageChunkToolCallToolsetTool","description":"A tool that is created from a toolset.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"gcp:ces/ExampleMessageChunkToolCallToolsetTool:ExampleMessageChunkToolCallToolsetTool":{"properties":{"toolId":{"type":"string","description":"The tool ID to filter the tools to retrieve the schema for.\n"},"toolset":{"type":"string","description":"The resource name of the Toolset from which this tool is derived.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","required":["toolset"]},"gcp:ces/ExampleMessageChunkToolResponse:ExampleMessageChunkToolResponse":{"properties":{"displayName":{"type":"string","description":"(Output)\nDisplay name of the tool.\n"},"id":{"type":"string","description":"The matching ID of the tool call the response is for.\n"},"response":{"type":"string","description":"The tool execution result in JSON object format.\nUse \"output\" key to specify tool response and \"error\" key to specify\nerror details (if any). If \"output\" and \"error\" keys are not specified,\nthen whole \"response\" is treated as tool execution result.\n"},"tool":{"type":"string","description":"The name of the tool to execute.\nFormat: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`\n"},"toolsetTool":{"$ref":"#/types/gcp:ces/ExampleMessageChunkToolResponseToolsetTool:ExampleMessageChunkToolResponseToolsetTool","description":"A tool that is created from a toolset.\nStructure is documented below.\n"}},"type":"object","required":["response"],"language":{"nodejs":{"requiredOutputs":["displayName","response"]}}},"gcp:ces/ExampleMessageChunkToolResponseToolsetTool:ExampleMessageChunkToolResponseToolsetTool":{"properties":{"toolId":{"type":"string","description":"The tool ID to filter the tools to retrieve the schema for.\n"},"toolset":{"type":"string","description":"The resource name of the Toolset from which this tool is derived.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/toolsets/{toolset}`\n"}},"type":"object","required":["toolset"]},"gcp:ces/GuardrailAction:GuardrailAction":{"properties":{"generativeAnswer":{"$ref":"#/types/gcp:ces/GuardrailActionGenerativeAnswer:GuardrailActionGenerativeAnswer","description":"The agent will immediately respond with a generative answer.\nStructure is documented below.\n"},"respondImmediately":{"$ref":"#/types/gcp:ces/GuardrailActionRespondImmediately:GuardrailActionRespondImmediately","description":"The agent will immediately respond with a preconfigured response.\nStructure is documented below.\n"},"transferAgent":{"$ref":"#/types/gcp:ces/GuardrailActionTransferAgent:GuardrailActionTransferAgent","description":"The agent will transfer the conversation to a different agent.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/GuardrailActionGenerativeAnswer:GuardrailActionGenerativeAnswer":{"properties":{"prompt":{"type":"string","description":"The prompt to use for the generative answer.\n"}},"type":"object","required":["prompt"]},"gcp:ces/GuardrailActionRespondImmediately:GuardrailActionRespondImmediately":{"properties":{"responses":{"type":"array","items":{"$ref":"#/types/gcp:ces/GuardrailActionRespondImmediatelyResponse:GuardrailActionRespondImmediatelyResponse"},"description":"The canned responses for the agent to choose from. The response is chosen\nrandomly.\nStructure is documented below.\n"}},"type":"object","required":["responses"]},"gcp:ces/GuardrailActionRespondImmediatelyResponse:GuardrailActionRespondImmediatelyResponse":{"properties":{"disabled":{"type":"boolean","description":"Whether the response is disabled. Disabled responses are not used by the\nagent.\n"},"text":{"type":"string","description":"Text for the agent to respond with.\n"}},"type":"object","required":["text"]},"gcp:ces/GuardrailActionTransferAgent:GuardrailActionTransferAgent":{"properties":{"agent":{"type":"string","description":"The name of the agent to transfer the conversation to. The agent must be\nin the same app as the current agent.\nFormat:\n`projects/{project}/locations/{location}/apps/{app}/agents/{agent}`\n"}},"type":"object","required":["agent"]},"gcp:ces/GuardrailCodeCallback:GuardrailCodeCallback":{"properties":{"afterAgentCallback":{"$ref":"#/types/gcp:ces/GuardrailCodeCallbackAfterAgentCallback:GuardrailCodeCallbackAfterAgentCallback","description":"A callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"},"afterModelCallback":{"$ref":"#/types/gcp:ces/GuardrailCodeCallbackAfterModelCallback:GuardrailCodeCallbackAfterModelCallback","description":"A callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"},"beforeAgentCallback":{"$ref":"#/types/gcp:ces/GuardrailCodeCallbackBeforeAgentCallback:GuardrailCodeCallbackBeforeAgentCallback","description":"A callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"},"beforeModelCallback":{"$ref":"#/types/gcp:ces/GuardrailCodeCallbackBeforeModelCallback:GuardrailCodeCallbackBeforeModelCallback","description":"A callback defines the custom logic to be executed at various stages of\nagent interaction.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/GuardrailCodeCallbackAfterAgentCallback:GuardrailCodeCallbackAfterAgentCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/GuardrailCodeCallbackAfterModelCallback:GuardrailCodeCallbackAfterModelCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/GuardrailCodeCallbackBeforeAgentCallback:GuardrailCodeCallbackBeforeAgentCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/GuardrailCodeCallbackBeforeModelCallback:GuardrailCodeCallbackBeforeModelCallback":{"properties":{"description":{"type":"string","description":"Human-readable description of the callback.\n"},"disabled":{"type":"boolean","description":"Whether the callback is disabled. Disabled callbacks are ignored by the\nagent.\n"},"pythonCode":{"type":"string","description":"The python code to execute for the callback.\n"}},"type":"object","required":["pythonCode"]},"gcp:ces/GuardrailContentFilter:GuardrailContentFilter":{"properties":{"bannedContents":{"type":"array","items":{"type":"string"},"description":"List of banned phrases. Applies to both user inputs and agent responses.\n"},"bannedContentsInAgentResponses":{"type":"array","items":{"type":"string"},"description":"List of banned phrases. Applies only to agent responses.\n"},"bannedContentsInUserInputs":{"type":"array","items":{"type":"string"},"description":"List of banned phrases. Applies only to user inputs.\n"},"disregardDiacritics":{"type":"boolean","description":"If true, diacritics are ignored during matching.\n"},"matchType":{"type":"string","description":"Match type for the content filter.\nPossible values:\nSIMPLE_STRING_MATCH\nWORD_BOUNDARY_STRING_MATCH\nREGEXP_MATCH\n"}},"type":"object","required":["matchType"]},"gcp:ces/GuardrailLlmPolicy:GuardrailLlmPolicy":{"properties":{"allowShortUtterance":{"type":"boolean","description":"By default, the LLM policy check is bypassed for short utterances.\nEnabling this setting applies the policy check to all utterances,\nincluding those that would normally be skipped.\n"},"failOpen":{"type":"boolean","description":"If an error occurs during the policy check, fail open and do not trigger\nthe guardrail.\n"},"maxConversationMessages":{"type":"integer","description":"When checking this policy, consider the last 'n' messages in the\nconversation.\nWhen not set a default value of 10 will be used.\n"},"modelSettings":{"$ref":"#/types/gcp:ces/GuardrailLlmPolicyModelSettings:GuardrailLlmPolicyModelSettings","description":"Model settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"policyScope":{"type":"string","description":"Defines when to apply the policy check during the conversation. If set to\n`POLICY_SCOPE_UNSPECIFIED`, the policy will be applied to the user input.\nWhen applying the policy to the agent response, additional latency will\nbe introduced before the agent can respond.\nPossible values:\nUSER_QUERY\nAGENT_RESPONSE\nUSER_QUERY_AND_AGENT_RESPONSE\nPossible values are: `USER_QUERY`, `AGENT_RESPONSE`, `USER_QUERY_AND_AGENT_RESPONSE`.\n"},"prompt":{"type":"string","description":"Policy prompt.\n"}},"type":"object","required":["policyScope","prompt"]},"gcp:ces/GuardrailLlmPolicyModelSettings:GuardrailLlmPolicyModelSettings":{"properties":{"model":{"type":"string","description":"The LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"If set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object"},"gcp:ces/GuardrailLlmPromptSecurity:GuardrailLlmPromptSecurity":{"properties":{"customPolicy":{"$ref":"#/types/gcp:ces/GuardrailLlmPromptSecurityCustomPolicy:GuardrailLlmPromptSecurityCustomPolicy","description":"Guardrail that blocks the conversation if the LLM response is considered\nviolating the policy based on the LLM classification.\nStructure is documented below.\n"},"defaultSettings":{"$ref":"#/types/gcp:ces/GuardrailLlmPromptSecurityDefaultSettings:GuardrailLlmPromptSecurityDefaultSettings","description":"Configuration for default system security settings.\nStructure is documented below.\n"}},"type":"object"},"gcp:ces/GuardrailLlmPromptSecurityCustomPolicy:GuardrailLlmPromptSecurityCustomPolicy":{"properties":{"allowShortUtterance":{"type":"boolean","description":"By default, the LLM policy check is bypassed for short utterances.\nEnabling this setting applies the policy check to all utterances,\nincluding those that would normally be skipped.\n"},"failOpen":{"type":"boolean","description":"If an error occurs during the policy check, fail open and do not trigger\nthe guardrail.\n"},"maxConversationMessages":{"type":"integer","description":"When checking this policy, consider the last 'n' messages in the\nconversation.\nWhen not set a default value of 10 will be used.\n"},"modelSettings":{"$ref":"#/types/gcp:ces/GuardrailLlmPromptSecurityCustomPolicyModelSettings:GuardrailLlmPromptSecurityCustomPolicyModelSettings","description":"Model settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"policyScope":{"type":"string","description":"Defines when to apply the policy check during the conversation. If set to\n`POLICY_SCOPE_UNSPECIFIED`, the policy will be applied to the user input.\nWhen applying the policy to the agent response, additional latency will\nbe introduced before the agent can respond.\nPossible values:\nUSER_QUERY\nAGENT_RESPONSE\nUSER_QUERY_AND_AGENT_RESPONSE\n"},"prompt":{"type":"string","description":"Policy prompt.\n"}},"type":"object","required":["policyScope","prompt"]},"gcp:ces/GuardrailLlmPromptSecurityCustomPolicyModelSettings:GuardrailLlmPromptSecurityCustomPolicyModelSettings":{"properties":{"model":{"type":"string","description":"The LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"If set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object"},"gcp:ces/GuardrailLlmPromptSecurityDefaultSettings:GuardrailLlmPromptSecurityDefaultSettings":{"properties":{"defaultPromptTemplate":{"type":"string","description":"(Output)\nThe default prompt template used by the system.\nThis field is for display purposes to show the user what prompt\nthe system uses by default. It is OUTPUT_ONLY.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["defaultPromptTemplate"]}}},"gcp:ces/GuardrailModelSafety:GuardrailModelSafety":{"properties":{"safetySettings":{"type":"array","items":{"$ref":"#/types/gcp:ces/GuardrailModelSafetySafetySetting:GuardrailModelSafetySafetySetting"},"description":"List of safety settings.\nStructure is documented below.\n"}},"type":"object","required":["safetySettings"]},"gcp:ces/GuardrailModelSafetySafetySetting:GuardrailModelSafetySafetySetting":{"properties":{"category":{"type":"string","description":"The harm category.\nPossible values:\nHARM_CATEGORY_HATE_SPEECH\nHARM_CATEGORY_DANGEROUS_CONTENT\nHARM_CATEGORY_HARASSMENT\nHARM_CATEGORY_SEXUALLY_EXPLICIT\nPossible values are: `HARM_CATEGORY_HATE_SPEECH`, `HARM_CATEGORY_DANGEROUS_CONTENT`, `HARM_CATEGORY_HARASSMENT`, `HARM_CATEGORY_SEXUALLY_EXPLICIT`.\n"},"threshold":{"type":"string","description":"The harm block threshold.\nPossible values:\nBLOCK_LOW_AND_ABOVE\nBLOCK_MEDIUM_AND_ABOVE\nBLOCK_ONLY_HIGH\nBLOCK_NONE\nOFF\nPossible values are: `BLOCK_LOW_AND_ABOVE`, `BLOCK_MEDIUM_AND_ABOVE`, `BLOCK_ONLY_HIGH`, `BLOCK_NONE`, `OFF`.\n"}},"type":"object","required":["category","threshold"]},"gcp:ces/ToolClientFunction:ToolClientFunction":{"properties":{"description":{"type":"string","description":"The function description.\n"},"name":{"type":"string","description":"The function name.\n"},"parameters":{"$ref":"#/types/gcp:ces/ToolClientFunctionParameters:ToolClientFunctionParameters","description":"Represents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"},"response":{"$ref":"#/types/gcp:ces/ToolClientFunctionResponse:ToolClientFunctionResponse","description":"Represents a select subset of an OpenAPI 3.0 schema object.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:ces/ToolClientFunctionParameters:ToolClientFunctionParameters":{"properties":{"additionalProperties":{"type":"string","description":"Defines the schema for additional properties allowed in an object.\nThe value must be a valid JSON string representing the Schema object.\n(Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).\n"},"anyOf":{"type":"string","description":"The instance value should be valid against at least one of the schemas in this list.\n"},"default":{"type":"string","description":"Default value of the data. Represents a dynamically typed value\nwhich can be either null, a number, a string, a boolean, a struct,\nor a list of values. The provided default value must be compatible\nwith the defined 'type' and other schema constraints.\n"},"defs":{"type":"string","description":"A map of definitions for use by ref. Only allowed at the root of the schema.\n"},"description":{"type":"string","description":"The description of the data.\n"},"enums":{"type":"array","items":{"type":"string"},"description":"Possible values of the element of primitive type with enum format.\nExamples:\n1. We can define direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}\n2. We can define apartment number as :\n{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}\n"},"items":{"type":"string","description":"Schema of the elements of Type.ARRAY.\n"},"maxItems":{"type":"integer","description":"Maximum number of the elements for Type.ARRAY. (int64 format)\n"},"maximum":{"type":"number","description":"Maximum value for Type.INTEGER and Type.NUMBER.\n"},"minItems":{"type":"integer","description":"Minimum number of the elements for Type.ARRAY. (int64 format)\n"},"minimum":{"type":"number","description":"Minimum value for Type.INTEGER and Type.NUMBER.\n"},"nullable":{"type":"boolean","description":"Indicates if the value may be null.\n"},"prefixItems":{"type":"string","description":"Schemas of initial elements of Type.ARRAY.\n"},"properties":{"type":"string","description":"Properties of Type.OBJECT.\n"},"ref":{"type":"string","description":"Allows indirect references between schema nodes. The value should be a\nvalid reference to a child of the root \u003cspan pulumi-lang-nodejs=\"`defs`\" pulumi-lang-dotnet=\"`Defs`\" pulumi-lang-go=\"`defs`\" pulumi-lang-python=\"`defs`\" pulumi-lang-yaml=\"`defs`\" pulumi-lang-java=\"`defs`\"\u003e`defs`\u003c/span\u003e.\nFor example, the following schema defines a reference to a schema node\nnamed \"Pet\":\ntype: object\nproperties:\npet:\nref: #/defs/Pet\ndefs:\nPet:\ntype: object\nproperties:\nname:\ntype: string\nThe value of the \"pet\" property is a reference to the schema node\nnamed \"Pet\".\nSee details in\nhttps://json-schema.org/understanding-json-schema/structuring.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"Required properties of Type.OBJECT.\n"},"title":{"type":"string","description":"The title of the schema.\n"},"type":{"type":"string","description":"The type of the data.\nPossible values:\nSTRING\nINTEGER\nNUMBER\nBOOLEAN\nOBJECT\nARRAY\n"},"uniqueItems":{"type":"boolean","description":"Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.\n"}},"type":"object","required":["type"]},"gcp:ces/ToolClientFunctionResponse:ToolClientFunctionResponse":{"properties":{"additionalProperties":{"type":"string","description":"Defines the schema for additional properties allowed in an object.\nThe value must be a valid JSON string representing the Schema object.\n(Note: OpenAPI also allows a boolean, this definition expects a Schema JSON).\n"},"anyOf":{"type":"string","description":"The instance value should be valid against at least one of the schemas in this list.\n"},"default":{"type":"string","description":"Default value of the data. Represents a dynamically typed value\nwhich can be either null, a number, a string, a boolean, a struct,\nor a list of values. The provided default value must be compatible\nwith the defined 'type' and other schema constraints.\n"},"defs":{"type":"string","description":"A map of definitions for use by ref. Only allowed at the root of the schema.\n"},"description":{"type":"string","description":"The description of the data.\n"},"enums":{"type":"array","items":{"type":"string"},"description":"Possible values of the element of primitive type with enum format.\nExamples:\n1. We can define direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}\n2. We can define apartment number as :\n{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}\n"},"items":{"type":"string","description":"Schema of the elements of Type.ARRAY.\n"},"maxItems":{"type":"integer","description":"Maximum number of the elements for Type.ARRAY. (int64 format)\n"},"maximum":{"type":"number","description":"Maximum value for Type.INTEGER and Type.NUMBER.\n"},"minItems":{"type":"integer","description":"Minimum number of the elements for Type.ARRAY. (int64 format)\n"},"minimum":{"type":"number","description":"Minimum value for Type.INTEGER and Type.NUMBER.\n"},"nullable":{"type":"boolean","description":"Indicates if the value may be null.\n"},"prefixItems":{"type":"string","description":"Schemas of initial elements of Type.ARRAY.\n"},"properties":{"type":"string","description":"Properties of Type.OBJECT.\n"},"ref":{"type":"string","description":"Allows indirect references between schema nodes. The value should be a\nvalid reference to a child of the root \u003cspan pulumi-lang-nodejs=\"`defs`\" pulumi-lang-dotnet=\"`Defs`\" pulumi-lang-go=\"`defs`\" pulumi-lang-python=\"`defs`\" pulumi-lang-yaml=\"`defs`\" pulumi-lang-java=\"`defs`\"\u003e`defs`\u003c/span\u003e.\nFor example, the following schema defines a reference to a schema node\nnamed \"Pet\":\ntype: object\nproperties:\npet:\nref: #/defs/Pet\ndefs:\nPet:\ntype: object\nproperties:\nname:\ntype: string\nThe value of the \"pet\" property is a reference to the schema node\nnamed \"Pet\".\nSee details in\nhttps://json-schema.org/understanding-json-schema/structuring.\n"},"requireds":{"type":"array","items":{"type":"string"},"description":"Required properties of Type.OBJECT.\n"},"title":{"type":"string","description":"The title of the schema.\n"},"type":{"type":"string","description":"The type of the data.\nPossible values:\nSTRING\nINTEGER\nNUMBER\nBOOLEAN\nOBJECT\nARRAY\n"},"uniqueItems":{"type":"boolean","description":"Indicate the items in the array must be unique. Only applies to TYPE.ARRAY.\n"}},"type":"object","required":["type"]},"gcp:ces/ToolDataStoreTool:ToolDataStoreTool":{"properties":{"boostSpecs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolBoostSpec:ToolDataStoreToolBoostSpec"},"description":"Boost specification to boost certain documents.\nStructure is documented below.\n"},"description":{"type":"string","description":"The tool description.\n"},"engineSource":{"$ref":"#/types/gcp:ces/ToolDataStoreToolEngineSource:ToolDataStoreToolEngineSource","description":"Configuration for searching within an Engine, potentially targeting\nspecific DataStores.\nStructure is documented below.\n"},"maxResults":{"type":"integer","description":"Number of search results to return per query.\nThe default value is 10. The maximum allowed value is 10.\n"},"modalityConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolModalityConfig:ToolDataStoreToolModalityConfig"},"description":"The modality configs for the data store.\nStructure is documented below.\n"},"name":{"type":"string","description":"The data store tool name.\n"}},"type":"object","required":["name"]},"gcp:ces/ToolDataStoreToolBoostSpec:ToolDataStoreToolBoostSpec":{"properties":{"dataStores":{"type":"array","items":{"type":"string"},"description":"The Data Store where the boosting configuration is applied. Full resource\nname of DataStore, such as\nprojects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}.\n"},"specs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolBoostSpecSpec:ToolDataStoreToolBoostSpecSpec"},"description":"A list of boosting specifications.\nStructure is documented below.\n"}},"type":"object","required":["dataStores","specs"]},"gcp:ces/ToolDataStoreToolBoostSpecSpec:ToolDataStoreToolBoostSpecSpec":{"properties":{"conditionBoostSpecs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolBoostSpecSpecConditionBoostSpec:ToolDataStoreToolBoostSpecSpecConditionBoostSpec"},"description":"A list of boosting specifications.\nStructure is documented below.\n"}},"type":"object","required":["conditionBoostSpecs"]},"gcp:ces/ToolDataStoreToolBoostSpecSpecConditionBoostSpec:ToolDataStoreToolBoostSpecSpecConditionBoostSpec":{"properties":{"boost":{"type":"number","description":"Strength of the boost, which should be in [-1, 1]. Negative boost means\ndemotion. Default is 0.0.\nSetting to 1.0 gives the suggestions a big promotion. However, it does\nnot necessarily mean that the top result will be a boosted suggestion.\nSetting to -1.0 gives the suggestions a big demotion. However, other\nsuggestions that are relevant might still be shown.\nSetting to 0.0 means no boost applied. The boosting condition is\nignored.\n"},"boostControlSpec":{"$ref":"#/types/gcp:ces/ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec:ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec","description":"Specification for custom ranking based on customer specified attribute\nvalue. It provides more controls for customized ranking than the simple\n(condition, boost) combination above.\nStructure is documented below.\n"},"condition":{"type":"string","description":"An expression which specifies a boost condition. The syntax is the same\nas filter expression syntax. Currently, the only supported condition is\na list of BCP-47 lang codes.\nExample: To boost suggestions in languages en or fr:\n(lang_code: ANY(\"en\", \"fr\"))\n"}},"type":"object","required":["condition"]},"gcp:ces/ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec:ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpec":{"properties":{"attributeType":{"type":"string","description":"The attribute type to be used to determine the boost amount. The\nattribute value can be derived from the field value of the specified\nfield_name. In the case of numerical it is straightforward i.e.\u003cspan pulumi-lang-nodejs=\"\nattributeValue \" pulumi-lang-dotnet=\"\nAttributeValue \" pulumi-lang-go=\"\nattributeValue \" pulumi-lang-python=\"\nattribute_value \" pulumi-lang-yaml=\"\nattributeValue \" pulumi-lang-java=\"\nattributeValue \"\u003e\nattribute_value \u003c/span\u003e= numerical_field_value. In the case of freshness\nhowever,\u003cspan pulumi-lang-nodejs=\" attributeValue \" pulumi-lang-dotnet=\" AttributeValue \" pulumi-lang-go=\" attributeValue \" pulumi-lang-python=\" attribute_value \" pulumi-lang-yaml=\" attributeValue \" pulumi-lang-java=\" attributeValue \"\u003e attribute_value \u003c/span\u003e= (time.now() - datetime_field_value).\nPossible values:\nNUMERICAL\nFRESHNESS\n"},"controlPoints":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint:ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint"},"description":"The control points used to define the curve. The monotonic function\n(defined through the\u003cspan pulumi-lang-nodejs=\" interpolationType \" pulumi-lang-dotnet=\" InterpolationType \" pulumi-lang-go=\" interpolationType \" pulumi-lang-python=\" interpolation_type \" pulumi-lang-yaml=\" interpolationType \" pulumi-lang-java=\" interpolationType \"\u003e interpolation_type \u003c/span\u003eabove) passes through the\ncontrol points listed here.\nStructure is documented below.\n"},"fieldName":{"type":"string","description":"The name of the field whose value will be used to determine the\nboost amount.\n"},"interpolationType":{"type":"string","description":"The interpolation type to be applied to connect the control points\nlisted below.\nPossible values:\nLINEAR\n"}},"type":"object"},"gcp:ces/ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint:ToolDataStoreToolBoostSpecSpecConditionBoostSpecBoostControlSpecControlPoint":{"properties":{"attributeValue":{"type":"string","description":"Can be one of:\n1. The numerical field value.\n2. The duration spec for freshness:\nThe value must be formatted as an XSD `dayTimeDuration` value (a\nrestricted subset of an ISO 8601 duration value). The pattern for\nthis is: `nDnM]`.\n"},"boostAmount":{"type":"number","description":"The value between -1 to 1 by which to boost the score if the\u003cspan pulumi-lang-nodejs=\"\nattributeValue \" pulumi-lang-dotnet=\"\nAttributeValue \" pulumi-lang-go=\"\nattributeValue \" pulumi-lang-python=\"\nattribute_value \" pulumi-lang-yaml=\"\nattributeValue \" pulumi-lang-java=\"\nattributeValue \"\u003e\nattribute_value \u003c/span\u003eevaluates to the value specified above.\n"}},"type":"object"},"gcp:ces/ToolDataStoreToolEngineSource:ToolDataStoreToolEngineSource":{"properties":{"dataStoreSources":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolEngineSourceDataStoreSource:ToolDataStoreToolEngineSourceDataStoreSource"},"description":"Use to target specific DataStores within the Engine.\nIf empty, the search applies to all DataStores associated with the\nEngine.\nStructure is documented below.\n"},"engine":{"type":"string","description":"Full resource name of the Engine.\nFormat:\n`projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`\n"},"filter":{"type":"string","description":"A filter applied to the search across the Engine. Not relevant and not\nused if 'data_store_sources' is provided.\nSee:\nhttps://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata\n"}},"type":"object","required":["engine"]},"gcp:ces/ToolDataStoreToolEngineSourceDataStoreSource:ToolDataStoreToolEngineSourceDataStoreSource":{"properties":{"dataStore":{"$ref":"#/types/gcp:ces/ToolDataStoreToolEngineSourceDataStoreSourceDataStore:ToolDataStoreToolEngineSourceDataStoreSourceDataStore","description":"A DataStore resource in Vertex AI Search.\nStructure is documented below.\n"},"filter":{"type":"string","description":"Filter specification for the DataStore.\nSee:\nhttps://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata\n"}},"type":"object"},"gcp:ces/ToolDataStoreToolEngineSourceDataStoreSourceDataStore:ToolDataStoreToolEngineSourceDataStoreSourceDataStore":{"properties":{"connectorConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig:ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig"},"description":"(Output)\nThe connector config for the data store connection.\nStructure is documented below.\n"},"createTime":{"type":"string","description":"(Output)\nTimestamp when the data store was created.\n"},"displayName":{"type":"string","description":"(Output)\nThe display name of the data store.\n"},"documentProcessingMode":{"type":"string","description":"(Output)\nThe document processing mode for the data store connection.\nOnly set for PUBLIC_WEB and UNSTRUCTURED data stores.\nPossible values:\nDOCUMENTS\nCHUNKS\n"},"name":{"type":"string","description":"Full resource name of the DataStore.\nFormat:\n`projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`\n"},"type":{"type":"string","description":"(Output)\nThe type of the data store. This field is readonly and populated by the\nserver.\nPossible values:\nPUBLIC_WEB\nUNSTRUCTURED\nFAQ\nCONNECTOR\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreConnectorConfig\"\" pulumi-lang-dotnet=\"\"NestedDataStoreToolEngineSourceDataStoreSourcesDataStoreConnectorConfig\"\" pulumi-lang-go=\"\"nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreConnectorConfig\"\" pulumi-lang-python=\"\"nested_data_store_tool_engine_source_data_store_sources_data_store_connector_config\"\" pulumi-lang-yaml=\"\"nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreConnectorConfig\"\" pulumi-lang-java=\"\"nestedDataStoreToolEngineSourceDataStoreSourcesDataStoreConnectorConfig\"\"\u003e\"nested_data_store_tool_engine_source_data_store_sources_data_store_connector_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`connectorConfig`\" pulumi-lang-dotnet=\"`ConnectorConfig`\" pulumi-lang-go=\"`connectorConfig`\" pulumi-lang-python=\"`connector_config`\" pulumi-lang-yaml=\"`connectorConfig`\" pulumi-lang-java=\"`connectorConfig`\"\u003e`connector_config`\u003c/span\u003e block contains:\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["connectorConfigs","createTime","displayName","documentProcessingMode","name","type"]}}},"gcp:ces/ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig:ToolDataStoreToolEngineSourceDataStoreSourceDataStoreConnectorConfig":{"properties":{"collection":{"type":"string","description":"Resource name of the collection the data store belongs to.\n"},"collectionDisplayName":{"type":"string","description":"Display name of the collection the data store belongs to.\n"},"dataSource":{"type":"string","description":"The name of the data source.\nExample: 'salesforce', 'jira', 'confluence', 'bigquery'.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["collection","collectionDisplayName","dataSource"]}}},"gcp:ces/ToolDataStoreToolModalityConfig:ToolDataStoreToolModalityConfig":{"properties":{"groundingConfig":{"$ref":"#/types/gcp:ces/ToolDataStoreToolModalityConfigGroundingConfig:ToolDataStoreToolModalityConfigGroundingConfig","description":"Grounding configuration.\nStructure is documented below.\n"},"modalityType":{"type":"string","description":"The modality type.\nPossible values:\nTEXT\nAUDIO\n"},"rewriterConfig":{"$ref":"#/types/gcp:ces/ToolDataStoreToolModalityConfigRewriterConfig:ToolDataStoreToolModalityConfigRewriterConfig","description":"Rewriter configuration.\nStructure is documented below.\n"},"summarizationConfig":{"$ref":"#/types/gcp:ces/ToolDataStoreToolModalityConfigSummarizationConfig:ToolDataStoreToolModalityConfigSummarizationConfig","description":"Summarization configuration.\nStructure is documented below.\n"}},"type":"object","required":["modalityType"]},"gcp:ces/ToolDataStoreToolModalityConfigGroundingConfig:ToolDataStoreToolModalityConfigGroundingConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether grounding is disabled.\n"},"groundingLevel":{"type":"number","description":"The groundedness threshold of the answer based on the retrieved sources.\nThe value has a configurable range of [1, 5]. The level is used to\nthreshold the groundedness of the answer, meaning that all responses with\na groundedness score below the threshold will fall back to returning\nrelevant snippets only.\nFor example, a level of 3 means that the groundedness score must be\n3 or higher for the response to be returned.\n"}},"type":"object"},"gcp:ces/ToolDataStoreToolModalityConfigRewriterConfig:ToolDataStoreToolModalityConfigRewriterConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether the rewriter is disabled.\n"},"modelSettings":{"$ref":"#/types/gcp:ces/ToolDataStoreToolModalityConfigRewriterConfigModelSettings:ToolDataStoreToolModalityConfigRewriterConfigModelSettings","description":"Model settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"prompt":{"type":"string","description":"The prompt definition. If not set, default prompt will be used.\n"}},"type":"object","required":["modelSettings"]},"gcp:ces/ToolDataStoreToolModalityConfigRewriterConfigModelSettings:ToolDataStoreToolModalityConfigRewriterConfigModelSettings":{"properties":{"model":{"type":"string","description":"The LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"If set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object"},"gcp:ces/ToolDataStoreToolModalityConfigSummarizationConfig:ToolDataStoreToolModalityConfigSummarizationConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether summarization is disabled.\n"},"modelSettings":{"$ref":"#/types/gcp:ces/ToolDataStoreToolModalityConfigSummarizationConfigModelSettings:ToolDataStoreToolModalityConfigSummarizationConfigModelSettings","description":"Model settings contains various configurations for the LLM model.\nStructure is documented below.\n"},"prompt":{"type":"string","description":"The prompt definition. If not set, default prompt will be used.\n"}},"type":"object"},"gcp:ces/ToolDataStoreToolModalityConfigSummarizationConfigModelSettings:ToolDataStoreToolModalityConfigSummarizationConfigModelSettings":{"properties":{"model":{"type":"string","description":"The LLM model that the agent should use.\nIf not set, the agent will inherit the model from its parent agent.\n"},"temperature":{"type":"number","description":"If set, this temperature will be used for the LLM model. Temperature\ncontrols the randomness of the model's responses. Lower temperatures\nproduce responses that are more predictable. Higher temperatures produce\nresponses that are more creative.\n"}},"type":"object"},"gcp:ces/ToolGoogleSearchTool:ToolGoogleSearchTool":{"properties":{"contextUrls":{"type":"array","items":{"type":"string"},"description":"Content will be fetched directly from these URLs for context and grounding.\nMore details: https://cloud.google.com/vertex-ai/generative-ai/docs/url-context.\nExample: \"https://example.com/path.html\". A maximum of 20 URLs are allowed.\n"},"description":{"type":"string","description":"Description of the tool's purpose.\n"},"excludeDomains":{"type":"array","items":{"type":"string"},"description":"List of domains to be excluded from the search results.\nExample: \"example.com\".\nA maximum of 2000 domains can be excluded.\n"},"name":{"type":"string","description":"The name of the tool.\n"},"preferredDomains":{"type":"array","items":{"type":"string"},"description":"Specifies domain names to guide the search.\nThe model will be instructed to prioritize these domains\nwhen formulating queries for google search.\nThis is a best-effort hint and these domains may or may\nnot be exclusively reflected in the final search results.\nExample: \"example.com\", \"another.site\".\nA maximum of 20 domains can be specified.\n"}},"type":"object","required":["name"]},"gcp:ces/ToolOpenApiTool:ToolOpenApiTool":{"properties":{"apiAuthentications":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolApiAuthentication:ToolOpenApiToolApiAuthentication"},"description":"(Output)\nAuthentication information required for API calls.\nStructure is documented below.\n"},"description":{"type":"string","description":"(Output)\nThe description of the system tool.\n"},"ignoreUnknownFields":{"type":"boolean","description":"(Output)\nIf true, the agent will ignore unknown fields in the API response.\n"},"name":{"type":"string","description":"(Output)\nThe name of the system tool.\n"},"openApiSchema":{"type":"string","description":"(Output)\nThe OpenAPI schema in JSON or YAML format.\n"},"serviceDirectoryConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolServiceDirectoryConfig:ToolOpenApiToolServiceDirectoryConfig"},"description":"(Output)\nConfiguration for tools using Service Directory.\nStructure is documented below.\n"},"tlsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolTlsConfig:ToolOpenApiToolTlsConfig"},"description":"(Output)\nThe TLS configuration.\nStructure is documented below.\n"},"url":{"type":"string","description":"(Output)\nThe server URL of the Open API schema. This field is only set in tools in the\nenvironment dependencies during the export process if the schema contains a\nserver url. During the import process, if this url is present in the environment\ndependencies and the schema has the $env_var placeholder, it will replace the\nplaceholder in the schema.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiAuthentications","description","ignoreUnknownFields","name","openApiSchema","serviceDirectoryConfigs","tlsConfigs","url"]}}},"gcp:ces/ToolOpenApiToolApiAuthentication:ToolOpenApiToolApiAuthentication":{"properties":{"apiKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolApiAuthenticationApiKeyConfig:ToolOpenApiToolApiAuthenticationApiKeyConfig"},"description":"(Output)\nConfigurations for authentication with API key.\nStructure is documented below.\n"},"bearerTokenConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolApiAuthenticationBearerTokenConfig:ToolOpenApiToolApiAuthenticationBearerTokenConfig"},"description":"(Output)\nConfigurations for authentication with a bearer token.\nStructure is documented below.\n"},"oauthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolApiAuthenticationOauthConfig:ToolOpenApiToolApiAuthenticationOauthConfig"},"description":"(Output)\nConfigurations for authentication with OAuth.\nStructure is documented below.\n"},"serviceAccountAuthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig:ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig"},"description":"(Output)\nConfigurations for authentication using a custom service account.\nStructure is documented below.\n"},"serviceAgentIdTokenAuthConfigs":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig:ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig"},"description":"(Output)\nConfigurations for authentication with [ID\ntoken](https://cloud.google.com/docs/authentication/token-types#id) generated\nfrom service agent.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiKeyConfigs","bearerTokenConfigs","oauthConfigs","serviceAccountAuthConfigs","serviceAgentIdTokenAuthConfigs"]}}},"gcp:ces/ToolOpenApiToolApiAuthenticationApiKeyConfig:ToolOpenApiToolApiAuthenticationApiKeyConfig":{"properties":{"apiKeySecretVersion":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource storing the API key.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-\u003cPROJECT-NUMBER\u003e@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"keyName":{"type":"string","description":"(Output)\nThe parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n"},"requestLocation":{"type":"string","description":"(Output)\nKey location in the request.\nPossible values:\nHEADER\nQUERY_STRING\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["apiKeySecretVersion","keyName","requestLocation"]}}},"gcp:ces/ToolOpenApiToolApiAuthenticationBearerTokenConfig:ToolOpenApiToolApiAuthenticationBearerTokenConfig":{"properties":{"token":{"type":"string","description":"(Output)\nThe bearer token. Must be in the format $context.variables.\u003cname_of_variable\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["token"]}}},"gcp:ces/ToolOpenApiToolApiAuthenticationOauthConfig:ToolOpenApiToolApiAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"(Output)\nThe client ID from the OAuth provider.\n"},"clientSecretVersion":{"type":"string","description":"(Output)\nThe name of the SecretManager secret version resource storing the\nclient secret.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-\u003cPROJECT-NUMBER\u003e@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"oauthGrantType":{"type":"string","description":"(Output)\nOAuth grant types.\nPossible values:\nCLIENT_CREDENTIAL\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe OAuth scopes to grant.\n"},"tokenEndpoint":{"type":"string","description":"(Output)\nThe token endpoint in the OAuth provider to exchange for an access token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientId","clientSecretVersion","oauthGrantType","scopes","tokenEndpoint"]}}},"gcp:ces/ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig:ToolOpenApiToolApiAuthenticationServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"(Output)\nThe email address of the service account used for authenticatation. CES\nuses this service account to exchange an access token and the access token\nis then sent in the `Authorization` header of the request.\nThe service account must have the\n`roles/iam.serviceAccountTokenCreator` role granted to the\nCES service agent\n`service-\u003cPROJECT-NUMBER\u003e@gcp-sa-ces.iam.gserviceaccount.com`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccount"]}}},"gcp:ces/ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig:ToolOpenApiToolApiAuthenticationServiceAgentIdTokenAuthConfig":{"type":"object"},"gcp:ces/ToolOpenApiToolServiceDirectoryConfig:ToolOpenApiToolServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"(Output)\nThe name of [Service\nDirectory](https://cloud.google.com/service-directory) service.\nFormat:\n`projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`.\nLocation of the service directory must be the same as the location of the\napp.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["service"]}}},"gcp:ces/ToolOpenApiToolTlsConfig:ToolOpenApiToolTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolOpenApiToolTlsConfigCaCert:ToolOpenApiToolTlsConfigCaCert"},"description":"(Output)\nSpecifies a list of allowed custom CA certificates for HTTPS\nverification.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["caCerts"]}}},"gcp:ces/ToolOpenApiToolTlsConfigCaCert:ToolOpenApiToolTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"(Output)\nThe allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, CES will use Google's default trust\nstore to verify certificates. N.B. Make sure the HTTPS server\ncertificates are signed with \"subject alt name\". For instance a\ncertificate can be self-signed using the following command,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\nA base64-encoded string.\n"},"displayName":{"type":"string","description":"(Output)\nThe name of the allowed custom CA certificates. This\ncan be used to disambiguate the custom CA certificates.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cert","displayName"]}}},"gcp:ces/ToolPythonFunction:ToolPythonFunction":{"properties":{"description":{"type":"string","description":"(Output)\nThe description of the Python function, parsed from the python code's\ndocstring.\n"},"name":{"type":"string","description":"The name of the Python function to execute. Must match a Python function\nname defined in the python code. Case sensitive. If the name is not\nprovided, the first function defined in the python code will be used.\n"},"pythonCode":{"type":"string","description":"The Python code to execute for the tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description"]}}},"gcp:ces/ToolSystemTool:ToolSystemTool":{"properties":{"description":{"type":"string","description":"(Output)\nThe description of the system tool.\n"},"name":{"type":"string","description":"(Output)\nThe name of the system tool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","name"]}}},"gcp:ces/ToolsetMcpToolset:ToolsetMcpToolset":{"properties":{"apiAuthentication":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetApiAuthentication:ToolsetMcpToolsetApiAuthentication","description":"Authentication information required to access tools and execute a tool\nagainst the MCP server. For API key auth, the API key can only be sent in\nthe request header; sending it via query parameters is not supported.\nStructure is documented below.\n"},"serverAddress":{"type":"string","description":"The address of the MCP server, for example, \"https://example.com/mcp/\". If\nthe server is built with the MCP SDK, the url should be suffixed with\n\"/mcp/\". Only Streamable HTTP transport based servers are supported. See\nhttps://modelcontextprotocol.io/specification/2025-03-26/basic/transports#streamable-http\nfor more details.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetServiceDirectoryConfig:ToolsetMcpToolsetServiceDirectoryConfig","description":"Service Directory configuration for VPC-SC, used to resolve service names\nwithin a perimeter.\nStructure is documented below.\n"},"tlsConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetTlsConfig:ToolsetMcpToolsetTlsConfig","description":"The TLS configuration. Includes the custom server certificates that the\nclient should trust.\nStructure is documented below.\n"}},"type":"object","required":["serverAddress"]},"gcp:ces/ToolsetMcpToolsetApiAuthentication:ToolsetMcpToolsetApiAuthentication":{"properties":{"apiKeyConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetApiAuthenticationApiKeyConfig:ToolsetMcpToolsetApiAuthenticationApiKeyConfig","description":"Configurations for authentication with API key.\nStructure is documented below.\n"},"bearerTokenConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetApiAuthenticationBearerTokenConfig:ToolsetMcpToolsetApiAuthenticationBearerTokenConfig","description":"Configurations for authentication with a bearer token.\nStructure is documented below.\n"},"oauthConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetApiAuthenticationOauthConfig:ToolsetMcpToolsetApiAuthenticationOauthConfig","description":"Configurations for authentication with OAuth.\nStructure is documented below.\n"},"serviceAccountAuthConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetApiAuthenticationServiceAccountAuthConfig:ToolsetMcpToolsetApiAuthenticationServiceAccountAuthConfig","description":"Configurations for authentication using a custom service account.\nStructure is documented below.\n"},"serviceAgentIdTokenAuthConfig":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetApiAuthenticationServiceAgentIdTokenAuthConfig:ToolsetMcpToolsetApiAuthenticationServiceAgentIdTokenAuthConfig","description":"Configurations for authentication with [ID\ntoken](https://cloud.google.com/docs/authentication/token-types#id) generated\nfrom service agent.\n"}},"type":"object"},"gcp:ces/ToolsetMcpToolsetApiAuthenticationApiKeyConfig:ToolsetMcpToolsetApiAuthenticationApiKeyConfig":{"properties":{"apiKeySecretVersion":{"type":"string","description":"The name of the SecretManager secret version resource storing the API key.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"keyName":{"type":"string","description":"The parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n"},"requestLocation":{"type":"string","description":"Key location in the request. For API key auth on MCP toolsets,\nthe API key can only be sent in the request header.\nPossible values:\nHEADER\n"}},"type":"object","required":["apiKeySecretVersion","keyName","requestLocation"]},"gcp:ces/ToolsetMcpToolsetApiAuthenticationBearerTokenConfig:ToolsetMcpToolsetApiAuthenticationBearerTokenConfig":{"properties":{"token":{"type":"string","description":"(Optional)\n"}},"type":"object"},"gcp:ces/ToolsetMcpToolsetApiAuthenticationOauthConfig:ToolsetMcpToolsetApiAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"The client ID from the OAuth provider.\n"},"clientSecretVersion":{"type":"string","description":"The name of the SecretManager secret version resource storing the\nclient secret.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"oauthGrantType":{"type":"string","description":"OAuth grant types.\nPossible values:\nCLIENT_CREDENTIAL\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"The OAuth scopes to grant.\n"},"tokenEndpoint":{"type":"string","description":"The token endpoint in the OAuth provider to exchange for an access token.\n"}},"type":"object","required":["clientId","clientSecretVersion","oauthGrantType","tokenEndpoint"]},"gcp:ces/ToolsetMcpToolsetApiAuthenticationServiceAccountAuthConfig:ToolsetMcpToolsetApiAuthenticationServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"The email address of the service account used for authenticatation. CES\nuses this service account to exchange an access token and the access token\nis then sent in the `Authorization` header of the request.\nThe service account must have the\n`roles/iam.serviceAccountTokenCreator` role granted to the\nCES service agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"}},"type":"object","required":["serviceAccount"]},"gcp:ces/ToolsetMcpToolsetApiAuthenticationServiceAgentIdTokenAuthConfig:ToolsetMcpToolsetApiAuthenticationServiceAgentIdTokenAuthConfig":{"type":"object"},"gcp:ces/ToolsetMcpToolsetServiceDirectoryConfig:ToolsetMcpToolsetServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"The name of [Service\nDirectory](https://cloud.google.com/service-directory) service.\nFormat:\n`projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`.\nLocation of the service directory must be the same as the location of the\napp.\n"}},"type":"object","required":["service"]},"gcp:ces/ToolsetMcpToolsetTlsConfig:ToolsetMcpToolsetTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolsetMcpToolsetTlsConfigCaCert:ToolsetMcpToolsetTlsConfigCaCert"},"description":"Specifies a list of allowed custom CA certificates for HTTPS\nverification.\nStructure is documented below.\n"}},"type":"object","required":["caCerts"]},"gcp:ces/ToolsetMcpToolsetTlsConfigCaCert:ToolsetMcpToolsetTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"The allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, CES will use Google's default trust\nstore to verify certificates. N.B. Make sure the HTTPS server\ncertificates are signed with \"subject alt name\". For instance a\ncertificate can be self-signed using the following command,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n"},"displayName":{"type":"string","description":"The name of the allowed custom CA certificates. This\ncan be used to disambiguate the custom CA certificates.\n"}},"type":"object","required":["cert","displayName"]},"gcp:ces/ToolsetOpenApiToolset:ToolsetOpenApiToolset":{"properties":{"apiAuthentication":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetApiAuthentication:ToolsetOpenApiToolsetApiAuthentication","description":"Authentication information required for API calls.\nStructure is documented below.\n"},"ignoreUnknownFields":{"type":"boolean","description":"If true, the agent will ignore unknown fields in the API response for all\noperations defined in the OpenAPI schema.\n"},"openApiSchema":{"type":"string","description":"The OpenAPI schema of the toolset.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetServiceDirectoryConfig:ToolsetOpenApiToolsetServiceDirectoryConfig","description":"Configuration for tools using Service Directory.\nStructure is documented below.\n"},"tlsConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetTlsConfig:ToolsetOpenApiToolsetTlsConfig","description":"The TLS configuration.\nStructure is documented below.\n"},"url":{"type":"string","description":"(Output)\nThe server URL of the Open API schema.\nThis field is only set in toolsets in the environment dependencies\nduring the export process if the schema contains a server url.\nDuring the import process, if this url is present in the environment dependencies\nand the schema has the $env_var placeholder,\nit will replace the placeholder in the schema.\n"}},"type":"object","required":["openApiSchema"],"language":{"nodejs":{"requiredOutputs":["openApiSchema","url"]}}},"gcp:ces/ToolsetOpenApiToolsetApiAuthentication:ToolsetOpenApiToolsetApiAuthentication":{"properties":{"apiKeyConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetApiAuthenticationApiKeyConfig:ToolsetOpenApiToolsetApiAuthenticationApiKeyConfig","description":"Configurations for authentication with API key.\nStructure is documented below.\n"},"bearerTokenConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig:ToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig","description":"Configurations for authentication with a bearer token.\nStructure is documented below.\n"},"oauthConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetApiAuthenticationOauthConfig:ToolsetOpenApiToolsetApiAuthenticationOauthConfig","description":"Configurations for authentication with OAuth.\nStructure is documented below.\n"},"serviceAccountAuthConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig:ToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig","description":"Configurations for authentication using a custom service account.\nStructure is documented below.\n"},"serviceAgentIdTokenAuthConfig":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig:ToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig","description":"Configurations for authentication with [ID\ntoken](https://cloud.google.com/docs/authentication/token-types#id) generated\nfrom service agent.\n"}},"type":"object"},"gcp:ces/ToolsetOpenApiToolsetApiAuthenticationApiKeyConfig:ToolsetOpenApiToolsetApiAuthenticationApiKeyConfig":{"properties":{"apiKeySecretVersion":{"type":"string","description":"The name of the SecretManager secret version resource storing the API key.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"keyName":{"type":"string","description":"The parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n"},"requestLocation":{"type":"string","description":"Key location in the request. For API key auth on MCP toolsets,\nthe API key can only be sent in the request header.\nPossible values:\nHEADER\n"}},"type":"object","required":["apiKeySecretVersion","keyName","requestLocation"]},"gcp:ces/ToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig:ToolsetOpenApiToolsetApiAuthenticationBearerTokenConfig":{"properties":{"token":{"type":"string","description":"(Optional)\n"}},"type":"object"},"gcp:ces/ToolsetOpenApiToolsetApiAuthenticationOauthConfig:ToolsetOpenApiToolsetApiAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"The client ID from the OAuth provider.\n"},"clientSecretVersion":{"type":"string","description":"The name of the SecretManager secret version resource storing the\nclient secret.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\nNote: You should grant `roles/secretmanager.secretAccessor` role to the CES\nservice agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"},"oauthGrantType":{"type":"string","description":"OAuth grant types.\nPossible values:\nCLIENT_CREDENTIAL\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"The OAuth scopes to grant.\n"},"tokenEndpoint":{"type":"string","description":"The token endpoint in the OAuth provider to exchange for an access token.\n"}},"type":"object","required":["clientId","clientSecretVersion","oauthGrantType","tokenEndpoint"]},"gcp:ces/ToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig:ToolsetOpenApiToolsetApiAuthenticationServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"The email address of the service account used for authenticatation. CES\nuses this service account to exchange an access token and the access token\nis then sent in the `Authorization` header of the request.\nThe service account must have the\n`roles/iam.serviceAccountTokenCreator` role granted to the\nCES service agent\n`service-@gcp-sa-ces.iam.gserviceaccount.com`.\n"}},"type":"object","required":["serviceAccount"]},"gcp:ces/ToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig:ToolsetOpenApiToolsetApiAuthenticationServiceAgentIdTokenAuthConfig":{"type":"object"},"gcp:ces/ToolsetOpenApiToolsetServiceDirectoryConfig:ToolsetOpenApiToolsetServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"The name of [Service\nDirectory](https://cloud.google.com/service-directory) service.\nFormat:\n`projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}`.\nLocation of the service directory must be the same as the location of the\napp.\n"}},"type":"object","required":["service"]},"gcp:ces/ToolsetOpenApiToolsetTlsConfig:ToolsetOpenApiToolsetTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:ces/ToolsetOpenApiToolsetTlsConfigCaCert:ToolsetOpenApiToolsetTlsConfigCaCert"},"description":"Specifies a list of allowed custom CA certificates for HTTPS\nverification.\nStructure is documented below.\n"}},"type":"object","required":["caCerts"]},"gcp:ces/ToolsetOpenApiToolsetTlsConfigCaCert:ToolsetOpenApiToolsetTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"The allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, CES will use Google's default trust\nstore to verify certificates. N.B. Make sure the HTTPS server\ncertificates are signed with \"subject alt name\". For instance a\ncertificate can be self-signed using the following command,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n"},"displayName":{"type":"string","description":"The name of the allowed custom CA certificates. This\ncan be used to disambiguate the custom CA certificates.\n"}},"type":"object","required":["cert","displayName"]},"gcp:chronicle/DataAccessScopeAllowedDataAccessLabel:DataAccessScopeAllowedDataAccessLabel":{"properties":{"assetNamespace":{"type":"string","description":"The asset namespace configured in the forwarder\nof the customer's events.\n"},"dataAccessLabel":{"type":"string","description":"The name of the data access label.\n"},"displayName":{"type":"string","description":"(Output)\nOutput only. The display name of the label.\nData access label and log types's name\nwill match the display name of the resource.\nThe asset namespace will match the namespace itself.\nThe ingestion key value pair will match the key of the tuple.\n"},"ingestionLabel":{"$ref":"#/types/gcp:chronicle/DataAccessScopeAllowedDataAccessLabelIngestionLabel:DataAccessScopeAllowedDataAccessLabelIngestionLabel","description":"Representation of an ingestion label type.\nStructure is documented below.\n"},"logType":{"type":"string","description":"The name of the log type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"gcp:chronicle/DataAccessScopeAllowedDataAccessLabelIngestionLabel:DataAccessScopeAllowedDataAccessLabelIngestionLabel":{"properties":{"ingestionLabelKey":{"type":"string","description":"Required. The key of the ingestion label. Always required.\n"},"ingestionLabelValue":{"type":"string","description":"Optional. The value of the ingestion label. Optional. An object\nwith no provided value and some key provided would match\nagainst the given key and ANY value.\n"}},"type":"object","required":["ingestionLabelKey"]},"gcp:chronicle/DataAccessScopeDeniedDataAccessLabel:DataAccessScopeDeniedDataAccessLabel":{"properties":{"assetNamespace":{"type":"string","description":"The asset namespace configured in the forwarder\nof the customer's events.\n"},"dataAccessLabel":{"type":"string","description":"The name of the data access label.\n"},"displayName":{"type":"string","description":"(Output)\nOutput only. The display name of the label.\nData access label and log types's name\nwill match the display name of the resource.\nThe asset namespace will match the namespace itself.\nThe ingestion key value pair will match the key of the tuple.\n"},"ingestionLabel":{"$ref":"#/types/gcp:chronicle/DataAccessScopeDeniedDataAccessLabelIngestionLabel:DataAccessScopeDeniedDataAccessLabelIngestionLabel","description":"Representation of an ingestion label type.\nStructure is documented below.\n"},"logType":{"type":"string","description":"The name of the log type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"gcp:chronicle/DataAccessScopeDeniedDataAccessLabelIngestionLabel:DataAccessScopeDeniedDataAccessLabelIngestionLabel":{"properties":{"ingestionLabelKey":{"type":"string","description":"Required. The key of the ingestion label. Always required.\n"},"ingestionLabelValue":{"type":"string","description":"Optional. The value of the ingestion label. Optional. An object\nwith no provided value and some key provided would match\nagainst the given key and ANY value.\n"}},"type":"object","required":["ingestionLabelKey"]},"gcp:chronicle/ReferenceListEntry:ReferenceListEntry":{"properties":{"value":{"type":"string","description":"Required. The value of the entry. Maximum length is 512 characters.\n"}},"type":"object","required":["value"]},"gcp:chronicle/ReferenceListScopeInfo:ReferenceListScopeInfo":{"properties":{"referenceListScope":{"$ref":"#/types/gcp:chronicle/ReferenceListScopeInfoReferenceListScope:ReferenceListScopeInfoReferenceListScope","description":"ReferenceListScope specifies the list of scope names of the reference list.\nStructure is documented below.\n"}},"type":"object"},"gcp:chronicle/ReferenceListScopeInfoReferenceListScope:ReferenceListScopeInfoReferenceListScope":{"properties":{"scopeNames":{"type":"array","items":{"type":"string"},"description":"Optional. The list of scope names of the reference list. The scope names should be\nfull resource names and should be of the format:\n\"projects/{project}/locations/{location}/instances/{instance}/dataAccessScopes/{scope_name}\".\n"}},"type":"object"},"gcp:chronicle/RetrohuntExecutionInterval:RetrohuntExecutionInterval":{"properties":{"endTime":{"type":"string","description":"Optional. Exclusive end of the interval.\nIf specified, a Timestamp matching this interval will have to be before the\nend.\n"},"startTime":{"type":"string","description":"Optional. Inclusive start of the interval.\nIf specified, a Timestamp matching this interval will have to be the same\nor after the start.\n"}},"type":"object"},"gcp:chronicle/RetrohuntProcessInterval:RetrohuntProcessInterval":{"properties":{"endTime":{"type":"string","description":"Exclusive end of the interval.\n","willReplaceOnChanges":true},"startTime":{"type":"string","description":"Inclusive start of the interval.\n","willReplaceOnChanges":true}},"type":"object","required":["endTime","startTime"]},"gcp:chronicle/RuleCompilationDiagnostic:RuleCompilationDiagnostic":{"properties":{"message":{"type":"string","description":"(Output)\nOutput only. The diagnostic message.\n"},"position":{"$ref":"#/types/gcp:chronicle/RuleCompilationDiagnosticPosition:RuleCompilationDiagnosticPosition","description":"CompilationPosition represents the location of a compilation diagnostic in\nrule text.\nStructure is documented below.\n"},"severity":{"type":"string","description":"(Output)\nOutput only. The severity of a rule's compilation diagnostic.\nPossible values:\nSEVERITY_UNSPECIFIED\nWARNING\nERROR\n"},"uri":{"type":"string","description":"(Output)\nOutput only. Link to documentation that describes a diagnostic in more detail.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["message","severity","uri"]}}},"gcp:chronicle/RuleCompilationDiagnosticPosition:RuleCompilationDiagnosticPosition":{"properties":{"endColumn":{"type":"integer","description":"(Output)\nOutput only. End column number, beginning at 1.\n"},"endLine":{"type":"integer","description":"(Output)\nOutput only. End line number, beginning at 1.\n"},"startColumn":{"type":"integer","description":"(Output)\nOutput only. Start column number, beginning at 1.\n"},"startLine":{"type":"integer","description":"(Output)\nOutput only. Start line number, beginning at 1.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endColumn","endLine","startColumn","startLine"]}}},"gcp:chronicle/RuleSeverity:RuleSeverity":{"properties":{"displayName":{"type":"string","description":"The display name of the severity level. Extracted from the meta section of\nthe rule text.\n"}},"type":"object"},"gcp:chronicle/WatchlistEntityCount:WatchlistEntityCount":{"properties":{"asset":{"type":"integer","description":"(Output)\nOutput only. Count of asset type entities in the watchlist.\n"},"user":{"type":"integer","description":"(Output)\nOutput only. Count of user type entities in the watchlist.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["asset","user"]}}},"gcp:chronicle/WatchlistEntityPopulationMechanism:WatchlistEntityPopulationMechanism":{"properties":{"manual":{"$ref":"#/types/gcp:chronicle/WatchlistEntityPopulationMechanismManual:WatchlistEntityPopulationMechanismManual","description":"Entities are added manually.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["manual"]}}},"gcp:chronicle/WatchlistEntityPopulationMechanismManual:WatchlistEntityPopulationMechanismManual":{"type":"object"},"gcp:chronicle/WatchlistWatchlistUserPreferences:WatchlistWatchlistUserPreferences":{"properties":{"pinned":{"type":"boolean","description":"Optional. Whether the watchlist is pinned on the dashboard.\n"}},"type":"object"},"gcp:cloudasset/FolderFeedCondition:FolderFeedCondition":{"properties":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file\nname and a position in the file.\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.\n"}},"type":"object","required":["expression"]},"gcp:cloudasset/FolderFeedFeedOutputConfig:FolderFeedFeedOutputConfig":{"properties":{"pubsubDestination":{"$ref":"#/types/gcp:cloudasset/FolderFeedFeedOutputConfigPubsubDestination:FolderFeedFeedOutputConfigPubsubDestination","description":"Destination on Cloud Pubsub.\nStructure is documented below.\n"}},"type":"object","required":["pubsubDestination"]},"gcp:cloudasset/FolderFeedFeedOutputConfigPubsubDestination:FolderFeedFeedOutputConfigPubsubDestination":{"properties":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.\n"}},"type":"object","required":["topic"]},"gcp:cloudasset/OrganizationFeedCondition:OrganizationFeedCondition":{"properties":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file\nname and a position in the file.\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.\n"}},"type":"object","required":["expression"]},"gcp:cloudasset/OrganizationFeedFeedOutputConfig:OrganizationFeedFeedOutputConfig":{"properties":{"pubsubDestination":{"$ref":"#/types/gcp:cloudasset/OrganizationFeedFeedOutputConfigPubsubDestination:OrganizationFeedFeedOutputConfigPubsubDestination","description":"Destination on Cloud Pubsub.\nStructure is documented below.\n"}},"type":"object","required":["pubsubDestination"]},"gcp:cloudasset/OrganizationFeedFeedOutputConfigPubsubDestination:OrganizationFeedFeedOutputConfigPubsubDestination":{"properties":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.\n"}},"type":"object","required":["topic"]},"gcp:cloudasset/ProjectFeedCondition:ProjectFeedCondition":{"properties":{"description":{"type":"string","description":"Description of the expression. This is a longer text which describes the expression,\ne.g. when hovered over it in a UI.\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file\nname and a position in the file.\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\nThis can be used e.g. in UIs which allow to enter the expression.\n"}},"type":"object","required":["expression"]},"gcp:cloudasset/ProjectFeedFeedOutputConfig:ProjectFeedFeedOutputConfig":{"properties":{"pubsubDestination":{"$ref":"#/types/gcp:cloudasset/ProjectFeedFeedOutputConfigPubsubDestination:ProjectFeedFeedOutputConfigPubsubDestination","description":"Destination on Cloud Pubsub.\nStructure is documented below.\n"}},"type":"object","required":["pubsubDestination"]},"gcp:cloudasset/ProjectFeedFeedOutputConfigPubsubDestination:ProjectFeedFeedOutputConfigPubsubDestination":{"properties":{"topic":{"type":"string","description":"Destination on Cloud Pubsub topic.\n"}},"type":"object","required":["topic"]},"gcp:cloudasset/getResourcesSearchAllResult:getResourcesSearchAllResult":{"properties":{"additionalAttributes":{"type":"array","items":{"type":"string"},"description":"Additional searchable attributes of this resource. Informational only. The exact set of attributes is subject to change. For example: project id, DNS name etc.\n"},"assetType":{"type":"string","description":"The type of this resource.\n"},"description":{"type":"string","description":"One or more paragraphs of text description of this resource. Maximum length could be up to 1M bytes.\n"},"displayName":{"type":"string","description":"The display name of this resource.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels associated with this resource.\n"},"location":{"type":"string","description":"Location can be \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e, regional like `us-east1`, or zonal like `us-west1-b`.\n"},"name":{"type":"string","description":"The full resource name. See [Resource Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information.\n"},"networkTags":{"type":"array","items":{"type":"string"},"description":"Network tags associated with this resource.\n"},"project":{"type":"string","description":"The project that this resource belongs to, in the form of `projects/{project_number}`.\n"}},"type":"object","required":["additionalAttributes","assetType","description","displayName","labels","location","name","networkTags","project"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudasset/getSearchAllResourcesResult:getSearchAllResourcesResult":{"properties":{"assetType":{"type":"string","description":"The type of this resource.\n"},"createTime":{"type":"string","description":"The create timestamp of this resource, at which the resource was created.\n"},"description":{"type":"string","description":"One or more paragraphs of text description of this resource. Maximum length could be up to 1M bytes.\n"},"displayName":{"type":"string","description":"The display name of this resource.\n"},"folders":{"type":"array","items":{"type":"string"},"description":"The folder(s) that this resource belongs to, in the form of `folders/{FOLDER_NUMBER}`. This field is available when the resource belongs to one or more folders.\n"},"kmsKeys":{"type":"array","items":{"type":"string"},"description":"The Cloud KMS CryptoKey names or CryptoKeyVersion names. This field is available only when the resource's Protobuf contains it.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels associated with this resource.\n"},"location":{"type":"string","description":"Location can be \u003cspan pulumi-lang-nodejs=\"`global`\" pulumi-lang-dotnet=\"`Global`\" pulumi-lang-go=\"`global`\" pulumi-lang-python=\"`global`\" pulumi-lang-yaml=\"`global`\" pulumi-lang-java=\"`global`\"\u003e`global`\u003c/span\u003e, regional like `us-east1`, or zonal like `us-west1-b`.\n"},"name":{"type":"string","description":"The full resource name of this resource.. See [Resource Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information.\n"},"networkTags":{"type":"array","items":{"type":"string"},"description":"Network tags associated with this resource.\n"},"organization":{"type":"string","description":"The organization that this resource belongs to, in the form of `organizations/{ORGANIZATION_NUMBER}`. This field is available when the resource belongs to an organization.\n"},"parentAssetType":{"type":"string","description":"The type of this resource's immediate parent, if there is one.\n"},"parentFullResourceName":{"type":"string","description":"The full resource name of this resource's parent, if it has one.\n"},"project":{"type":"string","description":"The project that this resource belongs to, in the form of `projects/{project_number}`.\n"},"state":{"type":"string","description":"The state of this resource.\n"},"updateTime":{"type":"string","description":"The last update timestamp of this resource, at which the resource was last modified or deleted.\n"}},"type":"object","required":["assetType","createTime","description","displayName","folders","kmsKeys","labels","location","name","networkTags","organization","parentAssetType","parentFullResourceName","project","state","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/BitbucketServerConfigConnectedRepository:BitbucketServerConfigConnectedRepository":{"properties":{"projectKey":{"type":"string","description":"Identifier for the project storing the repository.\n"},"repoSlug":{"type":"string","description":"Identifier for the repository.\n"}},"type":"object","required":["projectKey","repoSlug"]},"gcp:cloudbuild/BitbucketServerConfigSecrets:BitbucketServerConfigSecrets":{"properties":{"adminAccessTokenVersionName":{"type":"string","description":"The resource name for the admin access token's secret version.\n"},"readAccessTokenVersionName":{"type":"string","description":"The resource name for the read access token's secret version.\n"},"webhookSecretVersionName":{"type":"string","description":"Immutable. The resource name for the webhook secret's secret version. Once this field has been set, it cannot be changed.\nChanging this field will result in deleting/ recreating the resource.\n","willReplaceOnChanges":true}},"type":"object","required":["adminAccessTokenVersionName","readAccessTokenVersionName","webhookSecretVersionName"]},"gcp:cloudbuild/TriggerApprovalConfig:TriggerApprovalConfig":{"properties":{"approvalRequired":{"type":"boolean","description":"Whether or not approval is needed. If this is set on a build, it will become pending when run,\nand will need to be explicitly approved to start.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBitbucketServerTriggerConfig:TriggerBitbucketServerTriggerConfig":{"properties":{"bitbucketServerConfigResource":{"type":"string","description":"The Bitbucket server config resource that this trigger config maps to.\n"},"projectKey":{"type":"string","description":"Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is \"TEST\".\n"},"pullRequest":{"$ref":"#/types/gcp:cloudbuild/TriggerBitbucketServerTriggerConfigPullRequest:TriggerBitbucketServerTriggerConfigPullRequest","description":"Filter to match changes in pull requests.\nStructure is documented below.\n"},"push":{"$ref":"#/types/gcp:cloudbuild/TriggerBitbucketServerTriggerConfigPush:TriggerBitbucketServerTriggerConfigPush","description":"Filter to match changes in refs like branches, tags.\nStructure is documented below.\n"},"repoSlug":{"type":"string","description":"Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL.\nFor example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo.\n"}},"type":"object","required":["bitbucketServerConfigResource","projectKey","repoSlug"]},"gcp:cloudbuild/TriggerBitbucketServerTriggerConfigPullRequest:TriggerBitbucketServerTriggerConfigPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment `/gcbrun`.\nPossible values are: `COMMENTS_DISABLED`, `COMMENTS_ENABLED`, `COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY`.\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object","required":["branch"]},"gcp:cloudbuild/TriggerBitbucketServerTriggerConfigPush:TriggerBitbucketServerTriggerConfigPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"invertRegex":{"type":"boolean","description":"If true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuild:TriggerBuild":{"properties":{"artifacts":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildArtifacts:TriggerBuildArtifacts","description":"Artifacts produced by the build that should be uploaded upon successful completion of all build steps.\nStructure is documented below.\n"},"availableSecrets":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildAvailableSecrets:TriggerBuildAvailableSecrets","description":"Secrets and secret environment variables.\nStructure is documented below.\n"},"images":{"type":"array","items":{"type":"string"},"description":"A list of images to be pushed upon the successful completion of all build steps.\nThe images are pushed using the builder service account's credentials.\nThe digests of the pushed images will be stored in the Build resource's results field.\nIf any of the images fail to be pushed, the build status is marked FAILURE.\n"},"logsBucket":{"type":"string","description":"Google Cloud Storage bucket where logs should be written.\nLogs file names will be of the format ${logsBucket}/log-${build_id}.txt.\n"},"options":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildOptions:TriggerBuildOptions","description":"Special options for this build.\nStructure is documented below.\n"},"queueTtl":{"type":"string","description":"TTL in queue for this build. If provided and the build is enqueued longer than this value,\nthe build will expire and the build status will be EXPIRED.\nThe TTL starts ticking from createTime.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"},"secrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildSecret:TriggerBuildSecret"},"description":"Secrets to decrypt using Cloud Key Management Service.\nStructure is documented below.\n"},"source":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildSource:TriggerBuildSource","description":"The location of the source files to build.\nOne of `storageSource` or `repoSource` must be provided.\nStructure is documented below.\n"},"steps":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildStep:TriggerBuildStep"},"description":"The operations to be performed on the workspace.\nStructure is documented below.\n"},"substitutions":{"type":"object","additionalProperties":{"type":"string"},"description":"Substitutions data for Build resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for annotation of a Build. These are not docker tags.\n"},"timeout":{"type":"string","description":"Amount of time that this build should be allowed to run, to second granularity.\nIf this amount of time elapses, work on the build will cease and the build status will be TIMEOUT.\nThis timeout must be equal to or greater than the sum of the timeouts for build steps within the build.\nThe expected format is the number of seconds followed by s.\nDefault time is ten minutes (600s).\n"}},"type":"object","required":["steps"]},"gcp:cloudbuild/TriggerBuildArtifacts:TriggerBuildArtifacts":{"properties":{"images":{"type":"array","items":{"type":"string"},"description":"A list of images to be pushed upon the successful completion of all build steps.\nThe images will be pushed using the builder service account's credentials.\nThe digests of the pushed images will be stored in the Build resource's results field.\nIf any of the images fail to be pushed, the build is marked FAILURE.\n"},"mavenArtifacts":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildArtifactsMavenArtifact:TriggerBuildArtifactsMavenArtifact"},"description":"A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\nIf any objects fail to be pushed, the build is marked FAILURE.\nStructure is documented below.\n"},"npmPackages":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildArtifactsNpmPackage:TriggerBuildArtifactsNpmPackage"},"description":"Npm package to upload to Artifact Registry upon successful completion of all build steps.\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\nIf any objects fail to be pushed, the build is marked FAILURE.\nStructure is documented below.\n"},"objects":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildArtifactsObjects:TriggerBuildArtifactsObjects","description":"A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps.\nFiles in the workspace matching specified paths globs will be uploaded to the\nCloud Storage location using the builder service account's credentials.\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\nIf any objects fail to be pushed, the build is marked FAILURE.\nStructure is documented below.\n"},"pythonPackages":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildArtifactsPythonPackage:TriggerBuildArtifactsPythonPackage"},"description":"Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\nIf any objects fail to be pushed, the build is marked FAILURE.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildArtifactsMavenArtifact:TriggerBuildArtifactsMavenArtifact":{"properties":{"artifactId":{"type":"string","description":"Maven artifactId value used when uploading the artifact to Artifact Registry.\n"},"groupId":{"type":"string","description":"Maven groupId value used when uploading the artifact to Artifact Registry.\n"},"path":{"type":"string","description":"Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.\n"},"repository":{"type":"string","description":"Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\"\nArtifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.\n"},"version":{"type":"string","description":"Maven version value used when uploading the artifact to Artifact Registry.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildArtifactsNpmPackage:TriggerBuildArtifactsNpmPackage":{"properties":{"packagePath":{"type":"string","description":"Path to the package.json. e.g. workspace/path/to/package\n"},"repository":{"type":"string","description":"Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\"\nNpm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildArtifactsObjects:TriggerBuildArtifactsObjects":{"properties":{"location":{"type":"string","description":"Cloud Storage bucket and optional object path, in the form \"gs://bucket/path/to/somewhere/\".\nFiles in the workspace matching any path pattern will be uploaded to Cloud Storage with\nthis location as a prefix.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"Path globs used to match files in the build's workspace.\n"},"timings":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildArtifactsObjectsTiming:TriggerBuildArtifactsObjectsTiming"},"description":"(Output)\nOutput only. Stores timing information for pushing all artifact objects.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedBuildArtifactsObjectsTiming\"\" pulumi-lang-dotnet=\"\"NestedBuildArtifactsObjectsTiming\"\" pulumi-lang-go=\"\"nestedBuildArtifactsObjectsTiming\"\" pulumi-lang-python=\"\"nested_build_artifacts_objects_timing\"\" pulumi-lang-yaml=\"\"nestedBuildArtifactsObjectsTiming\"\" pulumi-lang-java=\"\"nestedBuildArtifactsObjectsTiming\"\"\u003e\"nested_build_artifacts_objects_timing\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`timing`\" pulumi-lang-dotnet=\"`Timing`\" pulumi-lang-go=\"`timing`\" pulumi-lang-python=\"`timing`\" pulumi-lang-yaml=\"`timing`\" pulumi-lang-java=\"`timing`\"\u003e`timing`\u003c/span\u003e block contains:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["timings"]}}},"gcp:cloudbuild/TriggerBuildArtifactsObjectsTiming:TriggerBuildArtifactsObjectsTiming":{"properties":{"endTime":{"type":"string","description":"End of time span.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to\nnine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"startTime":{"type":"string","description":"Start of time span.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to\nnine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildArtifactsPythonPackage:TriggerBuildArtifactsPythonPackage":{"properties":{"paths":{"type":"array","items":{"type":"string"},"description":"Path globs used to match files in the build's workspace. For Python/ Twine, this is usually dist/*, and sometimes additionally an .asc file.\n"},"repository":{"type":"string","description":"Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\"\nFiles in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildAvailableSecrets:TriggerBuildAvailableSecrets":{"properties":{"secretManagers":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildAvailableSecretsSecretManager:TriggerBuildAvailableSecretsSecretManager"},"description":"Pairs a secret environment variable with a SecretVersion in Secret Manager.\nStructure is documented below.\n"}},"type":"object","required":["secretManagers"]},"gcp:cloudbuild/TriggerBuildAvailableSecretsSecretManager:TriggerBuildAvailableSecretsSecretManager":{"properties":{"env":{"type":"string","description":"Environment variable name to associate with the secret. Secret environment\nvariables must be unique across all of a build's secrets, and must be used\nby at least one build step.\n"},"versionName":{"type":"string","description":"Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*\n"}},"type":"object","required":["env","versionName"]},"gcp:cloudbuild/TriggerBuildOptions:TriggerBuildOptions":{"properties":{"diskSizeGb":{"type":"integer","description":"Requested disk size for the VM that runs the build. Note that this is NOT \"disk free\";\nsome of the space will be used by the operating system and build utilities.\nAlso note that this is the minimum disk size that will be allocated for the build --\nthe build may run with a larger disk than requested. At present, the maximum disk size\nis 1000GB; builds that request more than the maximum are rejected with an error.\n"},"dynamicSubstitutions":{"type":"boolean","description":"Option to specify whether or not to apply bash style string operations to the substitutions.\nNOTE this is always enabled for triggered builds and cannot be overridden in the build configuration file.\n"},"envs":{"type":"array","items":{"type":"string"},"description":"A list of global environment variable definitions that will exist for all build steps\nin this build. If a variable is defined in both globally and in a build step,\nthe variable will use the build step value.\nThe elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".\n"},"logStreamingOption":{"type":"string","description":"Option to define build log streaming behavior to Google Cloud Storage.\nPossible values are: `STREAM_DEFAULT`, `STREAM_ON`, `STREAM_OFF`.\n"},"logging":{"type":"string","description":"Option to specify the logging mode, which determines if and where build logs are stored.\nPossible values are: `LOGGING_UNSPECIFIED`, `LEGACY`, `GCS_ONLY`, `STACKDRIVER_ONLY`, `CLOUD_LOGGING_ONLY`, `NONE`.\n"},"machineType":{"type":"string","description":"Compute Engine machine type on which to run the build.\n"},"requestedVerifyOption":{"type":"string","description":"Requested verifiability options.\nPossible values are: `NOT_VERIFIED`, `VERIFIED`.\n"},"secretEnvs":{"type":"array","items":{"type":"string"},"description":"A list of global environment variables, which are encrypted using a Cloud Key Management\nService crypto key. These values must be specified in the build's Secret. These variables\nwill be available to all build steps in this build.\n"},"sourceProvenanceHashes":{"type":"array","items":{"type":"string"},"description":"Requested hash for SourceProvenance.\nEach value may be one of: `NONE`, `SHA256`, `MD5`.\n"},"substitutionOption":{"type":"string","description":"Option to specify behavior when there is an error in the substitution checks.\nNOTE this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden\nin the build configuration file.\nPossible values are: `MUST_MATCH`, `ALLOW_LOOSE`.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildOptionsVolume:TriggerBuildOptionsVolume"},"description":"Global list of volumes to mount for ALL build steps\nEach volume is created as an empty volume prior to starting the build process.\nUpon completion of the build, volumes and their contents are discarded. Global\nvolume names and paths cannot conflict with the volumes defined a build step.\nUsing a global volume in a build with only one step is not valid as it is indicative\nof a build request with an incorrect configuration.\nStructure is documented below.\n"},"workerPool":{"type":"string","description":"Option to specify a WorkerPool for the build. Format projects/{project}/workerPools/{workerPool}\nThis field is experimental.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildOptionsVolume:TriggerBuildOptionsVolume":{"properties":{"name":{"type":"string","description":"Name of the volume to mount.\nVolume names must be unique per build step and must be valid names for Docker volumes.\nEach named volume must be used by at least two build steps.\n"},"path":{"type":"string","description":"Path at which to mount the volume.\nPaths must be absolute and cannot conflict with other volume paths on the same\nbuild step or with certain reserved volume paths.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildSecret:TriggerBuildSecret":{"properties":{"kmsKeyName":{"type":"string","description":"Cloud KMS key name to use to decrypt these envs.\n"},"secretEnv":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of environment variable name to its encrypted value.\nSecret environment variables must be unique across all of a build's secrets,\nand must be used by at least one build step. Values can be at most 64 KB in size.\nThere can be at most 100 secret values across all of a build's secrets.\n"}},"type":"object","required":["kmsKeyName"]},"gcp:cloudbuild/TriggerBuildSource:TriggerBuildSource":{"properties":{"repoSource":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildSourceRepoSource:TriggerBuildSourceRepoSource","description":"Location of the source in a Google Cloud Source Repository.\nStructure is documented below.\n"},"storageSource":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildSourceStorageSource:TriggerBuildSourceStorageSource","description":"Location of the source in an archive file in Google Cloud Storage.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudbuild/TriggerBuildSourceRepoSource:TriggerBuildSourceRepoSource":{"properties":{"branchName":{"type":"string","description":"Regex matching branches to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and\ndescribed at https://github.com/google/re2/wiki/Syntax\n"},"commitSha":{"type":"string","description":"Explicit commit SHA to build. Exactly one a of branch name, tag, or commit SHA must be provided.\n"},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\nThis must be a relative path. If a step's dir is specified and is an absolute path,\nthis value is ignored for that step's execution.\n"},"invertRegex":{"type":"boolean","description":"Only trigger a build if the revision regex does NOT match the revision regex.\n"},"projectId":{"type":"string","description":"ID of the project that owns the Cloud Source Repository.\nIf omitted, the project ID requesting the build is assumed.\n"},"repoName":{"type":"string","description":"Name of the Cloud Source Repository.\n"},"substitutions":{"type":"object","additionalProperties":{"type":"string"},"description":"Substitutions to use in a triggered build. Should only be used with triggers.run\n"},"tagName":{"type":"string","description":"Regex matching tags to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and\ndescribed at https://github.com/google/re2/wiki/Syntax\n"}},"type":"object","required":["repoName"]},"gcp:cloudbuild/TriggerBuildSourceStorageSource:TriggerBuildSourceStorageSource":{"properties":{"bucket":{"type":"string","description":"Google Cloud Storage bucket containing the source.\n"},"generation":{"type":"string","description":"Google Cloud Storage generation for the object.\nIf the generation is omitted, the latest generation will be used\n"},"object":{"type":"string","description":"Google Cloud Storage object containing the source.\nThis object must be a gzipped archive file (.tar.gz) containing source to build.\n"}},"type":"object","required":["bucket","object"]},"gcp:cloudbuild/TriggerBuildStep:TriggerBuildStep":{"properties":{"allowExitCodes":{"type":"array","items":{"type":"integer"},"description":"Allow this build step to fail without failing the entire build if and\nonly if the exit code is one of the specified codes.\nIf `allowFailure` is also specified, this field will take precedence.\n"},"allowFailure":{"type":"boolean","description":"Allow this build step to fail without failing the entire build.\nIf false, the entire build will fail if this step fails. Otherwise, the\nbuild will succeed, but this step will still have a failure status.\nError information will be reported in the `failureDetail` field.\n`allowExitCodes` takes precedence over this field.\n"},"args":{"type":"array","items":{"type":"string"},"description":"A list of arguments that will be presented to the step when it is started.\nIf the image used to run the step's container has an entrypoint, the args\nare used as arguments to that entrypoint. If the image does not define an\nentrypoint, the first element in args is used as the entrypoint, and the\nremainder will be used as arguments.\n"},"dir":{"type":"string","description":"Working directory to use when running this step's container.\nIf this value is a relative path, it is relative to the build's working\ndirectory. If this value is absolute, it may be outside the build's working\ndirectory, in which case the contents of the path may not be persisted\nacross build step executions, unless a \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e for that path is specified.\nIf the build specifies a `RepoSource` with \u003cspan pulumi-lang-nodejs=\"`dir`\" pulumi-lang-dotnet=\"`Dir`\" pulumi-lang-go=\"`dir`\" pulumi-lang-python=\"`dir`\" pulumi-lang-yaml=\"`dir`\" pulumi-lang-java=\"`dir`\"\u003e`dir`\u003c/span\u003e and a step with a\n\u003cspan pulumi-lang-nodejs=\"`dir`\" pulumi-lang-dotnet=\"`Dir`\" pulumi-lang-go=\"`dir`\" pulumi-lang-python=\"`dir`\" pulumi-lang-yaml=\"`dir`\" pulumi-lang-java=\"`dir`\"\u003e`dir`\u003c/span\u003e,\nwhich specifies an absolute path, the `RepoSource` \u003cspan pulumi-lang-nodejs=\"`dir`\" pulumi-lang-dotnet=\"`Dir`\" pulumi-lang-go=\"`dir`\" pulumi-lang-python=\"`dir`\" pulumi-lang-yaml=\"`dir`\" pulumi-lang-java=\"`dir`\"\u003e`dir`\u003c/span\u003e is ignored\nfor the step's execution.\n"},"entrypoint":{"type":"string","description":"Entrypoint to be used instead of the build step image's\ndefault entrypoint.\nIf unset, the image's default entrypoint is used\n"},"envs":{"type":"array","items":{"type":"string"},"description":"A list of environment variable definitions to be used when\nrunning a step.\nThe elements are of the form \"KEY=VALUE\" for the environment variable\n\"KEY\" being given the value \"VALUE\".\n"},"id":{"type":"string","description":"Unique identifier for this build step, used in \u003cspan pulumi-lang-nodejs=\"`waitFor`\" pulumi-lang-dotnet=\"`WaitFor`\" pulumi-lang-go=\"`waitFor`\" pulumi-lang-python=\"`wait_for`\" pulumi-lang-yaml=\"`waitFor`\" pulumi-lang-java=\"`waitFor`\"\u003e`wait_for`\u003c/span\u003e to\nreference this build step as a dependency.\n"},"name":{"type":"string","description":"The name of the container image that will run this particular build step.\nIf the image is available in the host's Docker daemon's cache, it will be\nrun directly. If not, the host will attempt to pull the image first, using\nthe builder service account's credentials if necessary.\nThe Docker daemon's cache will already have the latest versions of all of\nthe officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders\nfor images and examples).\nThe Docker daemon will also have cached many of the layers for some popular\nimages, like \"ubuntu\", \"debian\", but they will be refreshed at the time\nyou attempt to use them.\nIf you built an image in a previous build step, it will be stored in the\nhost's Docker daemon's cache and is available to use as the name for a\nlater build step.\n"},"script":{"type":"string","description":"A shell script to be executed in the step.\nWhen script is provided, the user cannot specify the entrypoint or args.\n"},"secretEnvs":{"type":"array","items":{"type":"string"},"description":"A list of environment variables which are encrypted using\na Cloud Key\nManagement Service crypto key. These values must be specified in\nthe build's `Secret`.\n"},"timeout":{"type":"string","description":"Time limit for executing this build step. If not defined,\nthe step has no\ntime limit and will be allowed to continue to run until either it\ncompletes or the build itself times out.\n"},"timing":{"type":"string","description":"Output only. Stores timing information for executing this\nbuild step.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/TriggerBuildStepVolume:TriggerBuildStepVolume"},"description":"List of volumes to mount into the build step.\nEach volume is created as an empty volume prior to execution of the\nbuild step. Upon completion of the build, volumes and their contents\nare discarded.\nUsing a named volume in only one step is not valid as it is\nindicative of a build request with an incorrect configuration.\nStructure is documented below.\n"},"waitFors":{"type":"array","items":{"type":"string"},"description":"The ID(s) of the step(s) that this build step depends on.\nThis build step will not start until all the build steps in \u003cspan pulumi-lang-nodejs=\"`waitFor`\" pulumi-lang-dotnet=\"`WaitFor`\" pulumi-lang-go=\"`waitFor`\" pulumi-lang-python=\"`wait_for`\" pulumi-lang-yaml=\"`waitFor`\" pulumi-lang-java=\"`waitFor`\"\u003e`wait_for`\u003c/span\u003e\nhave completed successfully. If \u003cspan pulumi-lang-nodejs=\"`waitFor`\" pulumi-lang-dotnet=\"`WaitFor`\" pulumi-lang-go=\"`waitFor`\" pulumi-lang-python=\"`wait_for`\" pulumi-lang-yaml=\"`waitFor`\" pulumi-lang-java=\"`waitFor`\"\u003e`wait_for`\u003c/span\u003e is empty, this build step\nwill start when all previous build steps in the `Build.Steps` list\nhave completed successfully.\n"}},"type":"object","required":["name"]},"gcp:cloudbuild/TriggerBuildStepVolume:TriggerBuildStepVolume":{"properties":{"name":{"type":"string","description":"Name of the volume to mount.\nVolume names must be unique per build step and must be valid names for Docker volumes.\nEach named volume must be used by at least two build steps.\n"},"path":{"type":"string","description":"Path at which to mount the volume.\nPaths must be absolute and cannot conflict with other volume paths on the same\nbuild step or with certain reserved volume paths.\n"}},"type":"object","required":["name","path"]},"gcp:cloudbuild/TriggerDeveloperConnectEventConfig:TriggerDeveloperConnectEventConfig":{"properties":{"gitRepositoryLink":{"type":"string","description":"The Developer Connect Git repository link, formatted as `projects/*/locations/*/connections/*/gitRepositoryLink/*`.\n"},"gitRepositoryLinkType":{"type":"string","description":"(Output)\nThe type of DeveloperConnect GitRepositoryLink.\n"},"pullRequest":{"$ref":"#/types/gcp:cloudbuild/TriggerDeveloperConnectEventConfigPullRequest:TriggerDeveloperConnectEventConfigPullRequest","description":"Filter to match changes in pull requests.\nStructure is documented below.\n"},"push":{"$ref":"#/types/gcp:cloudbuild/TriggerDeveloperConnectEventConfigPush:TriggerDeveloperConnectEventConfigPush","description":"Filter to match changes in refs like branches and tags.\nStructure is documented below.\n"}},"type":"object","required":["gitRepositoryLink"],"language":{"nodejs":{"requiredOutputs":["gitRepositoryLink","gitRepositoryLinkType"]}}},"gcp:cloudbuild/TriggerDeveloperConnectEventConfigPullRequest:TriggerDeveloperConnectEventConfigPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment `/gcbrun`.\nPossible values are: `COMMENTS_DISABLED`, `COMMENTS_ENABLED`, `COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY`.\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object"},"gcp:cloudbuild/TriggerDeveloperConnectEventConfigPush:TriggerDeveloperConnectEventConfigPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"invertRegex":{"type":"boolean","description":"If true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.\n"}},"type":"object"},"gcp:cloudbuild/TriggerGitFileSource:TriggerGitFileSource":{"properties":{"bitbucketServerConfig":{"type":"string","description":"The full resource name of the bitbucket server config.\nFormat: projects/{project}/locations/{location}/bitbucketServerConfigs/{id}.\n"},"githubEnterpriseConfig":{"type":"string","description":"The full resource name of the github enterprise config.\nFormat: projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. projects/{project}/githubEnterpriseConfigs/{id}.\n"},"path":{"type":"string","description":"The path of the file, with the repo root as the root of the path.\n"},"repoType":{"type":"string","description":"The type of the repo, since it may not be explicit from the repo field (e.g from a URL).\nValues can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB, BITBUCKET_SERVER\nPossible values are: `UNKNOWN`, `CLOUD_SOURCE_REPOSITORIES`, `GITHUB`, `BITBUCKET_SERVER`.\n"},"repository":{"type":"string","description":"The fully qualified resource name of the Repo API repository. The fully qualified resource name of the Repo API repository.\nIf unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.\n"},"revision":{"type":"string","description":"The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the\nfilename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions\nIf unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path.\n"},"uri":{"type":"string","description":"The URI of the repo (optional). If unspecified, the repo from which the trigger\ninvocation originated is assumed to be the repo from which to read the specified path.\n"}},"type":"object","required":["path","repoType"]},"gcp:cloudbuild/TriggerGithub:TriggerGithub":{"properties":{"enterpriseConfigResourceName":{"type":"string","description":"The resource name of the github enterprise config that should be applied to this installation.\nFor example: \"projects/{$projectId}/locations/{$locationId}/githubEnterpriseConfigs/{$configId}\"\n"},"name":{"type":"string","description":"Name of the repository. For example: The name for\nhttps://github.com/googlecloudplatform/cloud-builders is \"cloud-builders\".\n"},"owner":{"type":"string","description":"Owner of the repository. For example: The owner for\nhttps://github.com/googlecloudplatform/cloud-builders is \"googlecloudplatform\".\n"},"pullRequest":{"$ref":"#/types/gcp:cloudbuild/TriggerGithubPullRequest:TriggerGithubPullRequest","description":"filter to match changes in pull requests. Specify only one of \u003cspan pulumi-lang-nodejs=\"`pullRequest`\" pulumi-lang-dotnet=\"`PullRequest`\" pulumi-lang-go=\"`pullRequest`\" pulumi-lang-python=\"`pull_request`\" pulumi-lang-yaml=\"`pullRequest`\" pulumi-lang-java=\"`pullRequest`\"\u003e`pull_request`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`push`\" pulumi-lang-dotnet=\"`Push`\" pulumi-lang-go=\"`push`\" pulumi-lang-python=\"`push`\" pulumi-lang-yaml=\"`push`\" pulumi-lang-java=\"`push`\"\u003e`push`\u003c/span\u003e.\nStructure is documented below.\n"},"push":{"$ref":"#/types/gcp:cloudbuild/TriggerGithubPush:TriggerGithubPush","description":"filter to match changes in refs, like branches or tags. Specify only one of \u003cspan pulumi-lang-nodejs=\"`pullRequest`\" pulumi-lang-dotnet=\"`PullRequest`\" pulumi-lang-go=\"`pullRequest`\" pulumi-lang-python=\"`pull_request`\" pulumi-lang-yaml=\"`pullRequest`\" pulumi-lang-java=\"`pullRequest`\"\u003e`pull_request`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`push`\" pulumi-lang-dotnet=\"`Push`\" pulumi-lang-go=\"`push`\" pulumi-lang-python=\"`push`\" pulumi-lang-yaml=\"`push`\" pulumi-lang-java=\"`push`\"\u003e`push`\u003c/span\u003e.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudbuild/TriggerGithubPullRequest:TriggerGithubPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment `/gcbrun`.\nPossible values are: `COMMENTS_DISABLED`, `COMMENTS_ENABLED`, `COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY`.\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object","required":["branch"]},"gcp:cloudbuild/TriggerGithubPush:TriggerGithubPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"invertRegex":{"type":"boolean","description":"If true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.\n"}},"type":"object"},"gcp:cloudbuild/TriggerPubsubConfig:TriggerPubsubConfig":{"properties":{"serviceAccountEmail":{"type":"string","description":"Service account that will make the push request.\n"},"state":{"type":"string","description":"(Output)\nPotential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.\n"},"subscription":{"type":"string","description":"(Output)\nOutput only. Name of the subscription.\n"},"topic":{"type":"string","description":"The name of the topic from which this subscription is receiving messages.\n"}},"type":"object","required":["topic"],"language":{"nodejs":{"requiredOutputs":["state","subscription","topic"]}}},"gcp:cloudbuild/TriggerRepositoryEventConfig:TriggerRepositoryEventConfig":{"properties":{"pullRequest":{"$ref":"#/types/gcp:cloudbuild/TriggerRepositoryEventConfigPullRequest:TriggerRepositoryEventConfigPullRequest","description":"Contains filter properties for matching Pull Requests.\nStructure is documented below.\n"},"push":{"$ref":"#/types/gcp:cloudbuild/TriggerRepositoryEventConfigPush:TriggerRepositoryEventConfigPush","description":"Contains filter properties for matching git pushes.\nStructure is documented below.\n"},"repository":{"type":"string","description":"The resource name of the Repo API resource.\n"}},"type":"object"},"gcp:cloudbuild/TriggerRepositoryEventConfigPullRequest:TriggerRepositoryEventConfigPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment `/gcbrun`.\nPossible values are: `COMMENTS_DISABLED`, `COMMENTS_ENABLED`, `COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY`.\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object"},"gcp:cloudbuild/TriggerRepositoryEventConfigPush:TriggerRepositoryEventConfigPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"invertRegex":{"type":"boolean","description":"If true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.\n"}},"type":"object"},"gcp:cloudbuild/TriggerSourceToBuild:TriggerSourceToBuild":{"properties":{"bitbucketServerConfig":{"type":"string","description":"The full resource name of the bitbucket server config.\nFormat: projects/{project}/locations/{location}/bitbucketServerConfigs/{id}.\n"},"githubEnterpriseConfig":{"type":"string","description":"The full resource name of the github enterprise config.\nFormat: projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. projects/{project}/githubEnterpriseConfigs/{id}.\n"},"ref":{"type":"string","description":"The branch or tag to use. Must start with \"refs/\" (required).\n"},"repoType":{"type":"string","description":"The type of the repo, since it may not be explicit from the repo field (e.g from a URL).\nValues can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB, BITBUCKET_SERVER\nPossible values are: `UNKNOWN`, `CLOUD_SOURCE_REPOSITORIES`, `GITHUB`, `BITBUCKET_SERVER`.\n"},"repository":{"type":"string","description":"The qualified resource name of the Repo API repository.\nEither uri or repository can be specified and is required.\n"},"uri":{"type":"string","description":"The URI of the repo.\n"}},"type":"object","required":["ref","repoType"]},"gcp:cloudbuild/TriggerTriggerTemplate:TriggerTriggerTemplate":{"properties":{"branchName":{"type":"string","description":"Name of the branch to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.\n"},"commitSha":{"type":"string","description":"Explicit commit SHA to build. Exactly one of a branch name, tag, or commit SHA must be provided.\n"},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\nThis must be a relative path. If a step's dir is specified and\nis an absolute path, this value is ignored for that step's\nexecution.\n"},"invertRegex":{"type":"boolean","description":"Only trigger a build if the revision regex does NOT match the revision regex.\n"},"projectId":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. If\nomitted, the project ID requesting the build is assumed.\n"},"repoName":{"type":"string","description":"Name of the Cloud Source Repository. If omitted, the name \"default\" is assumed.\n"},"tagName":{"type":"string","description":"Name of the tag to build. Exactly one of a branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["projectId"]}}},"gcp:cloudbuild/TriggerWebhookConfig:TriggerWebhookConfig":{"properties":{"secret":{"type":"string","description":"Resource name for the secret required as a URL parameter.\n"},"state":{"type":"string","description":"(Output)\nPotential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.\n"}},"type":"object","required":["secret"],"language":{"nodejs":{"requiredOutputs":["secret","state"]}}},"gcp:cloudbuild/WorkerPoolNetworkConfig:WorkerPoolNetworkConfig":{"properties":{"peeredNetwork":{"type":"string","description":"Immutable. The network definition that the workers are peered to. If this section is left empty, the workers will be peered to `WorkerPool.project_id` on the service producer network. Must be in the format `projects/{project}/global/networks/{network}`, where `{project}` is a project number, such as \u003cspan pulumi-lang-nodejs=\"`12345`\" pulumi-lang-dotnet=\"`12345`\" pulumi-lang-go=\"`12345`\" pulumi-lang-python=\"`12345`\" pulumi-lang-yaml=\"`12345`\" pulumi-lang-java=\"`12345`\"\u003e`12345`\u003c/span\u003e, and `{network}` is the name of a VPC network in the project. See (https://cloud.google.com/cloud-build/docs/custom-workers/set-up-custom-worker-pool-environment#understanding_the_network_configuration_options)\n","willReplaceOnChanges":true},"peeredNetworkIpRange":{"type":"string","description":"Immutable. Subnet IP range within the peered network. This is specified in CIDR notation with a slash and the subnet prefix size. You can optionally specify an IP address before the subnet prefix value. e.g. `192.168.0.0/29` would specify an IP range starting at 192.168.0.0 with a prefix size of 29 bits. `/16` would specify a prefix size of 16 bits, with an automatically determined IP within the peered VPC. If unspecified, a value of `/24` will be used.\n","willReplaceOnChanges":true}},"type":"object","required":["peeredNetwork"]},"gcp:cloudbuild/WorkerPoolPrivateServiceConnect:WorkerPoolPrivateServiceConnect":{"properties":{"networkAttachment":{"type":"string","description":"Required. Immutable. The network attachment that the worker network interface is connected to. Must be in the format `projects/{project}/regions/{region}/networkAttachments/{networkAttachment}`. The region of network attachment must be the same as the worker pool. See [Network Attachments](https://cloud.google.com/vpc/docs/about-network-attachments)\n","willReplaceOnChanges":true},"routeAllTraffic":{"type":"boolean","description":"Immutable. Route all traffic through PSC interface. Enable this if you want full control of traffic in the private pool. Configure Cloud NAT for the subnet of network attachment if you need to access public Internet. If false, Only route private IPs, e.g. 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 through PSC interface.\n","willReplaceOnChanges":true}},"type":"object","required":["networkAttachment"]},"gcp:cloudbuild/WorkerPoolWorkerConfig:WorkerPoolWorkerConfig":{"properties":{"diskSizeGb":{"type":"integer","description":"Size of the disk attached to the worker, in GB. See [diskSizeGb](https://cloud.google.com/build/docs/private-pools/private-pool-config-file-schema#disksizegb). Specify a value of up to 1000. If \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e is specified, Cloud Build will use a standard disk size.\n"},"enableNestedVirtualization":{"type":"boolean","description":"Enable nested virtualization on the worker, if supported by the machine type. See [Worker pool config file](https://cloud.google.com/build/docs/private-pools/worker-pool-config-file-schema). If left blank, Cloud Build will set this to false.\n"},"machineType":{"type":"string","description":"Machine type of a worker, such as `n1-standard-1`. See [machineType](https://cloud.google.com/build/docs/private-pools/private-pool-config-file-schema#machinetype). If left blank, Cloud Build will use `n1-standard-1`.\n"},"noExternalIp":{"type":"boolean","description":"If true, workers are created without any public address, which prevents network egress to public IPs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["noExternalIp"]}}},"gcp:cloudbuild/getTriggerApprovalConfig:getTriggerApprovalConfig":{"properties":{"approvalRequired":{"type":"boolean","description":"Whether or not approval is needed. If this is set on a build, it will become pending when run,\nand will need to be explicitly approved to start.\n"}},"type":"object","required":["approvalRequired"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBitbucketServerTriggerConfig:getTriggerBitbucketServerTriggerConfig":{"properties":{"bitbucketServerConfigResource":{"type":"string","description":"The Bitbucket server config resource that this trigger config maps to.\n"},"projectKey":{"type":"string","description":"Key of the project that the repo is in. For example: The key for https://mybitbucket.server/projects/TEST/repos/test-repo is \"TEST\".\n"},"pullRequests":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBitbucketServerTriggerConfigPullRequest:getTriggerBitbucketServerTriggerConfigPullRequest"},"description":"Filter to match changes in pull requests.\n"},"pushes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBitbucketServerTriggerConfigPush:getTriggerBitbucketServerTriggerConfigPush"},"description":"Filter to match changes in refs like branches, tags.\n"},"repoSlug":{"type":"string","description":"Slug of the repository. A repository slug is a URL-friendly version of a repository name, automatically generated by Bitbucket for use in the URL.\nFor example, if the repository name is 'test repo', in the URL it would become 'test-repo' as in https://mybitbucket.server/projects/TEST/repos/test-repo.\n"}},"type":"object","required":["bitbucketServerConfigResource","projectKey","pullRequests","pushes","repoSlug"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBitbucketServerTriggerConfigPullRequest:getTriggerBitbucketServerTriggerConfigPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and described at https://github.com/google/re2/wiki/Syntax\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment /gcbrun. Possible values: [\"COMMENTS_DISABLED\", \"COMMENTS_ENABLED\", \"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY\"]\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object","required":["branch","commentControl","invertRegex"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBitbucketServerTriggerConfigPush:getTriggerBitbucketServerTriggerConfigPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.  Specify only one of branch or tag.\n"},"invertRegex":{"type":"boolean","description":"When true, only trigger a build if the revision regex does NOT match the gitRef regex.\n"},"tag":{"type":"string","description":"Regex of tags to match.  Specify only one of branch or tag.\n"}},"type":"object","required":["branch","invertRegex","tag"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuild:getTriggerBuild":{"properties":{"artifacts":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildArtifact:getTriggerBuildArtifact"},"description":"Artifacts produced by the build that should be uploaded upon successful completion of all build steps.\n"},"availableSecrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildAvailableSecret:getTriggerBuildAvailableSecret"},"description":"Secrets and secret environment variables.\n"},"images":{"type":"array","items":{"type":"string"},"description":"A list of images to be pushed upon the successful completion of all build steps.\nThe images are pushed using the builder service account's credentials.\nThe digests of the pushed images will be stored in the Build resource's results field.\nIf any of the images fail to be pushed, the build status is marked FAILURE.\n"},"logsBucket":{"type":"string","description":"Google Cloud Storage bucket where logs should be written.\nLogs file names will be of the format ${logsBucket}/log-${build_id}.txt.\n"},"options":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildOption:getTriggerBuildOption"},"description":"Special options for this build.\n"},"queueTtl":{"type":"string","description":"TTL in queue for this build. If provided and the build is enqueued longer than this value,\nthe build will expire and the build status will be EXPIRED.\nThe TTL starts ticking from createTime.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"},"secrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildSecret:getTriggerBuildSecret"},"description":"Secrets to decrypt using Cloud Key Management Service.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildSource:getTriggerBuildSource"},"description":"The location of the source files to build.\n\nOne of 'storageSource' or 'repoSource' must be provided.\n"},"steps":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildStep:getTriggerBuildStep"},"description":"The operations to be performed on the workspace.\n"},"substitutions":{"type":"object","additionalProperties":{"type":"string"},"description":"Substitutions data for Build resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags for annotation of a Build. These are not docker tags.\n"},"timeout":{"type":"string","description":"Amount of time that this build should be allowed to run, to second granularity.\nIf this amount of time elapses, work on the build will cease and the build status will be TIMEOUT.\nThis timeout must be equal to or greater than the sum of the timeouts for build steps within the build.\nThe expected format is the number of seconds followed by s.\nDefault time is ten minutes (600s).\n"}},"type":"object","required":["artifacts","availableSecrets","images","logsBucket","options","queueTtl","secrets","sources","steps","substitutions","tags","timeout"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildArtifact:getTriggerBuildArtifact":{"properties":{"images":{"type":"array","items":{"type":"string"},"description":"A list of images to be pushed upon the successful completion of all build steps.\n\nThe images will be pushed using the builder service account's credentials.\n\nThe digests of the pushed images will be stored in the Build resource's results field.\n\nIf any of the images fail to be pushed, the build is marked FAILURE.\n"},"mavenArtifacts":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildArtifactMavenArtifact:getTriggerBuildArtifactMavenArtifact"},"description":"A Maven artifact to upload to Artifact Registry upon successful completion of all build steps.\n\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\n\nIf any objects fail to be pushed, the build is marked FAILURE.\n"},"npmPackages":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildArtifactNpmPackage:getTriggerBuildArtifactNpmPackage"},"description":"Npm package to upload to Artifact Registry upon successful completion of all build steps.\n\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\n\nIf any objects fail to be pushed, the build is marked FAILURE.\n"},"objects":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildArtifactObject:getTriggerBuildArtifactObject"},"description":"A list of objects to be uploaded to Cloud Storage upon successful completion of all build steps.\n\nFiles in the workspace matching specified paths globs will be uploaded to the\nCloud Storage location using the builder service account's credentials.\n\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\n\nIf any objects fail to be pushed, the build is marked FAILURE.\n"},"pythonPackages":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildArtifactPythonPackage:getTriggerBuildArtifactPythonPackage"},"description":"Python package to upload to Artifact Registry upon successful completion of all build steps. A package can encapsulate multiple objects to be uploaded to a single repository.\n\nThe location and generation of the uploaded objects will be stored in the Build resource's results field.\n\nIf any objects fail to be pushed, the build is marked FAILURE.\n"}},"type":"object","required":["images","mavenArtifacts","npmPackages","objects","pythonPackages"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildArtifactMavenArtifact:getTriggerBuildArtifactMavenArtifact":{"properties":{"artifactId":{"type":"string","description":"Maven artifactId value used when uploading the artifact to Artifact Registry.\n"},"groupId":{"type":"string","description":"Maven groupId value used when uploading the artifact to Artifact Registry.\n"},"path":{"type":"string","description":"Path to an artifact in the build's workspace to be uploaded to Artifact Registry. This can be either an absolute path, e.g. /workspace/my-app/target/my-app-1.0.SNAPSHOT.jar or a relative path from /workspace, e.g. my-app/target/my-app-1.0.SNAPSHOT.jar.\n"},"repository":{"type":"string","description":"Artifact Registry repository, in the form \"https://$REGION-maven.pkg.dev/$PROJECT/$REPOSITORY\"\n\nArtifact in the workspace specified by path will be uploaded to Artifact Registry with this location as a prefix.\n"},"version":{"type":"string","description":"Maven version value used when uploading the artifact to Artifact Registry.\n"}},"type":"object","required":["artifactId","groupId","path","repository","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildArtifactNpmPackage:getTriggerBuildArtifactNpmPackage":{"properties":{"packagePath":{"type":"string","description":"Path to the package.json. e.g. workspace/path/to/package\n"},"repository":{"type":"string","description":"Artifact Registry repository, in the form \"https://$REGION-npm.pkg.dev/$PROJECT/$REPOSITORY\"\n\nNpm package in the workspace specified by path will be zipped and uploaded to Artifact Registry with this location as a prefix.\n"}},"type":"object","required":["packagePath","repository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildArtifactObject:getTriggerBuildArtifactObject":{"properties":{"location":{"type":"string","description":"The Cloud Build location for the trigger.\n\n- - -\n"},"paths":{"type":"array","items":{"type":"string"},"description":"Path globs used to match files in the build's workspace.\n"},"timings":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildArtifactObjectTiming:getTriggerBuildArtifactObjectTiming"},"description":"Output only. Stores timing information for pushing all artifact objects.\n"}},"type":"object","required":["location","paths","timings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildArtifactObjectTiming:getTriggerBuildArtifactObjectTiming":{"properties":{"endTime":{"type":"string","description":"End of time span.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to\nnine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"startTime":{"type":"string","description":"Start of time span.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to\nnine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object","required":["endTime","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildArtifactPythonPackage:getTriggerBuildArtifactPythonPackage":{"properties":{"paths":{"type":"array","items":{"type":"string"},"description":"Path globs used to match files in the build's workspace. For Python/ Twine, this is usually dist/*, and sometimes additionally an .asc file.\n"},"repository":{"type":"string","description":"Artifact Registry repository, in the form \"https://$REGION-python.pkg.dev/$PROJECT/$REPOSITORY\"\n\nFiles in the workspace matching any path pattern will be uploaded to Artifact Registry with this location as a prefix.\n"}},"type":"object","required":["paths","repository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildAvailableSecret:getTriggerBuildAvailableSecret":{"properties":{"secretManagers":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildAvailableSecretSecretManager:getTriggerBuildAvailableSecretSecretManager"},"description":"Pairs a secret environment variable with a SecretVersion in Secret Manager.\n"}},"type":"object","required":["secretManagers"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildAvailableSecretSecretManager:getTriggerBuildAvailableSecretSecretManager":{"properties":{"env":{"type":"string","description":"Environment variable name to associate with the secret. Secret environment\nvariables must be unique across all of a build's secrets, and must be used\nby at least one build step.\n"},"versionName":{"type":"string","description":"Resource name of the SecretVersion. In format: projects/*/secrets/*/versions/*\n"}},"type":"object","required":["env","versionName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildOption:getTriggerBuildOption":{"properties":{"diskSizeGb":{"type":"integer","description":"Requested disk size for the VM that runs the build. Note that this is NOT \"disk free\";\nsome of the space will be used by the operating system and build utilities.\nAlso note that this is the minimum disk size that will be allocated for the build --\nthe build may run with a larger disk than requested. At present, the maximum disk size\nis 1000GB; builds that request more than the maximum are rejected with an error.\n"},"dynamicSubstitutions":{"type":"boolean","description":"Option to specify whether or not to apply bash style string operations to the substitutions.\n\nNOTE this is always enabled for triggered builds and cannot be overridden in the build configuration file.\n"},"envs":{"type":"array","items":{"type":"string"},"description":"A list of global environment variable definitions that will exist for all build steps\nin this build. If a variable is defined in both globally and in a build step,\nthe variable will use the build step value.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable \"KEY\" being given the value \"VALUE\".\n"},"logStreamingOption":{"type":"string","description":"Option to define build log streaming behavior to Google Cloud Storage. Possible values: [\"STREAM_DEFAULT\", \"STREAM_ON\", \"STREAM_OFF\"]\n"},"logging":{"type":"string","description":"Option to specify the logging mode, which determines if and where build logs are stored. Possible values: [\"LOGGING_UNSPECIFIED\", \"LEGACY\", \"GCS_ONLY\", \"STACKDRIVER_ONLY\", \"CLOUD_LOGGING_ONLY\", \"NONE\"]\n"},"machineType":{"type":"string","description":"Compute Engine machine type on which to run the build.\n"},"requestedVerifyOption":{"type":"string","description":"Requested verifiability options. Possible values: [\"NOT_VERIFIED\", \"VERIFIED\"]\n"},"secretEnvs":{"type":"array","items":{"type":"string"},"description":"A list of global environment variables, which are encrypted using a Cloud Key Management\nService crypto key. These values must be specified in the build's Secret. These variables\nwill be available to all build steps in this build.\n"},"sourceProvenanceHashes":{"type":"array","items":{"type":"string"},"description":"Requested hash for SourceProvenance. Possible values: [\"NONE\", \"SHA256\", \"MD5\"]\n"},"substitutionOption":{"type":"string","description":"Option to specify behavior when there is an error in the substitution checks.\n\nNOTE this is always set to ALLOW_LOOSE for triggered builds and cannot be overridden\nin the build configuration file. Possible values: [\"MUST_MATCH\", \"ALLOW_LOOSE\"]\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildOptionVolume:getTriggerBuildOptionVolume"},"description":"Global list of volumes to mount for ALL build steps\n\nEach volume is created as an empty volume prior to starting the build process.\nUpon completion of the build, volumes and their contents are discarded. Global\nvolume names and paths cannot conflict with the volumes defined a build step.\n\nUsing a global volume in a build with only one step is not valid as it is indicative\nof a build request with an incorrect configuration.\n"},"workerPool":{"type":"string","description":"Option to specify a WorkerPool for the build. Format projects/{project}/workerPools/{workerPool}\n\nThis field is experimental.\n"}},"type":"object","required":["diskSizeGb","dynamicSubstitutions","envs","logStreamingOption","logging","machineType","requestedVerifyOption","secretEnvs","sourceProvenanceHashes","substitutionOption","volumes","workerPool"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildOptionVolume:getTriggerBuildOptionVolume":{"properties":{"name":{"type":"string","description":"Name of the volume to mount.\n\nVolume names must be unique per build step and must be valid names for Docker volumes.\nEach named volume must be used by at least two build steps.\n"},"path":{"type":"string","description":"Path at which to mount the volume.\n\nPaths must be absolute and cannot conflict with other volume paths on the same\nbuild step or with certain reserved volume paths.\n"}},"type":"object","required":["name","path"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildSecret:getTriggerBuildSecret":{"properties":{"kmsKeyName":{"type":"string","description":"Cloud KMS key name to use to decrypt these envs.\n"},"secretEnv":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of environment variable name to its encrypted value.\nSecret environment variables must be unique across all of a build's secrets,\nand must be used by at least one build step. Values can be at most 64 KB in size.\nThere can be at most 100 secret values across all of a build's secrets.\n"}},"type":"object","required":["kmsKeyName","secretEnv"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildSource:getTriggerBuildSource":{"properties":{"repoSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildSourceRepoSource:getTriggerBuildSourceRepoSource"},"description":"Location of the source in a Google Cloud Source Repository.\n"},"storageSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildSourceStorageSource:getTriggerBuildSourceStorageSource"},"description":"Location of the source in an archive file in Google Cloud Storage.\n"}},"type":"object","required":["repoSources","storageSources"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildSourceRepoSource:getTriggerBuildSourceRepoSource":{"properties":{"branchName":{"type":"string","description":"Regex matching branches to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and\ndescribed at https://github.com/google/re2/wiki/Syntax\n"},"commitSha":{"type":"string","description":"Explicit commit SHA to build. Exactly one a of branch name, tag, or commit SHA must be provided.\n"},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\nThis must be a relative path. If a step's dir is specified and is an absolute path,\nthis value is ignored for that step's execution.\n"},"invertRegex":{"type":"boolean","description":"Only trigger a build if the revision regex does NOT match the revision regex.\n"},"projectId":{"type":"string","description":"ID of the project that owns the Cloud Source Repository.\nIf omitted, the project ID requesting the build is assumed.\n"},"repoName":{"type":"string","description":"Name of the Cloud Source Repository.\n"},"substitutions":{"type":"object","additionalProperties":{"type":"string"},"description":"Substitutions to use in a triggered build. Should only be used with triggers.run\n"},"tagName":{"type":"string","description":"Regex matching tags to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThe syntax of the regular expressions accepted is the syntax accepted by RE2 and\ndescribed at https://github.com/google/re2/wiki/Syntax\n"}},"type":"object","required":["branchName","commitSha","dir","invertRegex","projectId","repoName","substitutions","tagName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildSourceStorageSource:getTriggerBuildSourceStorageSource":{"properties":{"bucket":{"type":"string","description":"Google Cloud Storage bucket containing the source.\n"},"generation":{"type":"string","description":"Google Cloud Storage generation for the object.\nIf the generation is omitted, the latest generation will be used\n"},"object":{"type":"string","description":"Google Cloud Storage object containing the source.\nThis object must be a gzipped archive file (.tar.gz) containing source to build.\n"}},"type":"object","required":["bucket","generation","object"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildStep:getTriggerBuildStep":{"properties":{"allowExitCodes":{"type":"array","items":{"type":"integer"},"description":"Allow this build step to fail without failing the entire build if and\nonly if the exit code is one of the specified codes.\n\nIf 'allowFailure' is also specified, this field will take precedence.\n"},"allowFailure":{"type":"boolean","description":"Allow this build step to fail without failing the entire build.\nIf false, the entire build will fail if this step fails. Otherwise, the\nbuild will succeed, but this step will still have a failure status.\nError information will be reported in the 'failureDetail' field.\n\n'allowExitCodes' takes precedence over this field.\n"},"args":{"type":"array","items":{"type":"string"},"description":"A list of arguments that will be presented to the step when it is started.\n\nIf the image used to run the step's container has an entrypoint, the args\nare used as arguments to that entrypoint. If the image does not define an\nentrypoint, the first element in args is used as the entrypoint, and the\nremainder will be used as arguments.\n"},"dir":{"type":"string","description":"Working directory to use when running this step's container.\n\nIf this value is a relative path, it is relative to the build's working\ndirectory. If this value is absolute, it may be outside the build's working\ndirectory, in which case the contents of the path may not be persisted\nacross build step executions, unless a 'volume' for that path is specified.\n\nIf the build specifies a 'RepoSource' with 'dir' and a step with a\n'dir',\nwhich specifies an absolute path, the 'RepoSource' 'dir' is ignored\nfor the step's execution.\n"},"entrypoint":{"type":"string","description":"Entrypoint to be used instead of the build step image's\ndefault entrypoint.\nIf unset, the image's default entrypoint is used\n"},"envs":{"type":"array","items":{"type":"string"},"description":"A list of environment variable definitions to be used when\nrunning a step.\n\nThe elements are of the form \"KEY=VALUE\" for the environment variable\n\"KEY\" being given the value \"VALUE\".\n"},"id":{"type":"string","description":"Unique identifier for this build step, used in 'wait_for' to\nreference this build step as a dependency.\n"},"name":{"type":"string","description":"The name of the container image that will run this particular build step.\n\nIf the image is available in the host's Docker daemon's cache, it will be\nrun directly. If not, the host will attempt to pull the image first, using\nthe builder service account's credentials if necessary.\n\nThe Docker daemon's cache will already have the latest versions of all of\nthe officially supported build steps (see https://github.com/GoogleCloudPlatform/cloud-builders\nfor images and examples).\nThe Docker daemon will also have cached many of the layers for some popular\nimages, like \"ubuntu\", \"debian\", but they will be refreshed at the time\nyou attempt to use them.\n\nIf you built an image in a previous build step, it will be stored in the\nhost's Docker daemon's cache and is available to use as the name for a\nlater build step.\n"},"script":{"type":"string","description":"A shell script to be executed in the step.\nWhen script is provided, the user cannot specify the entrypoint or args.\n"},"secretEnvs":{"type":"array","items":{"type":"string"},"description":"A list of environment variables which are encrypted using\na Cloud Key\nManagement Service crypto key. These values must be specified in\nthe build's 'Secret'.\n"},"timeout":{"type":"string","description":"Time limit for executing this build step. If not defined,\nthe step has no\ntime limit and will be allowed to continue to run until either it\ncompletes or the build itself times out.\n"},"timing":{"type":"string","description":"Output only. Stores timing information for executing this\nbuild step.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerBuildStepVolume:getTriggerBuildStepVolume"},"description":"List of volumes to mount into the build step.\n\nEach volume is created as an empty volume prior to execution of the\nbuild step. Upon completion of the build, volumes and their contents\nare discarded.\n\nUsing a named volume in only one step is not valid as it is\nindicative of a build request with an incorrect configuration.\n"},"waitFors":{"type":"array","items":{"type":"string"},"description":"The ID(s) of the step(s) that this build step depends on.\n\nThis build step will not start until all the build steps in 'wait_for'\nhave completed successfully. If 'wait_for' is empty, this build step\nwill start when all previous build steps in the 'Build.Steps' list\nhave completed successfully.\n"}},"type":"object","required":["allowExitCodes","allowFailure","args","dir","entrypoint","envs","id","name","script","secretEnvs","timeout","timing","volumes","waitFors"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerBuildStepVolume:getTriggerBuildStepVolume":{"properties":{"name":{"type":"string","description":"Name of the volume to mount.\n\nVolume names must be unique per build step and must be valid names for\nDocker volumes. Each named volume must be used by at least two build steps.\n"},"path":{"type":"string","description":"Path at which to mount the volume.\n\nPaths must be absolute and cannot conflict with other volume paths on\nthe same build step or with certain reserved volume paths.\n"}},"type":"object","required":["name","path"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerDeveloperConnectEventConfig:getTriggerDeveloperConnectEventConfig":{"properties":{"gitRepositoryLink":{"type":"string","description":"The Developer Connect Git repository link, formatted as 'projects/*/locations/*/connections/*/gitRepositoryLink/*'.\n"},"gitRepositoryLinkType":{"type":"string","description":"The type of DeveloperConnect GitRepositoryLink.\n"},"pullRequests":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerDeveloperConnectEventConfigPullRequest:getTriggerDeveloperConnectEventConfigPullRequest"},"description":"Filter to match changes in pull requests.\n"},"pushes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerDeveloperConnectEventConfigPush:getTriggerDeveloperConnectEventConfigPush"},"description":"Filter to match changes in refs like branches and tags.\n"}},"type":"object","required":["gitRepositoryLink","gitRepositoryLinkType","pullRequests","pushes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerDeveloperConnectEventConfigPullRequest:getTriggerDeveloperConnectEventConfigPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment '/gcbrun'. Possible values: [\"COMMENTS_DISABLED\", \"COMMENTS_ENABLED\", \"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY\"]\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object","required":["branch","commentControl","invertRegex"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerDeveloperConnectEventConfigPush:getTriggerDeveloperConnectEventConfigPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"invertRegex":{"type":"boolean","description":"If true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.\n"}},"type":"object","required":["branch","invertRegex","tag"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerGitFileSource:getTriggerGitFileSource":{"properties":{"bitbucketServerConfig":{"type":"string","description":"The full resource name of the bitbucket server config.\nFormat: projects/{project}/locations/{location}/bitbucketServerConfigs/{id}.\n"},"githubEnterpriseConfig":{"type":"string","description":"The full resource name of the github enterprise config.\nFormat: projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. projects/{project}/githubEnterpriseConfigs/{id}.\n"},"path":{"type":"string","description":"The path of the file, with the repo root as the root of the path.\n"},"repoType":{"type":"string","description":"The type of the repo, since it may not be explicit from the repo field (e.g from a URL).\nValues can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB, BITBUCKET_SERVER Possible values: [\"UNKNOWN\", \"CLOUD_SOURCE_REPOSITORIES\", \"GITHUB\", \"BITBUCKET_SERVER\"]\n"},"repository":{"type":"string","description":"The fully qualified resource name of the Repo API repository. The fully qualified resource name of the Repo API repository.\nIf unspecified, the repo from which the trigger invocation originated is assumed to be the repo from which to read the specified path.\n"},"revision":{"type":"string","description":"The branch, tag, arbitrary ref, or SHA version of the repo to use when resolving the\nfilename (optional). This field respects the same syntax/resolution as described here: https://git-scm.com/docs/gitrevisions\nIf unspecified, the revision from which the trigger invocation originated is assumed to be the revision from which to read the specified path.\n"},"uri":{"type":"string","description":"The URI of the repo (optional). If unspecified, the repo from which the trigger\ninvocation originated is assumed to be the repo from which to read the specified path.\n"}},"type":"object","required":["bitbucketServerConfig","githubEnterpriseConfig","path","repoType","repository","revision","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerGithub:getTriggerGithub":{"properties":{"enterpriseConfigResourceName":{"type":"string","description":"The resource name of the github enterprise config that should be applied to this installation.\nFor example: \"projects/{$projectId}/locations/{$locationId}/githubEnterpriseConfigs/{$configId}\"\n"},"name":{"type":"string","description":"Name of the repository. For example: The name for\nhttps://github.com/googlecloudplatform/cloud-builders is \"cloud-builders\".\n"},"owner":{"type":"string","description":"Owner of the repository. For example: The owner for\nhttps://github.com/googlecloudplatform/cloud-builders is \"googlecloudplatform\".\n"},"pullRequests":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerGithubPullRequest:getTriggerGithubPullRequest"},"description":"filter to match changes in pull requests. Specify only one of 'pull_request' or 'push'.\n"},"pushes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerGithubPush:getTriggerGithubPush"},"description":"filter to match changes in refs, like branches or tags. Specify only one of 'pull_request' or 'push'.\n"}},"type":"object","required":["enterpriseConfigResourceName","name","owner","pullRequests","pushes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerGithubPullRequest:getTriggerGithubPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n"},"commentControl":{"type":"string","description":"Whether to block builds on a \"/gcbrun\" comment from a repository owner or collaborator. Possible values: [\"COMMENTS_DISABLED\", \"COMMENTS_ENABLED\", \"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY\"]\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object","required":["branch","commentControl","invertRegex"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerGithubPush:getTriggerGithubPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.  Specify only one of branch or tag.\n"},"invertRegex":{"type":"boolean","description":"When true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.  Specify only one of branch or tag.\n"}},"type":"object","required":["branch","invertRegex","tag"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerPubsubConfig:getTriggerPubsubConfig":{"properties":{"serviceAccountEmail":{"type":"string","description":"Service account that will make the push request.\n"},"state":{"type":"string","description":"Potential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.\n"},"subscription":{"type":"string","description":"Output only. Name of the subscription.\n"},"topic":{"type":"string","description":"The name of the topic from which this subscription is receiving messages.\n"}},"type":"object","required":["serviceAccountEmail","state","subscription","topic"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerRepositoryEventConfig:getTriggerRepositoryEventConfig":{"properties":{"pullRequests":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerRepositoryEventConfigPullRequest:getTriggerRepositoryEventConfigPullRequest"},"description":"Contains filter properties for matching Pull Requests.\n"},"pushes":{"type":"array","items":{"$ref":"#/types/gcp:cloudbuild/getTriggerRepositoryEventConfigPush:getTriggerRepositoryEventConfigPush"},"description":"Contains filter properties for matching git pushes.\n"},"repository":{"type":"string","description":"The resource name of the Repo API resource.\n"}},"type":"object","required":["pullRequests","pushes","repository"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerRepositoryEventConfigPullRequest:getTriggerRepositoryEventConfigPullRequest":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n\nThe syntax of the regular expressions accepted is the syntax accepted by\nRE2 and described at https://github.com/google/re2/wiki/Syntax\n"},"commentControl":{"type":"string","description":"Configure builds to run whether a repository owner or collaborator need to comment '/gcbrun'. Possible values: [\"COMMENTS_DISABLED\", \"COMMENTS_ENABLED\", \"COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY\"]\n"},"invertRegex":{"type":"boolean","description":"If true, branches that do NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003ewill trigger a build.\n"}},"type":"object","required":["branch","commentControl","invertRegex"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerRepositoryEventConfigPush:getTriggerRepositoryEventConfigPush":{"properties":{"branch":{"type":"string","description":"Regex of branches to match.\n\nThe syntax of the regular expressions accepted is the syntax accepted by\nRE2 and described at https://github.com/google/re2/wiki/Syntax\n"},"invertRegex":{"type":"boolean","description":"If true, only trigger a build if the revision regex does NOT match the\u003cspan pulumi-lang-nodejs=\" gitRef \" pulumi-lang-dotnet=\" GitRef \" pulumi-lang-go=\" gitRef \" pulumi-lang-python=\" git_ref \" pulumi-lang-yaml=\" gitRef \" pulumi-lang-java=\" gitRef \"\u003e git_ref \u003c/span\u003eregex.\n"},"tag":{"type":"string","description":"Regex of tags to match.\n\nThe syntax of the regular expressions accepted is the syntax accepted by\nRE2 and described at https://github.com/google/re2/wiki/Syntax\n"}},"type":"object","required":["branch","invertRegex","tag"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerSourceToBuild:getTriggerSourceToBuild":{"properties":{"bitbucketServerConfig":{"type":"string","description":"The full resource name of the bitbucket server config.\nFormat: projects/{project}/locations/{location}/bitbucketServerConfigs/{id}.\n"},"githubEnterpriseConfig":{"type":"string","description":"The full resource name of the github enterprise config.\nFormat: projects/{project}/locations/{location}/githubEnterpriseConfigs/{id}. projects/{project}/githubEnterpriseConfigs/{id}.\n"},"ref":{"type":"string","description":"The branch or tag to use. Must start with \"refs/\" (required).\n"},"repoType":{"type":"string","description":"The type of the repo, since it may not be explicit from the repo field (e.g from a URL).\nValues can be UNKNOWN, CLOUD_SOURCE_REPOSITORIES, GITHUB, BITBUCKET_SERVER Possible values: [\"UNKNOWN\", \"CLOUD_SOURCE_REPOSITORIES\", \"GITHUB\", \"BITBUCKET_SERVER\"]\n"},"repository":{"type":"string","description":"The qualified resource name of the Repo API repository.\nEither uri or repository can be specified and is required.\n"},"uri":{"type":"string","description":"The URI of the repo.\n"}},"type":"object","required":["bitbucketServerConfig","githubEnterpriseConfig","ref","repoType","repository","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerTriggerTemplate:getTriggerTriggerTemplate":{"properties":{"branchName":{"type":"string","description":"Name of the branch to build. Exactly one a of branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.\n"},"commitSha":{"type":"string","description":"Explicit commit SHA to build. Exactly one of a branch name, tag, or commit SHA must be provided.\n"},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\n\nThis must be a relative path. If a step's dir is specified and\nis an absolute path, this value is ignored for that step's\nexecution.\n"},"invertRegex":{"type":"boolean","description":"Only trigger a build if the revision regex does NOT match the revision regex.\n"},"projectId":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. If\nomitted, the project ID requesting the build is assumed.\n"},"repoName":{"type":"string","description":"Name of the Cloud Source Repository. If omitted, the name \"default\" is assumed.\n"},"tagName":{"type":"string","description":"Name of the tag to build. Exactly one of a branch name, tag, or commit SHA must be provided.\nThis field is a regular expression.\n"}},"type":"object","required":["branchName","commitSha","dir","invertRegex","projectId","repoName","tagName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuild/getTriggerWebhookConfig:getTriggerWebhookConfig":{"properties":{"secret":{"type":"string","description":"Resource name for the secret required as a URL parameter.\n"},"state":{"type":"string","description":"Potential issues with the underlying Pub/Sub subscription configuration.\nOnly populated on get requests.\n"}},"type":"object","required":["secret","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudbuildv2/ConnectionBitbucketCloudConfig:ConnectionBitbucketCloudConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionBitbucketCloudConfigAuthorizerCredential:ConnectionBitbucketCloudConfigAuthorizerCredential","description":"Required. An access token with the \u003cspan pulumi-lang-nodejs=\"`webhook`\" pulumi-lang-dotnet=\"`Webhook`\" pulumi-lang-go=\"`webhook`\" pulumi-lang-python=\"`webhook`\" pulumi-lang-yaml=\"`webhook`\" pulumi-lang-java=\"`webhook`\"\u003e`webhook`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, `repository:admin` and \u003cspan pulumi-lang-nodejs=\"`pullrequest`\" pulumi-lang-dotnet=\"`Pullrequest`\" pulumi-lang-go=\"`pullrequest`\" pulumi-lang-python=\"`pullrequest`\" pulumi-lang-yaml=\"`pullrequest`\" pulumi-lang-java=\"`pullrequest`\"\u003e`pullrequest`\u003c/span\u003e scope access. It can be either a workspace, project or repository access token. It's recommended to use a system account to generate these credentials.\nStructure is documented below.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionBitbucketCloudConfigReadAuthorizerCredential:ConnectionBitbucketCloudConfigReadAuthorizerCredential","description":"Required. An access token with the \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e access. It can be either a workspace, project or repository access token. It's recommended to use a system account to generate the credentials.\nStructure is documented below.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret used to verify webhook events, formatted as `projects/*/secrets/*/versions/*`.\n","willReplaceOnChanges":true},"workspace":{"type":"string","description":"The Bitbucket Cloud Workspace ID to be connected to Google Cloud Platform.\n"}},"type":"object","required":["authorizerCredential","readAuthorizerCredential","webhookSecretSecretVersion","workspace"]},"gcp:cloudbuildv2/ConnectionBitbucketCloudConfigAuthorizerCredential:ConnectionBitbucketCloudConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:cloudbuildv2/ConnectionBitbucketCloudConfigReadAuthorizerCredential:ConnectionBitbucketCloudConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfig:ConnectionBitbucketDataCenterConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfigAuthorizerCredential:ConnectionBitbucketDataCenterConfigAuthorizerCredential","description":"Required. A http access token with the `REPO_ADMIN` scope access.\nStructure is documented below.\n"},"hostUri":{"type":"string","description":"The URI of the Bitbucket Data Center host this connection is for.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfigReadAuthorizerCredential:ConnectionBitbucketDataCenterConfigReadAuthorizerCredential","description":"Required. A http access token with the `REPO_READ` access.\nStructure is documented below.\n"},"serverVersion":{"type":"string","description":"(Output)\nOutput only. Version of the Bitbucket Data Center running on the \u003cspan pulumi-lang-nodejs=\"`hostUri`\" pulumi-lang-dotnet=\"`HostUri`\" pulumi-lang-go=\"`hostUri`\" pulumi-lang-python=\"`host_uri`\" pulumi-lang-yaml=\"`hostUri`\" pulumi-lang-java=\"`hostUri`\"\u003e`host_uri`\u003c/span\u003e.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfigServiceDirectoryConfig:ConnectionBitbucketDataCenterConfigServiceDirectoryConfig","description":"Configuration for using Service Directory to privately connect to a Bitbucket Data Center. This should only be set if the Bitbucket Data Center is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the Bitbucket Data Center will be made over the public internet.\nStructure is documented below.\n"},"sslCa":{"type":"string","description":"SSL certificate to use for requests to the Bitbucket Data Center.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret used to verify webhook events, formatted as `projects/*/secrets/*/versions/*`.\n","willReplaceOnChanges":true}},"type":"object","required":["authorizerCredential","hostUri","readAuthorizerCredential","webhookSecretSecretVersion"],"language":{"nodejs":{"requiredOutputs":["authorizerCredential","hostUri","readAuthorizerCredential","serverVersion","webhookSecretSecretVersion"]}}},"gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfigAuthorizerCredential:ConnectionBitbucketDataCenterConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfigReadAuthorizerCredential:ConnectionBitbucketDataCenterConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:cloudbuildv2/ConnectionBitbucketDataCenterConfigServiceDirectoryConfig:ConnectionBitbucketDataCenterConfigServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"Required. The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.\n"}},"type":"object","required":["service"]},"gcp:cloudbuildv2/ConnectionGithubConfig:ConnectionGithubConfig":{"properties":{"appInstallationId":{"type":"integer","description":"GitHub App installation id.\n"},"authorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionGithubConfigAuthorizerCredential:ConnectionGithubConfigAuthorizerCredential","description":"OAuth credential of the account that authorized the Cloud Build GitHub App. It is recommended to use a robot account instead of a human user account. The OAuth token must be tied to the Cloud Build GitHub App.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudbuildv2/ConnectionGithubConfigAuthorizerCredential:ConnectionGithubConfigAuthorizerCredential":{"properties":{"oauthTokenSecretVersion":{"type":"string","description":"A SecretManager resource containing the OAuth token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["username"]}}},"gcp:cloudbuildv2/ConnectionGithubEnterpriseConfig:ConnectionGithubEnterpriseConfig":{"properties":{"appId":{"type":"integer","description":"Id of the GitHub App created from the manifest.\n"},"appInstallationId":{"type":"integer","description":"ID of the installation of the GitHub App.\n"},"appSlug":{"type":"string","description":"The URL-friendly name of the GitHub App.\n"},"hostUri":{"type":"string","description":"Required. The URI of the GitHub Enterprise host this connection is for.\n"},"privateKeySecretVersion":{"type":"string","description":"SecretManager resource containing the private key of the GitHub App, formatted as `projects/*/secrets/*/versions/*`.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionGithubEnterpriseConfigServiceDirectoryConfig:ConnectionGithubEnterpriseConfigServiceDirectoryConfig","description":"Configuration for using Service Directory to privately connect to a GitHub Enterprise server. This should only be set if the GitHub Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitHub Enterprise server will be made over the public internet.\nStructure is documented below.\n"},"sslCa":{"type":"string","description":"SSL certificate to use for requests to GitHub Enterprise.\n"},"webhookSecretSecretVersion":{"type":"string","description":"SecretManager resource containing the webhook secret of the GitHub App, formatted as `projects/*/secrets/*/versions/*`.\n"}},"type":"object","required":["hostUri"]},"gcp:cloudbuildv2/ConnectionGithubEnterpriseConfigServiceDirectoryConfig:ConnectionGithubEnterpriseConfigServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"Required. The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.\n"}},"type":"object","required":["service"]},"gcp:cloudbuildv2/ConnectionGitlabConfig:ConnectionGitlabConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionGitlabConfigAuthorizerCredential:ConnectionGitlabConfigAuthorizerCredential","description":"Required. A GitLab personal access token with the \u003cspan pulumi-lang-nodejs=\"`api`\" pulumi-lang-dotnet=\"`Api`\" pulumi-lang-go=\"`api`\" pulumi-lang-python=\"`api`\" pulumi-lang-yaml=\"`api`\" pulumi-lang-java=\"`api`\"\u003e`api`\u003c/span\u003e scope access.\nStructure is documented below.\n"},"hostUri":{"type":"string","description":"The URI of the GitLab Enterprise host this connection is for. If not specified, the default value is https://gitlab.com.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionGitlabConfigReadAuthorizerCredential:ConnectionGitlabConfigReadAuthorizerCredential","description":"Required. A GitLab personal access token with the minimum \u003cspan pulumi-lang-nodejs=\"`readApi`\" pulumi-lang-dotnet=\"`ReadApi`\" pulumi-lang-go=\"`readApi`\" pulumi-lang-python=\"`read_api`\" pulumi-lang-yaml=\"`readApi`\" pulumi-lang-java=\"`readApi`\"\u003e`read_api`\u003c/span\u003e scope access.\nStructure is documented below.\n"},"serverVersion":{"type":"string","description":"(Output)\nOutput only. Version of the GitLab Enterprise server running on the \u003cspan pulumi-lang-nodejs=\"`hostUri`\" pulumi-lang-dotnet=\"`HostUri`\" pulumi-lang-go=\"`hostUri`\" pulumi-lang-python=\"`host_uri`\" pulumi-lang-yaml=\"`hostUri`\" pulumi-lang-java=\"`hostUri`\"\u003e`host_uri`\u003c/span\u003e.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:cloudbuildv2/ConnectionGitlabConfigServiceDirectoryConfig:ConnectionGitlabConfigServiceDirectoryConfig","description":"Configuration for using Service Directory to privately connect to a GitLab Enterprise server. This should only be set if the GitLab Enterprise server is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the GitLab Enterprise server will be made over the public internet.\nStructure is documented below.\n"},"sslCa":{"type":"string","description":"SSL certificate to use for requests to GitLab Enterprise.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret of a GitLab Enterprise project, formatted as `projects/*/secrets/*/versions/*`.\n","willReplaceOnChanges":true}},"type":"object","required":["authorizerCredential","readAuthorizerCredential","webhookSecretSecretVersion"],"language":{"nodejs":{"requiredOutputs":["authorizerCredential","hostUri","readAuthorizerCredential","serverVersion","webhookSecretSecretVersion"]}}},"gcp:cloudbuildv2/ConnectionGitlabConfigAuthorizerCredential:ConnectionGitlabConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:cloudbuildv2/ConnectionGitlabConfigReadAuthorizerCredential:ConnectionGitlabConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes the Cloud Build connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated to this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:cloudbuildv2/ConnectionGitlabConfigServiceDirectoryConfig:ConnectionGitlabConfigServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"Required. The Service Directory service name. Format: projects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.\n"}},"type":"object","required":["service"]},"gcp:cloudbuildv2/ConnectionIAMBindingCondition:ConnectionIAMBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudbuildv2/ConnectionIAMMemberCondition:ConnectionIAMMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudbuildv2/ConnectionInstallationState:ConnectionInstallationState":{"properties":{"actionUri":{"type":"string","description":"(Output)\nOutput only. Link to follow for next action. Empty string if the installation is already complete.\n"},"message":{"type":"string","description":"(Output)\nOutput only. Message of what the user should do next to continue the installation. Empty string if the installation is already complete.\n"},"stage":{"type":"string","description":"(Output)\nOutput only. Current step of the installation process.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["actionUri","message","stage"]}}},"gcp:clouddeploy/AutomationRule:AutomationRule":{"properties":{"advanceRolloutRule":{"$ref":"#/types/gcp:clouddeploy/AutomationRuleAdvanceRolloutRule:AutomationRuleAdvanceRolloutRule","description":"Optional. The `AdvanceRolloutRule` will automatically advance a successful Rollout.\nStructure is documented below.\n"},"promoteReleaseRule":{"$ref":"#/types/gcp:clouddeploy/AutomationRulePromoteReleaseRule:AutomationRulePromoteReleaseRule","description":"Optional. `PromoteReleaseRule` will automatically promote a release from the current target to a specified target.\nStructure is documented below.\n"},"repairRolloutRule":{"$ref":"#/types/gcp:clouddeploy/AutomationRuleRepairRolloutRule:AutomationRuleRepairRolloutRule","description":"Optional. The RepairRolloutRule will automatically repair a failed rollout.\nStructure is documented below.\n"},"timedPromoteReleaseRule":{"$ref":"#/types/gcp:clouddeploy/AutomationRuleTimedPromoteReleaseRule:AutomationRuleTimedPromoteReleaseRule","description":"Optional. The `TimedPromoteReleaseRule` will automatically promote a release from the current target(s) to the specified target(s) on a configured schedule.\nStructure is documented below.\n"}},"type":"object"},"gcp:clouddeploy/AutomationRuleAdvanceRolloutRule:AutomationRuleAdvanceRolloutRule":{"properties":{"id":{"type":"string","description":"Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.\n"},"sourcePhases":{"type":"array","items":{"type":"string"},"description":"Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^a-z?$`.\n"},"wait":{"type":"string","description":"Optional. How long to wait after a rollout is finished.\n"}},"type":"object","required":["id"]},"gcp:clouddeploy/AutomationRulePromoteReleaseRule:AutomationRulePromoteReleaseRule":{"properties":{"destinationPhase":{"type":"string","description":"Optional. The starting phase of the rollout created by this operation. Default to the first phase.\n"},"destinationTargetId":{"type":"string","description":"Optional. The ID of the stage in the pipeline to which this `Release` is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine if the target is one of the stages in the promotion sequence defined in the pipeline. * \"@next\", the next target in the promotion sequence.\n"},"id":{"type":"string","description":"Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.\n"},"wait":{"type":"string","description":"Optional. How long the release need to be paused until being promoted to the next target.\n"}},"type":"object","required":["id"]},"gcp:clouddeploy/AutomationRuleRepairRolloutRule:AutomationRuleRepairRolloutRule":{"properties":{"id":{"type":"string","description":"Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.\n"},"jobs":{"type":"array","items":{"type":"string"},"description":"Optional. Jobs to repair. Proceeds only after job name matched any one in the list, or for all jobs if unspecified or empty. The phase that includes the job must match the phase ID specified in sourcePhase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.\n"},"phases":{"type":"array","items":{"type":"string"},"description":"Optional. Phases within which jobs are subject to automatic repair actions on failure. Proceeds only after phase name matched any one in the list, or for all phases if unspecified. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: ^a-z?$.\n"},"repairPhases":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/AutomationRuleRepairRolloutRuleRepairPhase:AutomationRuleRepairRolloutRuleRepairPhase"},"description":"Optional. Proceeds only after phase name matched any one in the list. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^a-z?$`.\nStructure is documented below.\n"}},"type":"object","required":["id"]},"gcp:clouddeploy/AutomationRuleRepairRolloutRuleRepairPhase:AutomationRuleRepairRolloutRuleRepairPhase":{"properties":{"retry":{"$ref":"#/types/gcp:clouddeploy/AutomationRuleRepairRolloutRuleRepairPhaseRetry:AutomationRuleRepairRolloutRuleRepairPhaseRetry","description":"Optional. Retries a failed job.\nStructure is documented below.\n"},"rollback":{"$ref":"#/types/gcp:clouddeploy/AutomationRuleRepairRolloutRuleRepairPhaseRollback:AutomationRuleRepairRolloutRuleRepairPhaseRollback","description":"Optional. Rolls back a Rollout.\nStructure is documented below.\n"}},"type":"object"},"gcp:clouddeploy/AutomationRuleRepairRolloutRuleRepairPhaseRetry:AutomationRuleRepairRolloutRuleRepairPhaseRetry":{"properties":{"attempts":{"type":"string","description":"Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.\n"},"backoffMode":{"type":"string","description":"Optional. The pattern of how wait time will be increased. Default is linear. Backoff mode will be ignored if wait is 0.\nPossible values are: `BACKOFF_MODE_UNSPECIFIED`, `BACKOFF_MODE_LINEAR`, `BACKOFF_MODE_EXPONENTIAL`.\n"},"wait":{"type":"string","description":"Optional. How long to wait for the first retry. Default is 0, and the maximum value is 14d. A duration in seconds with up to nine fractional digits, ending with 's'. Example: `3.5s`.\n"}},"type":"object","required":["attempts"]},"gcp:clouddeploy/AutomationRuleRepairRolloutRuleRepairPhaseRollback:AutomationRuleRepairRolloutRuleRepairPhaseRollback":{"properties":{"destinationPhase":{"type":"string","description":"Optional. The starting phase ID for the Rollout. If unspecified, the Rollout will start in the stable phase.\n"},"disableRollbackIfRolloutPending":{"type":"boolean","description":"Optional. If pending rollout exists on the target, the rollback operation will be aborted.\n"}},"type":"object"},"gcp:clouddeploy/AutomationRuleTimedPromoteReleaseRule:AutomationRuleTimedPromoteReleaseRule":{"properties":{"destinationPhase":{"type":"string","description":"Optional. The starting phase of the rollout created by this rule. Default to the first phase.\n"},"destinationTargetId":{"type":"string","description":"Optional. The ID of the stage in the pipeline to which this Release is deploying. If unspecified, default it to the next stage in the promotion flow. The value of this field could be one of the following:\n- The last segment of a target name\n- \"@next\", the next target in the promotion sequence\"\n"},"id":{"type":"string","description":"Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.\n"},"schedule":{"type":"string","description":"Required. Schedule in crontab format. e.g. `0 9 * * 1` for every Monday at 9am.\n"},"timeZone":{"type":"string","description":"Required. The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).\n"}},"type":"object","required":["id","schedule","timeZone"]},"gcp:clouddeploy/AutomationSelector:AutomationSelector":{"properties":{"targets":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/AutomationSelectorTarget:AutomationSelectorTarget"},"description":"Contains attributes about a target.\nStructure is documented below.\n"}},"type":"object","required":["targets"]},"gcp:clouddeploy/AutomationSelectorTarget:AutomationSelectorTarget":{"properties":{"id":{"type":"string","description":"ID of the `Target`. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * \"*\", all targets in a location.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Target labels.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["labels"]}}},"gcp:clouddeploy/CustomTargetTypeCustomActions:CustomTargetTypeCustomActions":{"properties":{"deployAction":{"type":"string","description":"The Skaffold custom action responsible for deploy operations.\n"},"includeSkaffoldModules":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModule:CustomTargetTypeCustomActionsIncludeSkaffoldModule"},"description":"List of Skaffold modules Cloud Deploy will include in the Skaffold Config as required before performing diagnose.\nStructure is documented below.\n"},"renderAction":{"type":"string","description":"The Skaffold custom action responsible for render operations. If not provided then Cloud Deploy will perform the render operations via `skaffold render`.\n"}},"type":"object","required":["deployAction"]},"gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModule:CustomTargetTypeCustomActionsIncludeSkaffoldModule":{"properties":{"configs":{"type":"array","items":{"type":"string"},"description":"The Skaffold Config modules to use from the specified source.\n"},"git":{"$ref":"#/types/gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModuleGit:CustomTargetTypeCustomActionsIncludeSkaffoldModuleGit","description":"Remote git repository containing the Skaffold Config modules.\nStructure is documented below.\n"},"googleCloudBuildRepo":{"$ref":"#/types/gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudBuildRepo:CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudBuildRepo","description":"Cloud Build 2nd gen repository containing the Skaffold Config modules.\nStructure is documented below.\n"},"googleCloudStorage":{"$ref":"#/types/gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorage:CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorage","description":"Cloud Storage bucket containing Skaffold Config modules.\nStructure is documented below.\n"}},"type":"object"},"gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModuleGit:CustomTargetTypeCustomActionsIncludeSkaffoldModuleGit":{"properties":{"path":{"type":"string","description":"Relative path from the repository root to the Skaffold file.\n"},"ref":{"type":"string","description":"Git ref the package should be cloned from.\n"},"repo":{"type":"string","description":"Git repository the package should be cloned from.\n"}},"type":"object","required":["repo"]},"gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudBuildRepo:CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudBuildRepo":{"properties":{"path":{"type":"string","description":"Relative path from the repository root to the Skaffold file.\n"},"ref":{"type":"string","description":"Branch or tag to use when cloning the repository.\n"},"repository":{"type":"string","description":"Cloud Build 2nd gen repository in the format of 'projects/\u003cproject\u003e/locations/\u003clocation\u003e/connections/\u003cconnection\u003e/repositories/\u003crepository\u003e'.\n"}},"type":"object","required":["repository"]},"gcp:clouddeploy/CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorage:CustomTargetTypeCustomActionsIncludeSkaffoldModuleGoogleCloudStorage":{"properties":{"path":{"type":"string","description":"Relative path from the source to the Skaffold file.\n"},"source":{"type":"string","description":"Cloud Storage source paths to copy recursively. For example, providing `gs://my-bucket/dir/configs/*` will result in Skaffold copying all files within the `dir/configs` directory in the bucket `my-bucket`.\n"}},"type":"object","required":["source"]},"gcp:clouddeploy/CustomTargetTypeIamBindingCondition:CustomTargetTypeIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:clouddeploy/CustomTargetTypeIamMemberCondition:CustomTargetTypeIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:clouddeploy/DeliveryPipelineCondition:DeliveryPipelineCondition":{"properties":{"pipelineReadyConditions":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineConditionPipelineReadyCondition:DeliveryPipelineConditionPipelineReadyCondition"},"description":"Details around the Pipeline's overall status.\n"},"targetsPresentConditions":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineConditionTargetsPresentCondition:DeliveryPipelineConditionTargetsPresentCondition"},"description":"Details around targets enumerated in the pipeline.\n"},"targetsTypeConditions":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineConditionTargetsTypeCondition:DeliveryPipelineConditionTargetsTypeCondition"},"description":"Details on the whether the targets enumerated in the pipeline are of the same type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pipelineReadyConditions","targetsPresentConditions","targetsTypeConditions"]}}},"gcp:clouddeploy/DeliveryPipelineConditionPipelineReadyCondition:DeliveryPipelineConditionPipelineReadyCondition":{"properties":{"status":{"type":"boolean","description":"True if the Pipeline is in a valid state. Otherwise at least one condition in `PipelineCondition` is in an invalid state. Iterate over those conditions and see which condition(s) has status = false to find out what is wrong with the Pipeline.\n"},"updateTime":{"type":"string","description":"Output only. Most recent time at which the pipeline was updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status","updateTime"]}}},"gcp:clouddeploy/DeliveryPipelineConditionTargetsPresentCondition:DeliveryPipelineConditionTargetsPresentCondition":{"properties":{"missingTargets":{"type":"array","items":{"type":"string"},"description":"The list of Target names that are missing. For example, projects/{project_id}/locations/{location_name}/targets/{target_name}.\n"},"status":{"type":"boolean","description":"True if there aren't any missing Targets.\n"},"updateTime":{"type":"string","description":"Output only. Most recent time at which the pipeline was updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["missingTargets","status","updateTime"]}}},"gcp:clouddeploy/DeliveryPipelineConditionTargetsTypeCondition:DeliveryPipelineConditionTargetsTypeCondition":{"properties":{"errorDetails":{"type":"string","description":"Human readable error message.\n"},"status":{"type":"boolean","description":"True if the targets are all a comparable type. For example this is true if all targets are GKE clusters. This is false if some targets are Cloud Run targets and others are GKE clusters.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorDetails","status"]}}},"gcp:clouddeploy/DeliveryPipelineIamBindingCondition:DeliveryPipelineIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:clouddeploy/DeliveryPipelineIamMemberCondition:DeliveryPipelineIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:clouddeploy/DeliveryPipelineSerialPipeline:DeliveryPipelineSerialPipeline":{"properties":{"stages":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStage:DeliveryPipelineSerialPipelineStage"},"description":"Each stage specifies configuration for a `Target`. The ordering of this list defines the promotion flow.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStage:DeliveryPipelineSerialPipelineStage":{"properties":{"deployParameters":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageDeployParameter:DeliveryPipelineSerialPipelineStageDeployParameter"},"description":"Optional. The deploy parameters to use for the target in this stage.\n"},"profiles":{"type":"array","items":{"type":"string"},"description":"Skaffold profiles to use when rendering the manifest for this stage's `Target`.\n"},"strategy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategy:DeliveryPipelineSerialPipelineStageStrategy","description":"Optional. The strategy to use for a `Rollout` to this stage.\n"},"targetId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" targetId \" pulumi-lang-dotnet=\" TargetId \" pulumi-lang-go=\" targetId \" pulumi-lang-python=\" target_id \" pulumi-lang-yaml=\" targetId \" pulumi-lang-java=\" targetId \"\u003e target_id \u003c/span\u003eto which this stage points. This field refers exclusively to the last segment of a target name. For example, this field would just be `my-target` (rather than `projects/project/locations/location/targets/my-target`). The location of the `Target` is inferred to be the same as the location of the `DeliveryPipeline` that contains this `Stage`.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageDeployParameter:DeliveryPipelineSerialPipelineStageDeployParameter":{"properties":{"matchTargetLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. Deploy parameters are applied to targets with match labels. If unspecified, deploy parameters are applied to all targets (including child targets of a multi-target).\n"},"values":{"type":"object","additionalProperties":{"type":"string"},"description":"Required. Values are deploy parameters in key-value pairs.\n"}},"type":"object","required":["values"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategy:DeliveryPipelineSerialPipelineStageStrategy":{"properties":{"canary":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanary:DeliveryPipelineSerialPipelineStageStrategyCanary","description":"Canary deployment strategy provides progressive percentage based deployments to a Target.\n"},"standard":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyStandard:DeliveryPipelineSerialPipelineStageStrategyStandard","description":"Standard deployment strategy executes a single deploy and allows verifying the deployment.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanary:DeliveryPipelineSerialPipelineStageStrategyCanary":{"properties":{"canaryDeployment":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeployment:DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeployment","description":"Configures the progressive based deployment for a Target.\n"},"customCanaryDeployment":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeployment:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeployment","description":"Configures the progressive based deployment for a Target, but allows customizing at the phase level where a phase represents each of the percentage deployments.\n"},"runtimeConfig":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfig:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfig","description":"Optional. Runtime specific configurations for the deployment strategy. The runtime configuration is used to determine how Cloud Deploy will split traffic to enable a progressive deployment.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeployment:DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeployment":{"properties":{"percentages":{"type":"array","items":{"type":"integer"},"description":"Required. The percentage based deployments that will occur as a part of a `Rollout`. List is expected in ascending order and each integer n is 0 \u003c= n \u003c 100.\n"},"postdeploy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPostdeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPostdeploy","description":"Optional. Configuration for the postdeploy job of the last phase. If this is not configured, postdeploy job will not be present.\n"},"predeploy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPredeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPredeploy","description":"Optional. Configuration for the predeploy job of the first phase. If this is not configured, predeploy job will not be present.\n"},"verify":{"type":"boolean","description":"Whether to run verify tests after each percentage deployment.\n"}},"type":"object","required":["percentages"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPostdeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPostdeploy":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Optional. A sequence of skaffold custom actions to invoke during execution of the postdeploy job.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPredeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCanaryDeploymentPredeploy":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Optional. A sequence of skaffold custom actions to invoke during execution of the predeploy job.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeployment:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeployment":{"properties":{"phaseConfigs":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfig:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfig"},"description":"Required. Configuration for each phase in the canary deployment in the order executed.\n"}},"type":"object","required":["phaseConfigs"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfig:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfig":{"properties":{"percentage":{"type":"integer","description":"Required. Percentage deployment for the phase.\n"},"phaseId":{"type":"string","description":"Required. The ID to assign to the `Rollout` phase. This value must consist of lower-case letters, numbers, and hyphens, start with a letter and end with a letter or a number, and have a max length of 63 characters. In other words, it must match the following regex: `^a-z?$`.\n"},"postdeploy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPostdeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPostdeploy","description":"Optional. Configuration for the postdeploy job of this phase. If this is not configured, postdeploy job will not be present for this phase.\n"},"predeploy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPredeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPredeploy","description":"Optional. Configuration for the predeploy job of this phase. If this is not configured, predeploy job will not be present for this phase.\n"},"profiles":{"type":"array","items":{"type":"string"},"description":"Skaffold profiles to use when rendering the manifest for this phase. These are in addition to the profiles list specified in the `DeliveryPipeline` stage.\n"},"verify":{"type":"boolean","description":"Whether to run verify tests after the deployment.\n"}},"type":"object","required":["percentage","phaseId"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPostdeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPostdeploy":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Optional. A sequence of skaffold custom actions to invoke during execution of the postdeploy job.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPredeploy:DeliveryPipelineSerialPipelineStageStrategyCanaryCustomCanaryDeploymentPhaseConfigPredeploy":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Optional. A sequence of skaffold custom actions to invoke during execution of the predeploy job.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfig:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfig":{"properties":{"cloudRun":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigCloudRun:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigCloudRun","description":"Cloud Run runtime configuration.\n"},"kubernetes":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetes:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetes","description":"Kubernetes runtime configuration.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigCloudRun:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigCloudRun":{"properties":{"automaticTrafficControl":{"type":"boolean","description":"Whether Cloud Deploy should update the traffic stanza in a Cloud Run Service on the user's behalf to facilitate traffic splitting. This is required to be true for CanaryDeployments, but optional for CustomCanaryDeployments.\n"},"canaryRevisionTags":{"type":"array","items":{"type":"string"},"description":"Optional. A list of tags that are added to the canary revision while the canary phase is in progress.\n"},"priorRevisionTags":{"type":"array","items":{"type":"string"},"description":"Optional. A list of tags that are added to the prior revision while the canary phase is in progress.\n"},"stableRevisionTags":{"type":"array","items":{"type":"string"},"description":"Optional. A list of tags that are added to the final stable revision when the stable phase is applied.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetes:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetes":{"properties":{"gatewayServiceMesh":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMesh:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMesh","description":"Kubernetes Gateway API service mesh configuration.\n"},"serviceNetworking":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworking:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworking","description":"Kubernetes Service networking configuration.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMesh:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMesh":{"properties":{"deployment":{"type":"string","description":"Required. Name of the Kubernetes Deployment whose traffic is managed by the specified HTTPRoute and Service.\n"},"httpRoute":{"type":"string","description":"Required. Name of the Gateway API HTTPRoute.\n"},"podSelectorLabel":{"type":"string","description":"Optional. The label to use when selecting Pods for the Deployment and Service resources. This label must already be present in both resources.\n"},"routeDestinations":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations","description":"Optional. Route destinations allow configuring the Gateway API HTTPRoute to be deployed to additional clusters. This option is available for multi-cluster service mesh set ups that require the route to exist in the clusters that call the service. If unspecified, the HTTPRoute will only be deployed to the Target cluster.\n"},"routeUpdateWaitTime":{"type":"string","description":"Optional. The time to wait for route updates to propagate. The maximum configurable time is 3 hours, in seconds format. If unspecified, there is no wait time.\n"},"service":{"type":"string","description":"Required. Name of the Kubernetes Service.\n"},"stableCutbackDuration":{"type":"string","description":"Optional. The amount of time to migrate traffic back from the canary Service to the original Service during the stable phase deployment. If specified, must be between 15s and 3600s. If unspecified, there is no cutback time.\n"}},"type":"object","required":["deployment","httpRoute","service"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesGatewayServiceMeshRouteDestinations":{"properties":{"destinationIds":{"type":"array","items":{"type":"string"},"description":"Required. The clusters where the Gateway API HTTPRoute resource will be deployed to. Valid entries include the associated entities IDs configured in the Target resource and \"@self\" to include the Target cluster.\n"},"propagateService":{"type":"boolean","description":"Optional. Whether to propagate the Kubernetes Service to the route destination clusters. The Service will always be deployed to the Target cluster even if the HTTPRoute is not. This option may be used to facilitiate successful DNS lookup in the route destination clusters. Can only be set to true if destinations are specified.\n"}},"type":"object","required":["destinationIds"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworking:DeliveryPipelineSerialPipelineStageStrategyCanaryRuntimeConfigKubernetesServiceNetworking":{"properties":{"deployment":{"type":"string","description":"Required. Name of the Kubernetes Deployment whose traffic is managed by the specified Service.\n"},"disablePodOverprovisioning":{"type":"boolean","description":"Optional. Whether to disable Pod overprovisioning. If Pod overprovisioning is disabled then Cloud Deploy will limit the number of total Pods used for the deployment strategy to the number of Pods the Deployment has on the cluster.\n"},"podSelectorLabel":{"type":"string","description":"Optional. The label to use when selecting Pods for the Deployment resource. This label must already be present in the Deployment.\n"},"service":{"type":"string","description":"Required. Name of the Kubernetes Service.\n"}},"type":"object","required":["deployment","service"]},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyStandard:DeliveryPipelineSerialPipelineStageStrategyStandard":{"properties":{"postdeploy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyStandardPostdeploy:DeliveryPipelineSerialPipelineStageStrategyStandardPostdeploy","description":"Optional. Configuration for the postdeploy job. If this is not configured, postdeploy job will not be present.\n"},"predeploy":{"$ref":"#/types/gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyStandardPredeploy:DeliveryPipelineSerialPipelineStageStrategyStandardPredeploy","description":"Optional. Configuration for the predeploy job. If this is not configured, predeploy job will not be present.\n"},"verify":{"type":"boolean","description":"Whether to verify a deployment.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyStandardPostdeploy:DeliveryPipelineSerialPipelineStageStrategyStandardPostdeploy":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Optional. A sequence of skaffold custom actions to invoke during execution of the postdeploy job.\n"}},"type":"object"},"gcp:clouddeploy/DeliveryPipelineSerialPipelineStageStrategyStandardPredeploy:DeliveryPipelineSerialPipelineStageStrategyStandardPredeploy":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Optional. A sequence of skaffold custom actions to invoke during execution of the predeploy job.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRule:DeployPolicyRule":{"properties":{"rolloutRestriction":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestriction:DeployPolicyRuleRolloutRestriction","description":"Rollout restrictions.\nStructure is documented below.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestriction:DeployPolicyRuleRolloutRestriction":{"properties":{"actions":{"type":"array","items":{"type":"string"},"description":"Rollout actions to be restricted as part of the policy. If left empty, all actions will be restricted.\nEach value may be one of: `ADVANCE`, `APPROVE`, `CANCEL`, `CREATE`, `IGNORE_JOB`, `RETRY_JOB`, `ROLLBACK`, `TERMINATE_JOBRUN`.\n"},"id":{"type":"string","description":"ID of the rule. This id must be unique in the `DeployPolicy` resource to which this rule belongs. The format is `a-z{0,62}`.\n"},"invokers":{"type":"array","items":{"type":"string"},"description":"What invoked the action. If left empty, all invoker types will be restricted.\nEach value may be one of: `USER`, `DEPLOY_AUTOMATION`.\n"},"timeWindows":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindows:DeployPolicyRuleRolloutRestrictionTimeWindows","description":"Time window within which actions are restricted.\nStructure is documented below.\n"}},"type":"object","required":["id"]},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindows:DeployPolicyRuleRolloutRestrictionTimeWindows":{"properties":{"oneTimeWindows":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindow:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindow"},"description":"One-time windows within which actions are restricted.\nStructure is documented below.\n"},"timeZone":{"type":"string","description":"The time zone in IANA format IANA Time Zone Database (e.g. America/New_York).\n"},"weeklyWindows":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindow:DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindow"},"description":"Recurring weekly windows within which actions are restricted.\nStructure is documented below.\n"}},"type":"object","required":["timeZone"]},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindow:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindow":{"properties":{"endDate":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndDate:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndDate","description":"End date.\nStructure is documented below.\n"},"endTime":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndTime:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndTime","description":"End time (exclusive). You may use 24:00 for the end of the day.\nStructure is documented below.\n"},"startDate":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartDate:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartDate","description":"Start date.\nStructure is documented below.\n"},"startTime":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartTime:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartTime","description":"Start time (inclusive). Use 00:00 for the beginning of the day.\nStructure is documented below.\n"}},"type":"object","required":["endDate","endTime","startDate","startTime"]},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndDate:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndDate":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndTime:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowEndTime":{"properties":{"hours":{"type":"integer","description":"Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartDate:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartDate":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartTime:DeployPolicyRuleRolloutRestrictionTimeWindowsOneTimeWindowStartTime":{"properties":{"hours":{"type":"integer","description":"Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindow:DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindow":{"properties":{"daysOfWeeks":{"type":"array","items":{"type":"string"},"description":"Days of week. If left empty, all days of the week will be included.\nEach value may be one of: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"endTime":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowEndTime:DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowEndTime","description":"End time (exclusive). Use 24:00 to indicate midnight. If you specify endTime you must also specify startTime. If left empty, this will block for the entire day for the days specified in daysOfWeek.\nStructure is documented below.\n"},"startTime":{"$ref":"#/types/gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowStartTime:DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowStartTime","description":"Start time (inclusive). Use 00:00 for the beginning of the day. If you specify startTime you must also specify endTime. If left empty, this will block for the entire day for the days specified in daysOfWeek.\nStructure is documented below.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowEndTime:DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowEndTime":{"properties":{"hours":{"type":"integer","description":"Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowStartTime:DeployPolicyRuleRolloutRestrictionTimeWindowsWeeklyWindowStartTime":{"properties":{"hours":{"type":"integer","description":"Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicySelector:DeployPolicySelector":{"properties":{"deliveryPipeline":{"$ref":"#/types/gcp:clouddeploy/DeployPolicySelectorDeliveryPipeline:DeployPolicySelectorDeliveryPipeline","description":"Contains attributes about a delivery pipeline.\nStructure is documented below.\n"},"target":{"$ref":"#/types/gcp:clouddeploy/DeployPolicySelectorTarget:DeployPolicySelectorTarget","description":"Contains attributes about a target.\nStructure is documented below.\n"}},"type":"object"},"gcp:clouddeploy/DeployPolicySelectorDeliveryPipeline:DeployPolicySelectorDeliveryPipeline":{"properties":{"id":{"type":"string","description":"ID of the DeliveryPipeline. The value of this field could be one of the following:\n- The last segment of a pipeline name\n- \"*\", all delivery pipelines in a location\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"DeliveryPipeline labels.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["labels"]}}},"gcp:clouddeploy/DeployPolicySelectorTarget:DeployPolicySelectorTarget":{"properties":{"id":{"type":"string","description":"ID of the `Target`. The value of this field could be one of the following: * The last segment of a target name. It only needs the ID to determine which target is being referred to * \"*\", all targets in a location.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Target labels.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["labels"]}}},"gcp:clouddeploy/TargetAnthosCluster:TargetAnthosCluster":{"properties":{"membership":{"type":"string","description":"Membership of the GKE Hub-registered cluster to which to apply the Skaffold configuration. Format is `projects/{project}/locations/{location}/memberships/{membership_name}`.\n"}},"type":"object"},"gcp:clouddeploy/TargetAssociatedEntity:TargetAssociatedEntity":{"properties":{"anthosClusters":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/TargetAssociatedEntityAnthosCluster:TargetAssociatedEntityAnthosCluster"},"description":"Optional. Information specifying Anthos clusters as associated entities.\n"},"entityId":{"type":"string","description":"The name for the key in the map for which this object is mapped to in the API\n"},"gkeClusters":{"type":"array","items":{"$ref":"#/types/gcp:clouddeploy/TargetAssociatedEntityGkeCluster:TargetAssociatedEntityGkeCluster"},"description":"Optional. Information specifying GKE clusters as associated entities.\n"}},"type":"object","required":["entityId"]},"gcp:clouddeploy/TargetAssociatedEntityAnthosCluster:TargetAssociatedEntityAnthosCluster":{"properties":{"membership":{"type":"string","description":"Optional. Membership of the GKE Hub-registered cluster to which to apply the Skaffold configuration. Format is `projects/{project}/locations/{location}/memberships/{membership_name}`.\n"}},"type":"object"},"gcp:clouddeploy/TargetAssociatedEntityGkeCluster:TargetAssociatedEntityGkeCluster":{"properties":{"cluster":{"type":"string","description":"Optional. Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`.\n"},"internalIp":{"type":"boolean","description":"Optional. If true, \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e is accessed using the private IP address of the control plane endpoint. Otherwise, the default IP address of the control plane endpoint is used. The default IP address is the private IP address for clusters with private control-plane endpoints and the public IP address otherwise. Only specify this option when \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e is a [private GKE cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).\n"},"proxyUrl":{"type":"string","description":"Optional. If set, used to configure a [proxy](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#proxy) to the Kubernetes server.\n"}},"type":"object"},"gcp:clouddeploy/TargetCustomTarget:TargetCustomTarget":{"properties":{"customTargetType":{"type":"string","description":"Required. The name of the CustomTargetType. Format must be `projects/{project}/locations/{location}/customTargetTypes/{custom_target_type}`.\n"}},"type":"object","required":["customTargetType"]},"gcp:clouddeploy/TargetExecutionConfig:TargetExecutionConfig":{"properties":{"artifactStorage":{"type":"string","description":"Optional. Cloud Storage location in which to store execution outputs. This can either be a bucket (\"gs://my-bucket\") or a path within a bucket (\"gs://my-bucket/my-dir\"). If unspecified, a default bucket located in the same region will be used.\n"},"executionTimeout":{"type":"string","description":"Optional. Execution timeout for a Cloud Build Execution. This must be between 10m and 24h in seconds format. If unspecified, a default timeout of 1h is used.\n"},"serviceAccount":{"type":"string","description":"Optional. Google service account to use for execution. If unspecified, the project execution service account (-compute@developer.gserviceaccount.com) is used.\n"},"usages":{"type":"array","items":{"type":"string"},"description":"Required. Usages when this configuration should be applied.\n"},"verbose":{"type":"boolean","description":"Optional. If true, additional logging will be enabled when running builds in this execution environment.\n"},"workerPool":{"type":"string","description":"Optional. The resource name of the `WorkerPool`, with the format `projects/{project}/locations/{location}/workerPools/{worker_pool}`. If this optional field is unspecified, the default Cloud Build pool will be used.\n"}},"type":"object","required":["usages"],"language":{"nodejs":{"requiredOutputs":["artifactStorage","executionTimeout","serviceAccount","usages"]}}},"gcp:clouddeploy/TargetGke:TargetGke":{"properties":{"cluster":{"type":"string","description":"Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}.\n"},"dnsEndpoint":{"type":"boolean","description":"Optional. If set, the cluster will be accessed using the DNS endpoint. Note that both \u003cspan pulumi-lang-nodejs=\"`dnsEndpoint`\" pulumi-lang-dotnet=\"`DnsEndpoint`\" pulumi-lang-go=\"`dnsEndpoint`\" pulumi-lang-python=\"`dns_endpoint`\" pulumi-lang-yaml=\"`dnsEndpoint`\" pulumi-lang-java=\"`dnsEndpoint`\"\u003e`dns_endpoint`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`internalIp`\" pulumi-lang-dotnet=\"`InternalIp`\" pulumi-lang-go=\"`internalIp`\" pulumi-lang-python=\"`internal_ip`\" pulumi-lang-yaml=\"`internalIp`\" pulumi-lang-java=\"`internalIp`\"\u003e`internal_ip`\u003c/span\u003e cannot be set to true.\n"},"internalIp":{"type":"boolean","description":"Optional. If true, \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e is accessed using the private IP address of the control plane endpoint. Otherwise, the default IP address of the control plane endpoint is used. The default IP address is the private IP address for clusters with private control-plane endpoints and the public IP address otherwise. Only specify this option when \u003cspan pulumi-lang-nodejs=\"`cluster`\" pulumi-lang-dotnet=\"`Cluster`\" pulumi-lang-go=\"`cluster`\" pulumi-lang-python=\"`cluster`\" pulumi-lang-yaml=\"`cluster`\" pulumi-lang-java=\"`cluster`\"\u003e`cluster`\u003c/span\u003e is a [private GKE cluster](https://cloud.google.com/kubernetes-engine/docs/concepts/private-cluster-concept).\n"},"proxyUrl":{"type":"string","description":"Optional. If set, used to configure a [proxy](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/#proxy) to the Kubernetes server.\n"}},"type":"object"},"gcp:clouddeploy/TargetIamBindingCondition:TargetIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:clouddeploy/TargetIamMemberCondition:TargetIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:clouddeploy/TargetMultiTarget:TargetMultiTarget":{"properties":{"targetIds":{"type":"array","items":{"type":"string"},"description":"Required. The\u003cspan pulumi-lang-nodejs=\" targetIds \" pulumi-lang-dotnet=\" TargetIds \" pulumi-lang-go=\" targetIds \" pulumi-lang-python=\" target_ids \" pulumi-lang-yaml=\" targetIds \" pulumi-lang-java=\" targetIds \"\u003e target_ids \u003c/span\u003eof this multiTarget.\n"}},"type":"object","required":["targetIds"]},"gcp:clouddeploy/TargetRun:TargetRun":{"properties":{"location":{"type":"string","description":"Required. The location where the Cloud Run Service should be located. Format is `projects/{project}/locations/{location}`.\n"}},"type":"object","required":["location"]},"gcp:clouddomains/RegistrationContactSettings:RegistrationContactSettings":{"properties":{"adminContact":{"$ref":"#/types/gcp:clouddomains/RegistrationContactSettingsAdminContact:RegistrationContactSettingsAdminContact","description":"Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.\nWarning: For new Registrations, the registrant receives an email confirmation that they must complete within 15 days to\navoid domain suspension.\nStructure is documented below.\n","willReplaceOnChanges":true},"privacy":{"type":"string","description":"Required. Privacy setting for the contacts associated with the Registration.\nValues are PUBLIC_CONTACT_DATA, PRIVATE_CONTACT_DATA, and REDACTED_CONTACT_DATA\n","willReplaceOnChanges":true},"registrantContact":{"$ref":"#/types/gcp:clouddomains/RegistrationContactSettingsRegistrantContact:RegistrationContactSettingsRegistrantContact","description":"Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.\nWarning: For new Registrations, the registrant receives an email confirmation that they must complete within 15 days to\navoid domain suspension.\nStructure is documented below.\n","willReplaceOnChanges":true},"technicalContact":{"$ref":"#/types/gcp:clouddomains/RegistrationContactSettingsTechnicalContact:RegistrationContactSettingsTechnicalContact","description":"Caution: Anyone with access to this email address, phone number, and/or postal address can take control of the domain.\nWarning: For new Registrations, the registrant receives an email confirmation that they must complete within 15 days to\navoid domain suspension.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["adminContact","privacy","registrantContact","technicalContact"]},"gcp:clouddomains/RegistrationContactSettingsAdminContact:RegistrationContactSettingsAdminContact":{"properties":{"email":{"type":"string","description":"Required. Email address of the contact.\n","willReplaceOnChanges":true},"faxNumber":{"type":"string","description":"Fax number of the contact in international format. For example, \"+1-800-555-0123\".\n","willReplaceOnChanges":true},"phoneNumber":{"type":"string","description":"Required. Phone number of the contact in international format. For example, \"+1-800-555-0123\".\n","willReplaceOnChanges":true},"postalAddress":{"$ref":"#/types/gcp:clouddomains/RegistrationContactSettingsAdminContactPostalAddress:RegistrationContactSettingsAdminContactPostalAddress","description":"Required. Postal address of the contact.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["email","phoneNumber","postalAddress"]},"gcp:clouddomains/RegistrationContactSettingsAdminContactPostalAddress:RegistrationContactSettingsAdminContactPostalAddress":{"properties":{"addressLines":{"type":"array","items":{"type":"string"},"description":"Unstructured address lines describing the lower levels of an address.\nBecause values in addressLines do not have type information and may sometimes contain multiple values in a single\nfield (e.g. \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be\n\"envelope order\" for the country/region of the address. In places where this can vary (e.g. Japan),\u003cspan pulumi-lang-nodejs=\" addressLanguage\n\" pulumi-lang-dotnet=\" AddressLanguage\n\" pulumi-lang-go=\" addressLanguage\n\" pulumi-lang-python=\" address_language\n\" pulumi-lang-yaml=\" addressLanguage\n\" pulumi-lang-java=\" addressLanguage\n\"\u003e address_language\n\u003c/span\u003eis used to make it explicit (e.g. \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way,\nthe most specific line of an address can be selected based on the language.\n","willReplaceOnChanges":true},"administrativeArea":{"type":"string","description":"Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state,\na province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community\n(e.g. \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland\nthis should be left unpopulated.\n","willReplaceOnChanges":true},"locality":{"type":"string","description":"Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world\nwhere localities are not well defined or do not fit into this structure well, leave locality empty and use addressLines.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization at the address.\n","willReplaceOnChanges":true},"postalCode":{"type":"string","description":"Postal code of the address. Not all countries use or require postal codes to be present, but where they are used,\nthey may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).\n","willReplaceOnChanges":true},"recipients":{"type":"array","items":{"type":"string"},"description":"The recipient at the address. This field may, under certain circumstances, contain multiline information. For example,\nit might contain \"care of\" information.\n","willReplaceOnChanges":true},"regionCode":{"type":"string","description":"Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to\nensure the value is correct. See https://cldr.unicode.org/ and\nhttps://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.\n","willReplaceOnChanges":true}},"type":"object","required":["regionCode"]},"gcp:clouddomains/RegistrationContactSettingsRegistrantContact:RegistrationContactSettingsRegistrantContact":{"properties":{"email":{"type":"string","description":"Required. Email address of the contact.\n","willReplaceOnChanges":true},"faxNumber":{"type":"string","description":"Fax number of the contact in international format. For example, \"+1-800-555-0123\".\n","willReplaceOnChanges":true},"phoneNumber":{"type":"string","description":"Required. Phone number of the contact in international format. For example, \"+1-800-555-0123\".\n","willReplaceOnChanges":true},"postalAddress":{"$ref":"#/types/gcp:clouddomains/RegistrationContactSettingsRegistrantContactPostalAddress:RegistrationContactSettingsRegistrantContactPostalAddress","description":"Required. Postal address of the contact.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["email","phoneNumber","postalAddress"]},"gcp:clouddomains/RegistrationContactSettingsRegistrantContactPostalAddress:RegistrationContactSettingsRegistrantContactPostalAddress":{"properties":{"addressLines":{"type":"array","items":{"type":"string"},"description":"Unstructured address lines describing the lower levels of an address.\nBecause values in addressLines do not have type information and may sometimes contain multiple values in a single\nfield (e.g. \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be\n\"envelope order\" for the country/region of the address. In places where this can vary (e.g. Japan),\u003cspan pulumi-lang-nodejs=\" addressLanguage\n\" pulumi-lang-dotnet=\" AddressLanguage\n\" pulumi-lang-go=\" addressLanguage\n\" pulumi-lang-python=\" address_language\n\" pulumi-lang-yaml=\" addressLanguage\n\" pulumi-lang-java=\" addressLanguage\n\"\u003e address_language\n\u003c/span\u003eis used to make it explicit (e.g. \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way,\nthe most specific line of an address can be selected based on the language.\n","willReplaceOnChanges":true},"administrativeArea":{"type":"string","description":"Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state,\na province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community\n(e.g. \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland\nthis should be left unpopulated.\n","willReplaceOnChanges":true},"locality":{"type":"string","description":"Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world\nwhere localities are not well defined or do not fit into this structure well, leave locality empty and use addressLines.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization at the address.\n","willReplaceOnChanges":true},"postalCode":{"type":"string","description":"Postal code of the address. Not all countries use or require postal codes to be present, but where they are used,\nthey may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).\n","willReplaceOnChanges":true},"recipients":{"type":"array","items":{"type":"string"},"description":"The recipient at the address. This field may, under certain circumstances, contain multiline information. For example,\nit might contain \"care of\" information.\n","willReplaceOnChanges":true},"regionCode":{"type":"string","description":"Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to\nensure the value is correct. See https://cldr.unicode.org/ and\nhttps://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.\n","willReplaceOnChanges":true}},"type":"object","required":["regionCode"]},"gcp:clouddomains/RegistrationContactSettingsTechnicalContact:RegistrationContactSettingsTechnicalContact":{"properties":{"email":{"type":"string","description":"Required. Email address of the contact.\n","willReplaceOnChanges":true},"faxNumber":{"type":"string","description":"Fax number of the contact in international format. For example, \"+1-800-555-0123\".\n","willReplaceOnChanges":true},"phoneNumber":{"type":"string","description":"Required. Phone number of the contact in international format. For example, \"+1-800-555-0123\".\n","willReplaceOnChanges":true},"postalAddress":{"$ref":"#/types/gcp:clouddomains/RegistrationContactSettingsTechnicalContactPostalAddress:RegistrationContactSettingsTechnicalContactPostalAddress","description":"Required. Postal address of the contact.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["email","phoneNumber","postalAddress"]},"gcp:clouddomains/RegistrationContactSettingsTechnicalContactPostalAddress:RegistrationContactSettingsTechnicalContactPostalAddress":{"properties":{"addressLines":{"type":"array","items":{"type":"string"},"description":"Unstructured address lines describing the lower levels of an address.\nBecause values in addressLines do not have type information and may sometimes contain multiple values in a single\nfield (e.g. \"Austin, TX\"), it is important that the line order is clear. The order of address lines should be\n\"envelope order\" for the country/region of the address. In places where this can vary (e.g. Japan),\u003cspan pulumi-lang-nodejs=\" addressLanguage\n\" pulumi-lang-dotnet=\" AddressLanguage\n\" pulumi-lang-go=\" addressLanguage\n\" pulumi-lang-python=\" address_language\n\" pulumi-lang-yaml=\" addressLanguage\n\" pulumi-lang-java=\" addressLanguage\n\"\u003e address_language\n\u003c/span\u003eis used to make it explicit (e.g. \"ja\" for large-to-small ordering and \"ja-Latn\" or \"en\" for small-to-large). This way,\nthe most specific line of an address can be selected based on the language.\n","willReplaceOnChanges":true},"administrativeArea":{"type":"string","description":"Highest administrative subdivision which is used for postal addresses of a country or region. For example, this can be a state,\na province, an oblast, or a prefecture. Specifically, for Spain this is the province and not the autonomous community\n(e.g. \"Barcelona\" and not \"Catalonia\"). Many countries don't use an administrative area in postal addresses. E.g. in Switzerland\nthis should be left unpopulated.\n","willReplaceOnChanges":true},"locality":{"type":"string","description":"Generally refers to the city/town portion of the address. Examples: US city, IT comune, UK post town. In regions of the world\nwhere localities are not well defined or do not fit into this structure well, leave locality empty and use addressLines.\n","willReplaceOnChanges":true},"organization":{"type":"string","description":"The name of the organization at the address.\n","willReplaceOnChanges":true},"postalCode":{"type":"string","description":"Postal code of the address. Not all countries use or require postal codes to be present, but where they are used,\nthey may trigger additional validation with other parts of the address (e.g. state/zip validation in the U.S.A.).\n","willReplaceOnChanges":true},"recipients":{"type":"array","items":{"type":"string"},"description":"The recipient at the address. This field may, under certain circumstances, contain multiline information. For example,\nit might contain \"care of\" information.\n","willReplaceOnChanges":true},"regionCode":{"type":"string","description":"Required. CLDR region code of the country/region of the address. This is never inferred and it is up to the user to\nensure the value is correct. See https://cldr.unicode.org/ and\nhttps://www.unicode.org/cldr/charts/30/supplemental/territory_information.html for details. Example: \"CH\" for Switzerland.\n","willReplaceOnChanges":true}},"type":"object","required":["regionCode"]},"gcp:clouddomains/RegistrationDnsSettings:RegistrationDnsSettings":{"properties":{"customDns":{"$ref":"#/types/gcp:clouddomains/RegistrationDnsSettingsCustomDns:RegistrationDnsSettingsCustomDns","description":"Configuration for an arbitrary DNS provider.\nStructure is documented below.\n","willReplaceOnChanges":true},"glueRecords":{"type":"array","items":{"$ref":"#/types/gcp:clouddomains/RegistrationDnsSettingsGlueRecord:RegistrationDnsSettingsGlueRecord"},"description":"The list of glue records for this Registration. Commonly empty.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:clouddomains/RegistrationDnsSettingsCustomDns:RegistrationDnsSettingsCustomDns":{"properties":{"dsRecords":{"type":"array","items":{"$ref":"#/types/gcp:clouddomains/RegistrationDnsSettingsCustomDnsDsRecord:RegistrationDnsSettingsCustomDnsDsRecord"},"description":"The list of DS records for this domain, which are used to enable DNSSEC. The domain's DNS provider can provide\nthe values to set here. If this field is empty, DNSSEC is disabled.\nStructure is documented below.\n","willReplaceOnChanges":true},"nameServers":{"type":"array","items":{"type":"string"},"description":"Required. A list of name servers that store the DNS zone for this domain. Each name server is a domain\nname, with Unicode domain names expressed in Punycode format.\n","willReplaceOnChanges":true}},"type":"object","required":["nameServers"]},"gcp:clouddomains/RegistrationDnsSettingsCustomDnsDsRecord:RegistrationDnsSettingsCustomDnsDsRecord":{"properties":{"algorithm":{"type":"string","description":"The algorithm used to generate the referenced DNSKEY.\n","willReplaceOnChanges":true},"digest":{"type":"string","description":"The digest generated from the referenced DNSKEY.\n","willReplaceOnChanges":true},"digestType":{"type":"string","description":"The hash function used to generate the digest of the referenced DNSKEY.\n","willReplaceOnChanges":true},"keyTag":{"type":"integer","description":"The key tag of the record. Must be set in range 0 -- 65535.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:clouddomains/RegistrationDnsSettingsGlueRecord:RegistrationDnsSettingsGlueRecord":{"properties":{"hostName":{"type":"string","description":"Required. Domain name of the host in Punycode format.\n","willReplaceOnChanges":true},"ipv4Addresses":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. 198.51.100.1).\nAt least one of\u003cspan pulumi-lang-nodejs=\" ipv4Address \" pulumi-lang-dotnet=\" Ipv4Address \" pulumi-lang-go=\" ipv4Address \" pulumi-lang-python=\" ipv4_address \" pulumi-lang-yaml=\" ipv4Address \" pulumi-lang-java=\" ipv4Address \"\u003e ipv4_address \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" ipv6Address \" pulumi-lang-dotnet=\" Ipv6Address \" pulumi-lang-go=\" ipv6Address \" pulumi-lang-python=\" ipv6_address \" pulumi-lang-yaml=\" ipv6Address \" pulumi-lang-java=\" ipv6Address \"\u003e ipv6_address \u003c/span\u003emust be set.\n","willReplaceOnChanges":true},"ipv6Addresses":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses corresponding to this host in the standard decimal format (e.g. 198.51.100.1).\nAt least one of\u003cspan pulumi-lang-nodejs=\" ipv4Address \" pulumi-lang-dotnet=\" Ipv4Address \" pulumi-lang-go=\" ipv4Address \" pulumi-lang-python=\" ipv4_address \" pulumi-lang-yaml=\" ipv4Address \" pulumi-lang-java=\" ipv4Address \"\u003e ipv4_address \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" ipv6Address \" pulumi-lang-dotnet=\" Ipv6Address \" pulumi-lang-go=\" ipv6Address \" pulumi-lang-python=\" ipv6_address \" pulumi-lang-yaml=\" ipv6Address \" pulumi-lang-java=\" ipv6Address \"\u003e ipv6_address \u003c/span\u003emust be set.\n","willReplaceOnChanges":true}},"type":"object","required":["hostName"]},"gcp:clouddomains/RegistrationManagementSettings:RegistrationManagementSettings":{"properties":{"preferredRenewalMethod":{"type":"string","description":"The desired renewal method for this Registration. The actual renewalMethod is automatically updated to reflect this choice.\nIf unset or equal to RENEWAL_METHOD_UNSPECIFIED, the actual renewalMethod is treated as if it were set to AUTOMATIC_RENEWAL.\nYou cannot use RENEWAL_DISABLED during resource creation, and you can update the renewal status only when the Registration\nresource has state ACTIVE or SUSPENDED.\nWhen preferredRenewalMethod is set to AUTOMATIC_RENEWAL, the actual renewalMethod can be set to RENEWAL_DISABLED in case of\nproblems with the billing account or reported domain abuse. In such cases, check the issues field on the Registration. After\nthe problem is resolved, the renewalMethod is automatically updated to preferredRenewalMethod in a few hours.\n","willReplaceOnChanges":true},"renewalMethod":{"type":"string","description":"(Output)\nOutput only. The actual renewal method for this Registration. When preferredRenewalMethod is set to AUTOMATIC_RENEWAL,\nthe actual renewalMethod can be equal to RENEWAL_DISABLED—for example, when there are problems with the billing account\nor reported domain abuse. In such cases, check the issues field on the Registration. After the problem is resolved, the\nrenewalMethod is automatically updated to preferredRenewalMethod in a few hours.\n"},"transferLockState":{"type":"string","description":"Controls whether the domain can be transferred to another registrar. Values are UNLOCKED or LOCKED.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["preferredRenewalMethod","renewalMethod","transferLockState"]}}},"gcp:clouddomains/RegistrationYearlyPrice:RegistrationYearlyPrice":{"properties":{"currencyCode":{"type":"string","description":"The three-letter currency code defined in ISO 4217.\n","willReplaceOnChanges":true},"units":{"type":"string","description":"The whole units of the amount. For example if currencyCode is \"USD\", then 1 unit is one US dollar.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:cloudfunctions/FunctionAutomaticUpdatePolicy:FunctionAutomaticUpdatePolicy":{"type":"object"},"gcp:cloudfunctions/FunctionEventTrigger:FunctionEventTrigger":{"properties":{"eventType":{"type":"string","description":"The type of event to observe. For example: `\"google.storage.object.finalize\"`.\nSee the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/) for a\nfull reference of accepted triggers.\n","willReplaceOnChanges":true},"failurePolicy":{"$ref":"#/types/gcp:cloudfunctions/FunctionEventTriggerFailurePolicy:FunctionEventTriggerFailurePolicy","description":"Specifies policy for failed executions. Structure is documented below.\n"},"resource":{"type":"string","description":"Required. The name or partial URI of the resource from\nwhich to observe events. For example, `\"myBucket\"` or `\"projects/my-project/topics/my-topic\"`\n"}},"type":"object","required":["eventType","resource"],"language":{"nodejs":{"requiredOutputs":["eventType","failurePolicy","resource"]}}},"gcp:cloudfunctions/FunctionEventTriggerFailurePolicy:FunctionEventTriggerFailurePolicy":{"properties":{"retry":{"type":"boolean","description":"Whether the function should be retried on failure. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["retry"]},"gcp:cloudfunctions/FunctionIamBindingCondition:FunctionIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudfunctions/FunctionIamMemberCondition:FunctionIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudfunctions/FunctionOnDeployUpdatePolicy:FunctionOnDeployUpdatePolicy":{"properties":{"runtimeVersion":{"type":"string","description":"The runtime version which was used during latest function deployment.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["runtimeVersion"]}}},"gcp:cloudfunctions/FunctionSecretEnvironmentVariable:FunctionSecretEnvironmentVariable":{"properties":{"key":{"type":"string","description":"Name of the environment variable.\n"},"projectId":{"type":"string","description":"Project identifier (due to a known limitation, only project number is supported by this field) of the project that contains the secret. If not set, it will be populated with the function's project, assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"ID of the secret in secret manager (not the full resource name).\n"},"version":{"type":"string","description":"Version of the secret (version number or the string \"latest\"). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start.\n"}},"type":"object","required":["key","secret","version"],"language":{"nodejs":{"requiredOutputs":["key","projectId","secret","version"]}}},"gcp:cloudfunctions/FunctionSecretVolume:FunctionSecretVolume":{"properties":{"mountPath":{"type":"string","description":"The path within the container to mount the secret volume. For example, setting the\u003cspan pulumi-lang-nodejs=\" mountPath \" pulumi-lang-dotnet=\" MountPath \" pulumi-lang-go=\" mountPath \" pulumi-lang-python=\" mount_path \" pulumi-lang-yaml=\" mountPath \" pulumi-lang-java=\" mountPath \"\u003e mount_path \u003c/span\u003eas \"/etc/secrets\" would mount the secret value files under the \"/etc/secrets\" directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: \"/etc/secrets\" Restricted mount paths: \"/cloudsql\", \"/dev/log\", \"/pod\", \"/proc\", \"/var/log\".\n"},"projectId":{"type":"string","description":"Project identifier (due to a known limitation, only project number is supported by this field) of the project that contains the secret. If not set, it will be populated with the function's project, assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"ID of the secret in secret manager (not the full resource name).\n"},"versions":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctions/FunctionSecretVolumeVersion:FunctionSecretVolumeVersion"},"description":"List of secret versions to mount for this secret. If empty, the \"latest\" version of the secret will be made available in a file named after the secret under the mount point. Structure is documented below.\n"}},"type":"object","required":["mountPath","secret"],"language":{"nodejs":{"requiredOutputs":["mountPath","projectId","secret"]}}},"gcp:cloudfunctions/FunctionSecretVolumeVersion:FunctionSecretVolumeVersion":{"properties":{"path":{"type":"string","description":"Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the\u003cspan pulumi-lang-nodejs=\" mountPath \" pulumi-lang-dotnet=\" MountPath \" pulumi-lang-go=\" mountPath \" pulumi-lang-python=\" mount_path \" pulumi-lang-yaml=\" mountPath \" pulumi-lang-java=\" mountPath \"\u003e mount_path \u003c/span\u003eas \"/etc/secrets\" and path as \"/secret_foo\" would mount the secret value file at \"/etc/secrets/secret_foo\".\n"},"version":{"type":"string","description":"Version of the secret (version number or the string \"latest\"). It is preferable to use \"latest\" version with secret volumes as secret value changes are reflected immediately.\n"}},"type":"object","required":["path","version"]},"gcp:cloudfunctions/FunctionSourceRepository:FunctionSourceRepository":{"properties":{"deployedUrl":{"type":"string","description":"The URL pointing to the hosted repository where the function was defined at the time of deployment.\n"},"url":{"type":"string","description":"The URL pointing to the hosted repository where the function is defined. There are supported Cloud Source Repository URLs in the following formats:\n\n* To refer to a specific commit: `https://source.developers.google.com/projects/*/repos/*/revisions/*/paths/*`\n* To refer to a moveable alias (branch): `https://source.developers.google.com/projects/*/repos/*/moveable-aliases/*/paths/*`. To refer to HEAD, use the \u003cspan pulumi-lang-nodejs=\"`master`\" pulumi-lang-dotnet=\"`Master`\" pulumi-lang-go=\"`master`\" pulumi-lang-python=\"`master`\" pulumi-lang-yaml=\"`master`\" pulumi-lang-java=\"`master`\"\u003e`master`\u003c/span\u003e moveable alias.\n* To refer to a specific fixed alias (tag): `https://source.developers.google.com/projects/*/repos/*/fixed-aliases/*/paths/*`\n"}},"type":"object","required":["url"],"language":{"nodejs":{"requiredOutputs":["deployedUrl","url"]}}},"gcp:cloudfunctions/getFunctionAutomaticUpdatePolicy:getFunctionAutomaticUpdatePolicy":{"type":"object"},"gcp:cloudfunctions/getFunctionEventTrigger:getFunctionEventTrigger":{"properties":{"eventType":{"type":"string","description":"The type of event to observe. For example: `\"google.storage.object.finalize\"`.\nSee the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/)\nfor a full reference of accepted triggers.\n"},"failurePolicies":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctions/getFunctionEventTriggerFailurePolicy:getFunctionEventTriggerFailurePolicy"},"description":"Policy for failed executions. Structure is documented below.\n"},"resource":{"type":"string","description":"The name of the resource whose events are being observed, for example, `\"myBucket\"`\n"}},"type":"object","required":["eventType","failurePolicies","resource"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctions/getFunctionEventTriggerFailurePolicy:getFunctionEventTriggerFailurePolicy":{"properties":{"retry":{"type":"boolean","description":"Whether the function should be retried on failure.\n"}},"type":"object","required":["retry"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctions/getFunctionOnDeployUpdatePolicy:getFunctionOnDeployUpdatePolicy":{"properties":{"runtimeVersion":{"type":"string","description":"The runtime version which was used during latest function deployment.\n"}},"type":"object","required":["runtimeVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctions/getFunctionSecretEnvironmentVariable:getFunctionSecretEnvironmentVariable":{"properties":{"key":{"type":"string","description":"Name of the environment variable.\n"},"projectId":{"type":"string","description":"Project identifier (due to a known limitation, only project number is supported by this field) of the project that contains the secret. If not set, it will be populated with the function's project, assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"ID of the secret in secret manager (not the full resource name).\n"},"version":{"type":"string","description":"Version of the secret (version number or the string \"latest\"). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new clones start.\n"}},"type":"object","required":["key","projectId","secret","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctions/getFunctionSecretVolume:getFunctionSecretVolume":{"properties":{"mountPath":{"type":"string","description":"The path within the container to mount the secret volume. For example, setting the\u003cspan pulumi-lang-nodejs=\" mountPath \" pulumi-lang-dotnet=\" MountPath \" pulumi-lang-go=\" mountPath \" pulumi-lang-python=\" mount_path \" pulumi-lang-yaml=\" mountPath \" pulumi-lang-java=\" mountPath \"\u003e mount_path \u003c/span\u003eas \"/etc/secrets\" would mount the secret value files under the \"/etc/secrets\" directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount paths: \"/etc/secrets\" Restricted mount paths: \"/cloudsql\", \"/dev/log\", \"/pod\", \"/proc\", \"/var/log\".\n"},"projectId":{"type":"string","description":"Project identifier (due to a known limitation, only project number is supported by this field) of the project that contains the secret. If not set, it will be populated with the function's project, assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"ID of the secret in secret manager (not the full resource name).\n"},"versions":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctions/getFunctionSecretVolumeVersion:getFunctionSecretVolumeVersion"},"description":"List of secret versions to mount for this secret. If empty, the \"latest\" version of the secret will be made available in a file named after the secret under the mount point.\n"}},"type":"object","required":["mountPath","projectId","secret","versions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctions/getFunctionSecretVolumeVersion:getFunctionSecretVolumeVersion":{"properties":{"path":{"type":"string","description":"Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the\u003cspan pulumi-lang-nodejs=\" mountPath \" pulumi-lang-dotnet=\" MountPath \" pulumi-lang-go=\" mountPath \" pulumi-lang-python=\" mount_path \" pulumi-lang-yaml=\" mountPath \" pulumi-lang-java=\" mountPath \"\u003e mount_path \u003c/span\u003eas \"/etc/secrets\" and path as \"/secret_foo\" would mount the secret value file at \"/etc/secrets/secret_foo\".\n"},"version":{"type":"string","description":"Version of the secret (version number or the string \"latest\"). It is preferable to use \"latest\" version with secret volumes as secret value changes are reflected immediately.\n"}},"type":"object","required":["path","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctions/getFunctionSourceRepository:getFunctionSourceRepository":{"properties":{"deployedUrl":{"type":"string","description":"The URL pointing to the hosted repository where the function was defined at the time of deployment.\n"},"url":{"type":"string","description":"The URL pointing to the hosted repository where the function is defined.\n"}},"type":"object","required":["deployedUrl","url"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/FunctionBuildConfig:FunctionBuildConfig":{"properties":{"automaticUpdatePolicy":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionBuildConfigAutomaticUpdatePolicy:FunctionBuildConfigAutomaticUpdatePolicy","description":"Security patches are applied automatically to the runtime without requiring\nthe function to be redeployed.\n"},"build":{"type":"string","description":"(Output)\nThe Cloud Build name of the latest successful\ndeployment of the function.\n"},"dockerRepository":{"type":"string","description":"User managed repository created in Artifact Registry optionally with a customer managed encryption key.\n"},"entryPoint":{"type":"string","description":"The name of the function (as defined in source code) that will be executed.\nDefaults to the resource name suffix, if not specified. For backward\ncompatibility, if function with given name is not found, then the system\nwill try to use function named \"function\". For Node.js this is name of a\nfunction exported by the module specified in source_location.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"User-provided build-time environment variables for the function.\n"},"onDeployUpdatePolicy":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionBuildConfigOnDeployUpdatePolicy:FunctionBuildConfigOnDeployUpdatePolicy","description":"Security patches are only applied when a function is redeployed.\nStructure is documented below.\n"},"runtime":{"type":"string","description":"The runtime in which to run the function. Required when deploying a new\nfunction, optional when updating an existing function.\n"},"serviceAccount":{"type":"string","description":"The fully-qualified name of the service account to be used for building the container.\n"},"source":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionBuildConfigSource:FunctionBuildConfigSource","description":"The location of the function source code.\nStructure is documented below.\n"},"workerPool":{"type":"string","description":"Name of the Cloud Build Custom Worker Pool that should be used to build the function.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["automaticUpdatePolicy","build","dockerRepository","environmentVariables","serviceAccount"]}}},"gcp:cloudfunctionsv2/FunctionBuildConfigAutomaticUpdatePolicy:FunctionBuildConfigAutomaticUpdatePolicy":{"type":"object"},"gcp:cloudfunctionsv2/FunctionBuildConfigOnDeployUpdatePolicy:FunctionBuildConfigOnDeployUpdatePolicy":{"properties":{"runtimeVersion":{"type":"string","description":"(Output)\nThe runtime version which was used during latest function deployment.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["runtimeVersion"]}}},"gcp:cloudfunctionsv2/FunctionBuildConfigSource:FunctionBuildConfigSource":{"properties":{"repoSource":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionBuildConfigSourceRepoSource:FunctionBuildConfigSourceRepoSource","description":"If provided, get the source from this location in a Cloud Source Repository.\nStructure is documented below.\n"},"storageSource":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionBuildConfigSourceStorageSource:FunctionBuildConfigSourceStorageSource","description":"If provided, get the source from this location in Google Cloud Storage.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudfunctionsv2/FunctionBuildConfigSourceRepoSource:FunctionBuildConfigSourceRepoSource":{"properties":{"branchName":{"type":"string","description":"Regex matching branches to build.\n"},"commitSha":{"type":"string","description":"Regex matching tags to build.\n"},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\n"},"invertRegex":{"type":"boolean","description":"Only trigger a build if the revision regex does\nNOT match the revision regex.\n"},"projectId":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. If omitted, the\nproject ID requesting the build is assumed.\n","willReplaceOnChanges":true},"repoName":{"type":"string","description":"Name of the Cloud Source Repository.\n"},"tagName":{"type":"string","description":"Regex matching tags to build.\n"}},"type":"object"},"gcp:cloudfunctionsv2/FunctionBuildConfigSourceStorageSource:FunctionBuildConfigSourceStorageSource":{"properties":{"bucket":{"type":"string","description":"Google Cloud Storage bucket containing the source\n"},"generation":{"type":"integer","description":"Google Cloud Storage generation for the object. If the generation\nis omitted, the latest generation will be used.\n"},"object":{"type":"string","description":"Google Cloud Storage object containing the source.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["generation"]}}},"gcp:cloudfunctionsv2/FunctionEventTrigger:FunctionEventTrigger":{"properties":{"eventFilters":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionEventTriggerEventFilter:FunctionEventTriggerEventFilter"},"description":"Criteria used to filter events.\nStructure is documented below.\n"},"eventType":{"type":"string","description":"Required. The type of event to observe.\n"},"pubsubTopic":{"type":"string","description":"The name of a Pub/Sub topic in the same project that will be used\nas the transport topic for the event delivery.\n"},"retryPolicy":{"type":"string","description":"Describes the retry policy in case of function's execution failure.\nRetried execution is charged as any other execution.\nPossible values are: `RETRY_POLICY_UNSPECIFIED`, `RETRY_POLICY_DO_NOT_RETRY`, `RETRY_POLICY_RETRY`.\n"},"serviceAccountEmail":{"type":"string","description":"Optional. The email of the trigger's service account. The service account\nmust have permission to invoke Cloud Run services. If empty, defaults to the\nCompute Engine default service account: {project_number}-compute@developer.gserviceaccount.com.\n"},"trigger":{"type":"string","description":"(Output)\nOutput only. The resource name of the Eventarc trigger.\n"},"triggerRegion":{"type":"string","description":"The region that the trigger will be in. The trigger will only receive\nevents originating in this region. It can be the same\nregion as the function, a different region or multi-region, or the global\nregion. If not provided, defaults to the same region as the function.\n"}},"type":"object","required":["eventType"],"language":{"nodejs":{"requiredOutputs":["eventType","pubsubTopic","serviceAccountEmail","trigger","triggerRegion"]}}},"gcp:cloudfunctionsv2/FunctionEventTriggerEventFilter:FunctionEventTriggerEventFilter":{"properties":{"attribute":{"type":"string","description":"'Required. The name of a CloudEvents attribute.\nCurrently, only a subset of attributes are supported for filtering. Use the `gcloud eventarc providers describe` command to learn more about events and their attributes.\nDo not filter for the 'type' attribute here, as this is already achieved by the resource's \u003cspan pulumi-lang-nodejs=\"`eventType`\" pulumi-lang-dotnet=\"`EventType`\" pulumi-lang-go=\"`eventType`\" pulumi-lang-python=\"`event_type`\" pulumi-lang-yaml=\"`eventType`\" pulumi-lang-java=\"`eventType`\"\u003e`event_type`\u003c/span\u003e attribute.\n"},"operator":{"type":"string","description":"Optional. The operator used for matching the events with the value of\nthe filter. If not specified, only events that have an exact key-value\npair specified in the filter are matched.\nThe only allowed value is `match-path-pattern`.\n[See documentation on path patterns here](https://cloud.google.com/eventarc/docs/path-patterns)'\n"},"value":{"type":"string","description":"Required. The value for the attribute.\nIf the operator field is set as `match-path-pattern`, this value can be a path pattern instead of an exact value.\n"}},"type":"object","required":["attribute","value"]},"gcp:cloudfunctionsv2/FunctionIamBindingCondition:FunctionIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudfunctionsv2/FunctionIamMemberCondition:FunctionIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudfunctionsv2/FunctionServiceConfig:FunctionServiceConfig":{"properties":{"allTrafficOnLatestRevision":{"type":"boolean","description":"Whether 100% of traffic is routed to the latest revision. Defaults to true.\n"},"availableCpu":{"type":"string","description":"The number of CPUs used in a single container instance. Default value is calculated from available memory.\n"},"availableMemory":{"type":"string","description":"The amount of memory available for a function.\nDefaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is\nsupplied the value is interpreted as bytes.\n"},"binaryAuthorizationPolicy":{"type":"string","description":"The binary authorization policy to be checked when deploying the Cloud Run service.\n"},"directVpcEgress":{"type":"string","description":"Egress settings for direct VPC. If not provided, it defaults to VPC_EGRESS_PRIVATE_RANGES_ONLY.\nPossible values are: `VPC_EGRESS_ALL_TRAFFIC`, `VPC_EGRESS_PRIVATE_RANGES_ONLY`.\n"},"directVpcNetworkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionServiceConfigDirectVpcNetworkInterface:FunctionServiceConfigDirectVpcNetworkInterface"},"description":"The Direct VPC network interface for the Cloud Function. Currently only a single Direct VPC is supported.\nStructure is documented below.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables that shall be available during function execution.\n"},"gcfUri":{"type":"string","description":"(Output)\nURIs of the Service deployed\n"},"ingressSettings":{"type":"string","description":"Available ingress settings. Defaults to \"ALLOW_ALL\" if unspecified.\nDefault value is `ALLOW_ALL`.\nPossible values are: `ALLOW_ALL`, `ALLOW_INTERNAL_ONLY`, `ALLOW_INTERNAL_AND_GCLB`.\n"},"maxInstanceCount":{"type":"integer","description":"The limit on the maximum number of function instances that may coexist at a\ngiven time.\n"},"maxInstanceRequestConcurrency":{"type":"integer","description":"Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.\n"},"minInstanceCount":{"type":"integer","description":"The limit on the minimum number of function instances that may coexist at a\ngiven time.\n"},"secretEnvironmentVariables":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionServiceConfigSecretEnvironmentVariable:FunctionServiceConfigSecretEnvironmentVariable"},"description":"Secret environment variables configuration.\nStructure is documented below.\n"},"secretVolumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionServiceConfigSecretVolume:FunctionServiceConfigSecretVolume"},"description":"Secret volumes configuration.\nStructure is documented below.\n"},"service":{"type":"string","description":"(Output)\nName of the service associated with a Function.\n"},"serviceAccountEmail":{"type":"string","description":"The email of the service account for this function.\n"},"timeoutSeconds":{"type":"integer","description":"The function execution timeout. Execution is considered failed and\ncan be terminated if the function is not completed at the end of the\ntimeout period. Defaults to 60 seconds.\n"},"uri":{"type":"string","description":"(Output)\nURI of the Service deployed.\n"},"vpcConnector":{"type":"string","description":"The Serverless VPC Access connector that this cloud function can connect to.\n"},"vpcConnectorEgressSettings":{"type":"string","description":"Available egress settings.\nPossible values are: `VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED`, `PRIVATE_RANGES_ONLY`, `ALL_TRAFFIC`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["availableCpu","availableMemory","directVpcEgress","environmentVariables","gcfUri","maxInstanceCount","maxInstanceRequestConcurrency","service","serviceAccountEmail","timeoutSeconds","uri"]}}},"gcp:cloudfunctionsv2/FunctionServiceConfigDirectVpcNetworkInterface:FunctionServiceConfigDirectVpcNetworkInterface":{"properties":{"network":{"type":"string","description":"The name of the VPC network to which the function will be connected. Specify either a VPC network or a subnet, or both. If you specify only a network, the subnet uses the same name as the network.\n"},"subnetwork":{"type":"string","description":"The name of the VPC subnetwork that the Cloud Function resource will get IPs from. Specify either a VPC network or a subnet, or both. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the subnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Function resource.\n"}},"type":"object"},"gcp:cloudfunctionsv2/FunctionServiceConfigSecretEnvironmentVariable:FunctionServiceConfigSecretEnvironmentVariable":{"properties":{"key":{"type":"string","description":"Name of the environment variable.\n"},"projectId":{"type":"string","description":"Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"Name of the secret in secret manager (not the full resource name).\n"},"version":{"type":"string","description":"Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start.\n"}},"type":"object","required":["key","projectId","secret","version"]},"gcp:cloudfunctionsv2/FunctionServiceConfigSecretVolume:FunctionServiceConfigSecretVolume":{"properties":{"mountPath":{"type":"string","description":"The path within the container to mount the secret volume. For example, setting the mountPath as /etc/secrets would mount the secret value files under the /etc/secrets directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets\n"},"projectId":{"type":"string","description":"Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"Name of the secret in secret manager (not the full resource name).\n"},"versions":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/FunctionServiceConfigSecretVolumeVersion:FunctionServiceConfigSecretVolumeVersion"},"description":"List of secret versions to mount for this secret. If empty, the latest version of the secret will be made available in a file named after the secret under the mount point.'\nStructure is documented below.\n"}},"type":"object","required":["mountPath","projectId","secret"],"language":{"nodejs":{"requiredOutputs":["mountPath","projectId","secret","versions"]}}},"gcp:cloudfunctionsv2/FunctionServiceConfigSecretVolumeVersion:FunctionServiceConfigSecretVolumeVersion":{"properties":{"path":{"type":"string","description":"Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mountPath as '/etc/secrets' and path as\u003cspan pulumi-lang-nodejs=\" secretFoo \" pulumi-lang-dotnet=\" SecretFoo \" pulumi-lang-go=\" secretFoo \" pulumi-lang-python=\" secret_foo \" pulumi-lang-yaml=\" secretFoo \" pulumi-lang-java=\" secretFoo \"\u003e secret_foo \u003c/span\u003ewould mount the secret value file at /etc/secrets/secret_foo.\n"},"version":{"type":"string","description":"Version of the secret (version number or the string 'latest'). It is preferable to use latest version with secret volumes as secret value changes are reflected immediately.\n"}},"type":"object","required":["path","version"]},"gcp:cloudfunctionsv2/getFunctionBuildConfig:getFunctionBuildConfig":{"properties":{"automaticUpdatePolicies":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionBuildConfigAutomaticUpdatePolicy:getFunctionBuildConfigAutomaticUpdatePolicy"},"description":"Security patches are applied automatically to the runtime without requiring\nthe function to be redeployed.\n"},"build":{"type":"string","description":"The Cloud Build name of the latest successful\ndeployment of the function.\n"},"dockerRepository":{"type":"string","description":"User managed repository created in Artifact Registry optionally with a customer managed encryption key.\n"},"entryPoint":{"type":"string","description":"The name of the function (as defined in source code) that will be executed.\nDefaults to the resource name suffix, if not specified. For backward\ncompatibility, if function with given name is not found, then the system\nwill try to use function named \"function\". For Node.js this is name of a\nfunction exported by the module specified in source_location.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"User-provided build-time environment variables for the function.\n"},"onDeployUpdatePolicies":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionBuildConfigOnDeployUpdatePolicy:getFunctionBuildConfigOnDeployUpdatePolicy"},"description":"Security patches are only applied when a function is redeployed.\n"},"runtime":{"type":"string","description":"The runtime in which to run the function. Required when deploying a new\nfunction, optional when updating an existing function.\n"},"serviceAccount":{"type":"string","description":"The fully-qualified name of the service account to be used for building the container.\n"},"sources":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionBuildConfigSource:getFunctionBuildConfigSource"},"description":"The location of the function source code.\n"},"workerPool":{"type":"string","description":"Name of the Cloud Build Custom Worker Pool that should be used to build the function.\n"}},"type":"object","required":["automaticUpdatePolicies","build","dockerRepository","entryPoint","environmentVariables","onDeployUpdatePolicies","runtime","serviceAccount","sources","workerPool"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionBuildConfigAutomaticUpdatePolicy:getFunctionBuildConfigAutomaticUpdatePolicy":{"type":"object"},"gcp:cloudfunctionsv2/getFunctionBuildConfigOnDeployUpdatePolicy:getFunctionBuildConfigOnDeployUpdatePolicy":{"properties":{"runtimeVersion":{"type":"string","description":"The runtime version which was used during latest function deployment.\n"}},"type":"object","required":["runtimeVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionBuildConfigSource:getFunctionBuildConfigSource":{"properties":{"repoSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionBuildConfigSourceRepoSource:getFunctionBuildConfigSourceRepoSource"},"description":"If provided, get the source from this location in a Cloud Source Repository.\n"},"storageSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionBuildConfigSourceStorageSource:getFunctionBuildConfigSourceStorageSource"},"description":"If provided, get the source from this location in Google Cloud Storage.\n"}},"type":"object","required":["repoSources","storageSources"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionBuildConfigSourceRepoSource:getFunctionBuildConfigSourceRepoSource":{"properties":{"branchName":{"type":"string","description":"Regex matching branches to build.\n"},"commitSha":{"type":"string","description":"Regex matching tags to build.\n"},"dir":{"type":"string","description":"Directory, relative to the source root, in which to run the build.\n"},"invertRegex":{"type":"boolean","description":"Only trigger a build if the revision regex does\nNOT match the revision regex.\n"},"projectId":{"type":"string","description":"ID of the project that owns the Cloud Source Repository. If omitted, the\nproject ID requesting the build is assumed.\n"},"repoName":{"type":"string","description":"Name of the Cloud Source Repository.\n"},"tagName":{"type":"string","description":"Regex matching tags to build.\n"}},"type":"object","required":["branchName","commitSha","dir","invertRegex","projectId","repoName","tagName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionBuildConfigSourceStorageSource:getFunctionBuildConfigSourceStorageSource":{"properties":{"bucket":{"type":"string","description":"Google Cloud Storage bucket containing the source\n"},"generation":{"type":"integer","description":"Google Cloud Storage generation for the object. If the generation\nis omitted, the latest generation will be used.\n"},"object":{"type":"string","description":"Google Cloud Storage object containing the source.\n"}},"type":"object","required":["bucket","generation","object"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionEventTrigger:getFunctionEventTrigger":{"properties":{"eventFilters":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionEventTriggerEventFilter:getFunctionEventTriggerEventFilter"},"description":"Criteria used to filter events.\n"},"eventType":{"type":"string","description":"Required. The type of event to observe.\n"},"pubsubTopic":{"type":"string","description":"The name of a Pub/Sub topic in the same project that will be used\nas the transport topic for the event delivery.\n"},"retryPolicy":{"type":"string","description":"Describes the retry policy in case of function's execution failure.\nRetried execution is charged as any other execution. Possible values: [\"RETRY_POLICY_UNSPECIFIED\", \"RETRY_POLICY_DO_NOT_RETRY\", \"RETRY_POLICY_RETRY\"]\n"},"serviceAccountEmail":{"type":"string","description":"Optional. The email of the trigger's service account. The service account\nmust have permission to invoke Cloud Run services. If empty, defaults to the\nCompute Engine default service account: {project_number}-compute@developer.gserviceaccount.com.\n"},"trigger":{"type":"string","description":"Output only. The resource name of the Eventarc trigger.\n"},"triggerRegion":{"type":"string","description":"The region that the trigger will be in. The trigger will only receive\nevents originating in this region. It can be the same\nregion as the function, a different region or multi-region, or the global\nregion. If not provided, defaults to the same region as the function.\n"}},"type":"object","required":["eventFilters","eventType","pubsubTopic","retryPolicy","serviceAccountEmail","trigger","triggerRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionEventTriggerEventFilter:getFunctionEventTriggerEventFilter":{"properties":{"attribute":{"type":"string","description":"'Required. The name of a CloudEvents attribute.\nCurrently, only a subset of attributes are supported for filtering. Use the 'gcloud eventarc providers describe' command to learn more about events and their attributes.\nDo not filter for the 'type' attribute here, as this is already achieved by the resource's 'event_type' attribute.\n"},"operator":{"type":"string","description":"Optional. The operator used for matching the events with the value of\nthe filter. If not specified, only events that have an exact key-value\npair specified in the filter are matched.\nThe only allowed value is 'match-path-pattern'.\n[See documentation on path patterns here](https://cloud.google.com/eventarc/docs/path-patterns)'\n"},"value":{"type":"string","description":"Required. The value for the attribute.\nIf the operator field is set as 'match-path-pattern', this value can be a path pattern instead of an exact value.\n"}},"type":"object","required":["attribute","operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionServiceConfig:getFunctionServiceConfig":{"properties":{"allTrafficOnLatestRevision":{"type":"boolean","description":"Whether 100% of traffic is routed to the latest revision. Defaults to true.\n"},"availableCpu":{"type":"string","description":"The number of CPUs used in a single container instance. Default value is calculated from available memory.\n"},"availableMemory":{"type":"string","description":"The amount of memory available for a function.\nDefaults to 256M. Supported units are k, M, G, Mi, Gi. If no unit is\nsupplied the value is interpreted as bytes.\n"},"binaryAuthorizationPolicy":{"type":"string","description":"The binary authorization policy to be checked when deploying the Cloud Run service.\n"},"directVpcEgress":{"type":"string","description":"Egress settings for direct VPC. If not provided, it defaults to VPC_EGRESS_PRIVATE_RANGES_ONLY. Possible values: [\"VPC_EGRESS_ALL_TRAFFIC\", \"VPC_EGRESS_PRIVATE_RANGES_ONLY\"]\n"},"directVpcNetworkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionServiceConfigDirectVpcNetworkInterface:getFunctionServiceConfigDirectVpcNetworkInterface"},"description":"The Direct VPC network interface for the Cloud Function. Currently only a single Direct VPC is supported.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Environment variables that shall be available during function execution.\n"},"gcfUri":{"type":"string","description":"URIs of the Service deployed\n"},"ingressSettings":{"type":"string","description":"Available ingress settings. Defaults to \"ALLOW_ALL\" if unspecified. Default value: \"ALLOW_ALL\" Possible values: [\"ALLOW_ALL\", \"ALLOW_INTERNAL_ONLY\", \"ALLOW_INTERNAL_AND_GCLB\"]\n"},"maxInstanceCount":{"type":"integer","description":"The limit on the maximum number of function instances that may coexist at a\ngiven time.\n"},"maxInstanceRequestConcurrency":{"type":"integer","description":"Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.\n"},"minInstanceCount":{"type":"integer","description":"The limit on the minimum number of function instances that may coexist at a\ngiven time.\n"},"secretEnvironmentVariables":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionServiceConfigSecretEnvironmentVariable:getFunctionServiceConfigSecretEnvironmentVariable"},"description":"Secret environment variables configuration.\n"},"secretVolumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionServiceConfigSecretVolume:getFunctionServiceConfigSecretVolume"},"description":"Secret volumes configuration.\n"},"service":{"type":"string","description":"Name of the service associated with a Function.\n"},"serviceAccountEmail":{"type":"string","description":"The email of the service account for this function.\n"},"timeoutSeconds":{"type":"integer","description":"The function execution timeout. Execution is considered failed and\ncan be terminated if the function is not completed at the end of the\ntimeout period. Defaults to 60 seconds.\n"},"uri":{"type":"string","description":"URI of the Service deployed.\n"},"vpcConnector":{"type":"string","description":"The Serverless VPC Access connector that this cloud function can connect to.\n"},"vpcConnectorEgressSettings":{"type":"string","description":"Available egress settings. Possible values: [\"VPC_CONNECTOR_EGRESS_SETTINGS_UNSPECIFIED\", \"PRIVATE_RANGES_ONLY\", \"ALL_TRAFFIC\"]\n"}},"type":"object","required":["allTrafficOnLatestRevision","availableCpu","availableMemory","binaryAuthorizationPolicy","directVpcEgress","directVpcNetworkInterfaces","environmentVariables","gcfUri","ingressSettings","maxInstanceCount","maxInstanceRequestConcurrency","minInstanceCount","secretEnvironmentVariables","secretVolumes","service","serviceAccountEmail","timeoutSeconds","uri","vpcConnector","vpcConnectorEgressSettings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionServiceConfigDirectVpcNetworkInterface:getFunctionServiceConfigDirectVpcNetworkInterface":{"properties":{"network":{"type":"string","description":"The name of the VPC network to which the function will be connected. Specify either a VPC network or a subnet, or both. If you specify only a network, the subnet uses the same name as the network.\n"},"subnetwork":{"type":"string","description":"The name of the VPC subnetwork that the Cloud Function resource will get IPs from. Specify either a VPC network or a subnet, or both. If both network and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the subnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Function resource.\n"}},"type":"object","required":["network","subnetwork","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionServiceConfigSecretEnvironmentVariable:getFunctionServiceConfigSecretEnvironmentVariable":{"properties":{"key":{"type":"string","description":"Name of the environment variable.\n"},"projectId":{"type":"string","description":"Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"Name of the secret in secret manager (not the full resource name).\n"},"version":{"type":"string","description":"Version of the secret (version number or the string 'latest'). It is recommended to use a numeric version for secret environment variables as any updates to the secret value is not reflected until new instances start.\n"}},"type":"object","required":["key","projectId","secret","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionServiceConfigSecretVolume:getFunctionServiceConfigSecretVolume":{"properties":{"mountPath":{"type":"string","description":"The path within the container to mount the secret volume. For example, setting the mountPath as /etc/secrets would mount the secret value files under the /etc/secrets directory. This directory will also be completely shadowed and unavailable to mount any other secrets. Recommended mount path: /etc/secrets\n"},"projectId":{"type":"string","description":"Project identifier (preferably project number but can also be the project ID) of the project that contains the secret. If not set, it will be populated with the function's project assuming that the secret exists in the same project as of the function.\n"},"secret":{"type":"string","description":"Name of the secret in secret manager (not the full resource name).\n"},"versions":{"type":"array","items":{"$ref":"#/types/gcp:cloudfunctionsv2/getFunctionServiceConfigSecretVolumeVersion:getFunctionServiceConfigSecretVolumeVersion"},"description":"List of secret versions to mount for this secret. If empty, the latest version of the secret will be made available in a file named after the secret under the mount point.'\n"}},"type":"object","required":["mountPath","projectId","secret","versions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudfunctionsv2/getFunctionServiceConfigSecretVolumeVersion:getFunctionServiceConfigSecretVolumeVersion":{"properties":{"path":{"type":"string","description":"Relative path of the file under the mount path where the secret value for this version will be fetched and made available. For example, setting the mountPath as '/etc/secrets' and path as\u003cspan pulumi-lang-nodejs=\" secretFoo \" pulumi-lang-dotnet=\" SecretFoo \" pulumi-lang-go=\" secretFoo \" pulumi-lang-python=\" secret_foo \" pulumi-lang-yaml=\" secretFoo \" pulumi-lang-java=\" secretFoo \"\u003e secret_foo \u003c/span\u003ewould mount the secret value file at /etc/secrets/secret_foo.\n"},"version":{"type":"string","description":"Version of the secret (version number or the string 'latest'). It is preferable to use latest version with secret volumes as secret value changes are reflected immediately.\n"}},"type":"object","required":["path","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/GroupAdditionalGroupKey:GroupAdditionalGroupKey":{"properties":{"id":{"type":"string","description":"(Output)\nThe ID of the entity.\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\nMust be unique within a namespace.\n"},"namespace":{"type":"string","description":"(Output)\nThe namespace in which the entity exists.\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","namespace"]}}},"gcp:cloudidentity/GroupGroupKey:GroupGroupKey":{"properties":{"id":{"type":"string","description":"The ID of the entity.\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\nMust be unique within a namespace.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n","willReplaceOnChanges":true}},"type":"object","required":["id"]},"gcp:cloudidentity/GroupMembershipMemberKey:GroupMembershipMemberKey":{"properties":{"id":{"type":"string","description":"The ID of the entity.\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\nMust be unique within a namespace.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n","willReplaceOnChanges":true}},"type":"object","required":["id"]},"gcp:cloudidentity/GroupMembershipPreferredMemberKey:GroupMembershipPreferredMemberKey":{"properties":{"id":{"type":"string","description":"The ID of the entity.\nFor Google-managed entities, the id must be the email address of an existing\ngroup or user.\nFor external-identity-mapped entities, the id must be a string conforming\nto the Identity Source's requirements.\nMust be unique within a namespace.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not specified, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf specified, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n","willReplaceOnChanges":true}},"type":"object","required":["id"]},"gcp:cloudidentity/GroupMembershipRole:GroupMembershipRole":{"properties":{"expiryDetail":{"$ref":"#/types/gcp:cloudidentity/GroupMembershipRoleExpiryDetail:GroupMembershipRoleExpiryDetail","description":"The MembershipRole expiry details, only supported for MEMBER role.\nOther roles cannot be accompanied with MEMBER role having expiry.\nStructure is documented below.\n"},"name":{"type":"string","description":"The name of the MembershipRole. Must be one of OWNER, MANAGER, MEMBER.\nPossible values are: `OWNER`, `MANAGER`, `MEMBER`.\n"}},"type":"object","required":["name"]},"gcp:cloudidentity/GroupMembershipRoleExpiryDetail:GroupMembershipRoleExpiryDetail":{"properties":{"expireTime":{"type":"string","description":"The time at which the MembershipRole will expire.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object","required":["expireTime"]},"gcp:cloudidentity/PolicyPolicyQuery:PolicyPolicyQuery":{"properties":{"group":{"type":"string","description":"The group that the query applies to.\n","willReplaceOnChanges":true},"orgUnit":{"type":"string","description":"The OrgUnit the query applies to.\n","willReplaceOnChanges":true},"query":{"type":"string","description":"The CEL query that defines which entities the Policy applies to.\n","willReplaceOnChanges":true},"sortOrder":{"type":"integer","description":"(Output)\nDecimal sort order of this PolicyQuery.\n"}},"type":"object","required":["orgUnit"],"language":{"nodejs":{"requiredOutputs":["orgUnit","sortOrder"]}}},"gcp:cloudidentity/PolicySetting:PolicySetting":{"properties":{"type":{"type":"string","description":"The type of the Setting.\n","willReplaceOnChanges":true},"valueJson":{"type":"string","description":"The value of the Setting as JSON string.\n"}},"type":"object","required":["type","valueJson"]},"gcp:cloudidentity/getGroupLookupGroupKey:getGroupLookupGroupKey":{"properties":{"id":{"type":"string","description":"(Required) The ID of the entity.\nFor Google-managed entities, the id is the email address of an existing group or user.\nFor external-identity-mapped entities, the id is a string conforming\nto the Identity Source's requirements.\n"},"namespace":{"type":"string","description":"(Optional) The namespace in which the entity exists.\nIf not populated, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf populated, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n"}},"type":"object","required":["id"]},"gcp:cloudidentity/getGroupMembershipsMembership:getGroupMembershipsMembership":{"properties":{"createIgnoreAlreadyExists":{"type":"boolean","description":"If set to true, skip group member creation if a membership with the same name already exists. Defaults to false.\n"},"createTime":{"type":"string","description":"The time when the Membership was created.\n"},"group":{"type":"string","description":"The parent Group resource under which to lookup the Membership names. Must be of the form groups/{group_id}.\n"},"memberKeys":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupMembershipsMembershipMemberKey:getGroupMembershipsMembershipMemberKey"},"description":"EntityKey of the member.  Structure is documented below.\n"},"name":{"type":"string","description":"The name of the MembershipRole. One of OWNER, MANAGER, MEMBER.\n"},"preferredMemberKeys":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupMembershipsMembershipPreferredMemberKey:getGroupMembershipsMembershipPreferredMemberKey"},"description":"EntityKey of the member.  Structure is documented below.\n"},"roles":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupMembershipsMembershipRole:getGroupMembershipsMembershipRole"},"description":"The MembershipRoles that apply to the Membership. Structure is documented below.\n"},"type":{"type":"string","description":"The type of the membership.\n"},"updateTime":{"type":"string","description":"The time when the Membership was last updated.\n"}},"type":"object","required":["createIgnoreAlreadyExists","createTime","group","memberKeys","name","preferredMemberKeys","roles","type","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupMembershipsMembershipMemberKey:getGroupMembershipsMembershipMemberKey":{"properties":{"id":{"type":"string","description":"The ID of the entity. For Google-managed entities, the id is the email address of an existing\ngroup or user. For external-identity-mapped entities, the id is a string conforming\nto the Identity Source's requirements.\n"},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not populated, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf populated, the EntityKey represents an external-identity-mapped group.\n"}},"type":"object","required":["id","namespace"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupMembershipsMembershipPreferredMemberKey:getGroupMembershipsMembershipPreferredMemberKey":{"properties":{"id":{"type":"string","description":"The ID of the entity. For Google-managed entities, the id is the email address of an existing\ngroup or user. For external-identity-mapped entities, the id is a string conforming\nto the Identity Source's requirements.\n"},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not populated, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf populated, the EntityKey represents an external-identity-mapped group.\n"}},"type":"object","required":["id","namespace"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupMembershipsMembershipRole:getGroupMembershipsMembershipRole":{"properties":{"expiryDetails":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupMembershipsMembershipRoleExpiryDetail:getGroupMembershipsMembershipRoleExpiryDetail"},"description":"The MembershipRole expiry details, only supported for MEMBER role.\nOther roles cannot be accompanied with MEMBER role having expiry.\n"},"name":{"type":"string","description":"The name of the MembershipRole. One of OWNER, MANAGER, MEMBER.\n"}},"type":"object","required":["expiryDetails","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupMembershipsMembershipRoleExpiryDetail:getGroupMembershipsMembershipRoleExpiryDetail":{"properties":{"expireTime":{"type":"string","description":"The time at which the MembershipRole will expire.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond\nresolution and up to nine fractional digits.\n\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object","required":["expireTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupTransitiveMembershipsMembership:getGroupTransitiveMembershipsMembership":{"properties":{"member":{"type":"string","description":"EntityKey of the member.  This value will be either a userKey in the format `users/000000000000000000000` with a numerical id or a groupKey in the format `groups/000ab0000ab0000` with a hexadecimal id.\n"},"preferredMemberKeys":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupTransitiveMembershipsMembershipPreferredMemberKey:getGroupTransitiveMembershipsMembershipPreferredMemberKey"},"description":"EntityKey of the member.  Structure is documented below.\n"},"relationType":{"type":"string","description":"The relation between the group and the transitive member. The value can be DIRECT, INDIRECT, or DIRECT_AND_INDIRECT.\n"},"roles":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupTransitiveMembershipsMembershipRole:getGroupTransitiveMembershipsMembershipRole"},"description":"The TransitiveMembershipRoles that apply to the Membership. Structure is documented below.\n"}},"type":"object","required":["member","preferredMemberKeys","relationType","roles"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupTransitiveMembershipsMembershipPreferredMemberKey:getGroupTransitiveMembershipsMembershipPreferredMemberKey":{"properties":{"id":{"type":"string","description":"The ID of the entity. For Google-managed entities, the id is the email address of an existing\ngroup or user. For external-identity-mapped entities, the id is a string conforming\nto the Identity Source's requirements.\n"},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not populated, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf populated, the EntityKey represents an external-identity-mapped group.\n"}},"type":"object","required":["id","namespace"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupTransitiveMembershipsMembershipRole:getGroupTransitiveMembershipsMembershipRole":{"properties":{"role":{"type":"string","description":"The name of the TransitiveMembershipRole. One of OWNER, MANAGER, MEMBER.\n"}},"type":"object","required":["role"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupsGroup:getGroupsGroup":{"properties":{"additionalGroupKeys":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupsGroupAdditionalGroupKey:getGroupsGroupAdditionalGroupKey"},"description":"Additional group keys associated with the Group\n"},"createTime":{"type":"string","description":"The time when the Group was created.\n"},"description":{"type":"string","description":"An extended description to help users determine the purpose of a Group.\n"},"displayName":{"type":"string","description":"The display name of the Group.\n"},"groupKeys":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getGroupsGroupGroupKey:getGroupsGroupGroupKey"},"description":"EntityKey of the Group.  Structure is documented below.\n"},"initialGroupConfig":{"type":"string","description":"The initial configuration options for creating a Group.\n\nSee the\n[API reference](https://cloud.google.com/identity/docs/reference/rest/v1beta1/groups/create#initialgroupconfig)\nfor possible values. Default value: \"EMPTY\" Possible values: [\"INITIAL_GROUP_CONFIG_UNSPECIFIED\", \"WITH_INITIAL_OWNER\", \"EMPTY\"]\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels that apply to the Group.\nContains 'cloudidentity.googleapis.com/groups.discussion_forum': '' if the Group is a Google Group or\n'system/groups/external': '' if the Group is an external-identity-mapped group.\n"},"name":{"type":"string","description":"Resource name of the Group in the format: groups/{group_id}, where \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e is the unique ID assigned to the Group.\n"},"parent":{"type":"string","description":"The parent resource under which to list all Groups. Must be of the form identitysources/{identity_source_id} for external- identity-mapped groups or customers/{customer_id} for Google Groups.\n"},"updateTime":{"type":"string","description":"The time when the Group was last updated.\n"}},"type":"object","required":["additionalGroupKeys","createTime","description","displayName","groupKeys","initialGroupConfig","labels","name","parent","updateTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupsGroupAdditionalGroupKey:getGroupsGroupAdditionalGroupKey":{"properties":{"id":{"type":"string","description":"The ID of the entity.\nFor Google-managed entities, the id is the email address of an existing group or user.\nFor external-identity-mapped entities, the id is a string conforming\nto the Identity Source's requirements.\n"},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not populated, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf populated, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n"}},"type":"object","required":["id","namespace"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getGroupsGroupGroupKey:getGroupsGroupGroupKey":{"properties":{"id":{"type":"string","description":"The ID of the entity.\nFor Google-managed entities, the id is the email address of an existing group or user.\nFor external-identity-mapped entities, the id is a string conforming\nto the Identity Source's requirements.\n"},"namespace":{"type":"string","description":"The namespace in which the entity exists.\nIf not populated, the EntityKey represents a Google-managed entity\nsuch as a Google user or a Google Group.\nIf populated, the EntityKey represents an external-identity-mapped group.\nThe namespace must correspond to an identity source created in Admin Console\nand must be in the form of `identitysources/{identity_source_id}`.\n"}},"type":"object","required":["id","namespace"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getPoliciesPolicy:getPoliciesPolicy":{"properties":{"customer":{"type":"string","description":"The customer that the policy belongs to.\n"},"name":{"type":"string","description":"The resource name of the policy.\n"},"policyQueries":{"type":"array","items":{"$ref":"#/types/gcp:cloudidentity/getPoliciesPolicyPolicyQuery:getPoliciesPolicyPolicyQuery"},"description":"A list containing the CEL query that defines which entities the policy applies to. Structure is documented below.\n"},"setting":{"type":"string","description":"The setting configured by this policy, represented as a JSON string.\n"},"type":{"type":"string","description":"The type of the policy.\n"}},"type":"object","required":["customer","name","policyQueries","setting","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getPoliciesPolicyPolicyQuery:getPoliciesPolicyPolicyQuery":{"properties":{"group":{"type":"string","description":"The group that the policy applies to.\n"},"orgUnit":{"type":"string","description":"The org unit that the policy applies to.\n"},"query":{"type":"string","description":"The query that defines which entities the policy applies to.\n"},"sortOrder":{"type":"number","description":"The sort order of the policy.\n"}},"type":"object","required":["group","orgUnit","query","sortOrder"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudidentity/getPolicyPolicyQuery:getPolicyPolicyQuery":{"properties":{"group":{"type":"string","description":"The group that the policy applies to.\n"},"orgUnit":{"type":"string","description":"The org unit that the policy applies to.\n"},"query":{"type":"string","description":"The query that defines which entities the policy applies to.\n"},"sortOrder":{"type":"number","description":"The sort order of the policy.\n"}},"type":"object","required":["group","orgUnit","query","sortOrder"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/SQuotaPreferenceQuotaConfig:SQuotaPreferenceQuotaConfig":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations map for clients to store small amounts of arbitrary data. Do not put PII or other sensitive information here. See https://google.aip.dev/128#annotations.\nAn object containing a list of \"key: value\" pairs. Example: `{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }`.\n"},"grantedValue":{"type":"string","description":"(Output)\nGranted quota value.\n"},"preferredValue":{"type":"string","description":"The preferred value. Must be greater than or equal to -1. If set to -1, it means the value is \"unlimited\".\n"},"requestOrigin":{"type":"string","description":"(Output)\nThe origin of the quota preference request.\n"},"stateDetail":{"type":"string","description":"(Output)\nOptional details about the state of this quota preference.\n"},"traceId":{"type":"string","description":"(Output)\nThe trace id that the Google Cloud uses to provision the requested quota. This trace id may be used by the client to contact Cloud support to track the state of a quota preference request. The trace id is only produced for increase requests and is unique for each request. The quota decrease requests do not have a trace id.\n"}},"type":"object","required":["preferredValue"],"language":{"nodejs":{"requiredOutputs":["grantedValue","preferredValue","requestOrigin","stateDetail","traceId"]}}},"gcp:cloudquota/getSQuotaInfoDimensionsInfo:getSQuotaInfoDimensionsInfo":{"properties":{"applicableLocations":{"type":"array","items":{"type":"string"},"description":"The applicable regions or zones of this dimensions info. The field will be set to `['global']` for quotas that are not per region or per zone. Otherwise, it will be set to the list of locations this dimension info is applicable to.\n"},"details":{"type":"array","items":{"$ref":"#/types/gcp:cloudquota/getSQuotaInfoDimensionsInfoDetail:getSQuotaInfoDimensionsInfoDetail"},"description":"The quota details for a map of dimensions.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"The map of dimensions for this dimensions info. The key of a map entry is \"region\", \"zone\" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {\"provider\" : \"Foo Inc\"} where \"provider\" is a service specific dimension of a quota.\n"}},"type":"object","required":["applicableLocations","details","dimensions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/getSQuotaInfoDimensionsInfoDetail:getSQuotaInfoDimensionsInfoDetail":{"properties":{"value":{"type":"string","description":"The value currently in effect and being enforced.\n"}},"type":"object","required":["value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/getSQuotaInfoQuotaIncreaseEligibility:getSQuotaInfoQuotaIncreaseEligibility":{"properties":{"ineligibilityReason":{"type":"string","description":"The enumeration of reasons when it is ineligible to request increase adjustment.\n"},"isEligible":{"type":"boolean","description":"Whether a higher quota value can be requested for the quota.\n"}},"type":"object","required":["ineligibilityReason","isEligible"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/getSQuotaInfosQuotaInfo:getSQuotaInfosQuotaInfo":{"properties":{"containerType":{"type":"string","description":"(Output) The container type of the QuotaInfo.\n"},"dimensions":{"type":"array","items":{"type":"string"},"description":"The map of dimensions for this dimensions info. The key of a map entry is \"region\", \"zone\" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {\"provider\" : \"Foo Inc\"} where \"provider\" is a service specific dimension of a quota.\n"},"dimensionsInfos":{"type":"array","items":{"$ref":"#/types/gcp:cloudquota/getSQuotaInfosQuotaInfoDimensionsInfo:getSQuotaInfosQuotaInfoDimensionsInfo"},"description":"(Output) The collection of dimensions info ordered by their dimensions from more specific ones to less specific ones.\n"},"isConcurrent":{"type":"boolean","description":"(Output) Whether the quota is a concurrent quota. Concurrent quotas are enforced on the total number of concurrent operations in flight at any given time.\n"},"isFixed":{"type":"boolean","description":"(Output) Whether the quota value is fixed or adjustable.\n"},"isPrecise":{"type":"boolean","description":"(Output) Whether this is a precise quota. A precise quota is tracked with absolute precision. In contrast, an imprecise quota is not tracked with precision.\n"},"metric":{"type":"string","description":"(Output) The metric of the quota. It specifies the resources consumption the quota is defined for, for example: `compute.googleapis.com/cpus`.\n"},"metricDisplayName":{"type":"string","description":"(Output) The display name of the quota metric.\n"},"metricUnit":{"type":"string","description":"(Output) The unit in which the metric value is reported, e.g., `MByte`.\n"},"name":{"type":"string","description":"(Output) Resource name of this QuotaInfo, for example: `projects/123/locations/global/services/compute.googleapis.com/quotaInfos/CpusPerProjectPerRegion`.\n"},"quotaDisplayName":{"type":"string","description":"(Output) The display name of the quota.\n"},"quotaId":{"type":"string"},"quotaIncreaseEligibilities":{"type":"array","items":{"$ref":"#/types/gcp:cloudquota/getSQuotaInfosQuotaInfoQuotaIncreaseEligibility:getSQuotaInfosQuotaInfoQuotaIncreaseEligibility"},"description":"(Output) Whether it is eligible to request a higher quota value for this quota.\n"},"refreshInterval":{"type":"string","description":"(Output) The reset time interval for the quota. Refresh interval applies to rate quota only. Example: \"minute\" for per minute, \"day\" for per day, or \"10 seconds\" for every 10 seconds.\n"},"service":{"type":"string","description":"The name of the service in which the quotas are defined.\n"},"serviceRequestQuotaUri":{"type":"string","description":"(Output) URI to the page where users can request more quota for the cloud service, for example: `https://console.cloud.google.com/iam-admin/quotas`.\n"}},"type":"object","required":["containerType","dimensions","dimensionsInfos","isConcurrent","isFixed","isPrecise","metric","metricDisplayName","metricUnit","name","quotaDisplayName","quotaId","quotaIncreaseEligibilities","refreshInterval","service","serviceRequestQuotaUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/getSQuotaInfosQuotaInfoDimensionsInfo:getSQuotaInfosQuotaInfoDimensionsInfo":{"properties":{"applicableLocations":{"type":"array","items":{"type":"string"},"description":"The applicable regions or zones of this dimensions info. The field will be set to `['global']` for quotas that are not per region or per zone. Otherwise, it will be set to the list of locations this dimension info is applicable to.\n"},"details":{"type":"array","items":{"$ref":"#/types/gcp:cloudquota/getSQuotaInfosQuotaInfoDimensionsInfoDetail:getSQuotaInfosQuotaInfoDimensionsInfoDetail"},"description":"The quota details for a map of dimensions.\n"},"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"The map of dimensions for this dimensions info. The key of a map entry is \"region\", \"zone\" or the name of a service specific dimension, and the value of a map entry is the value of the dimension. If a dimension does not appear in the map of dimensions, the dimensions info applies to all the dimension values except for those that have another DimenisonInfo instance configured for the specific value. Example: {\"provider\" : \"Foo Inc\"} where \"provider\" is a service specific dimension of a quota.\n"}},"type":"object","required":["applicableLocations","details","dimensions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/getSQuotaInfosQuotaInfoDimensionsInfoDetail:getSQuotaInfosQuotaInfoDimensionsInfoDetail":{"properties":{"value":{"type":"string","description":"The value currently in effect and being enforced.\n"}},"type":"object","required":["value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudquota/getSQuotaInfosQuotaInfoQuotaIncreaseEligibility:getSQuotaInfosQuotaInfoQuotaIncreaseEligibility":{"properties":{"ineligibilityReason":{"type":"string","description":"The enumeration of reasons when it is ineligible to request increase adjustment.\n"},"isEligible":{"type":"boolean","description":"Whether a higher quota value can be requested for the quota.\n"}},"type":"object","required":["ineligibilityReason","isEligible"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/DomainMappingMetadata:DomainMappingMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf the provider plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\n**Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.\nPlease refer to the field \u003cspan pulumi-lang-nodejs=\"`effectiveAnnotations`\" pulumi-lang-dotnet=\"`EffectiveAnnotations`\" pulumi-lang-go=\"`effectiveAnnotations`\" pulumi-lang-python=\"`effective_annotations`\" pulumi-lang-yaml=\"`effectiveAnnotations`\" pulumi-lang-java=\"`effectiveAnnotations`\"\u003e`effective_annotations`\u003c/span\u003e for all of the annotations present on the resource.\n","willReplaceOnChanges":true},"effectiveAnnotations":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAll of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.\n","willReplaceOnChanges":true},"effectiveLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAll of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n","secret":true,"willReplaceOnChanges":true},"generation":{"type":"integer","description":"(Output)\nA sequence number representing a specific generation of the desired state.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field \u003cspan pulumi-lang-nodejs=\"`effectiveLabels`\" pulumi-lang-dotnet=\"`EffectiveLabels`\" pulumi-lang-go=\"`effectiveLabels`\" pulumi-lang-python=\"`effective_labels`\" pulumi-lang-yaml=\"`effectiveLabels`\" pulumi-lang-java=\"`effectiveLabels`\"\u003e`effective_labels`\u003c/span\u003e for all of the labels present on the resource.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.\n","willReplaceOnChanges":true},"pulumiLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The combination of labels configured directly on the resource\n and default labels configured on the provider.\n","secret":true,"willReplaceOnChanges":true},"resourceVersion":{"type":"string","description":"(Output)\nAn opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\nMore info:\nhttps://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency\n"},"selfLink":{"type":"string","description":"(Output)\nSelfLink is a URL representing this object.\n"},"uid":{"type":"string","description":"(Output)\nUID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids\n"}},"type":"object","required":["namespace"],"language":{"nodejs":{"requiredOutputs":["effectiveAnnotations","effectiveLabels","generation","namespace","pulumiLabels","resourceVersion","selfLink","uid"]}}},"gcp:cloudrun/DomainMappingSpec:DomainMappingSpec":{"properties":{"certificateMode":{"type":"string","description":"The mode of the certificate.\nDefault value is `AUTOMATIC`.\nPossible values are: `NONE`, `AUTOMATIC`.\n","willReplaceOnChanges":true},"forceOverride":{"type":"boolean","description":"If set, the mapping will override any mapping set before this spec was set.\nIt is recommended that the user leaves this empty to receive an error\nwarning about a potential conflict and only set it once the respective UI\nhas given such a warning.\n","willReplaceOnChanges":true},"routeName":{"type":"string","description":"The name of the Cloud Run Service that this DomainMapping applies to.\nThe route must exist.\n","willReplaceOnChanges":true}},"type":"object","required":["routeName"]},"gcp:cloudrun/DomainMappingStatus:DomainMappingStatus":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/DomainMappingStatusCondition:DomainMappingStatusCondition"},"description":"(Output)\nArray of observed DomainMappingConditions, indicating the current state\nof the DomainMapping.\nStructure is documented below.\n"},"mappedRouteName":{"type":"string","description":"(Output)\nThe name of the route that the mapping currently points to.\n"},"observedGeneration":{"type":"integer","description":"(Output)\nObservedGeneration is the 'Generation' of the DomainMapping that\nwas last processed by the controller.\n"},"resourceRecords":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/DomainMappingStatusResourceRecord:DomainMappingStatusResourceRecord"},"description":"The resource records required to configure this domain mapping. These\nrecords must be added to the domain's DNS configuration in order to\nserve the application via this domain mapping.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["conditions","mappedRouteName","observedGeneration"]}}},"gcp:cloudrun/DomainMappingStatusCondition:DomainMappingStatusCondition":{"properties":{"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nOne-word CamelCase reason for the condition's current status.\n"},"status":{"type":"string","description":"(Output)\nStatus of the condition, one of True, False, Unknown.\n"},"type":{"type":"string","description":"Resource record type. Example: `AAAA`.\nPossible values are: `A`, `AAAA`, `CNAME`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["message","reason","status","type"]}}},"gcp:cloudrun/DomainMappingStatusResourceRecord:DomainMappingStatusResourceRecord":{"properties":{"name":{"type":"string","description":"Name should be a [verified](https://support.google.com/webmasters/answer/9008080) domain\n"},"rrdata":{"type":"string","description":"(Output)\nData for this record. Values vary by record type, as defined in RFC 1035\n(section 5) and RFC 1034 (section 3.6.1).\n"},"type":{"type":"string","description":"Resource record type. Example: `AAAA`.\nPossible values are: `A`, `AAAA`, `CNAME`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","rrdata"]}}},"gcp:cloudrun/IamBindingCondition:IamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrun/IamMemberCondition:IamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrun/ServiceMetadata:ServiceMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf the provider plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\nAnnotations with `run.googleapis.com/` and `autoscaling.knative.dev` are restricted. Use the following annotation\nkeys to configure features on a Service:\n- `run.googleapis.com/binary-authorization-breakglass` sets the [Binary Authorization breakglass](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--breakglass).\n- `run.googleapis.com/binary-authorization` sets the [Binary Authorization](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--binary-authorization).\n- `run.googleapis.com/client-name` sets the client name calling the Cloud Run API.\n- `run.googleapis.com/custom-audiences` sets the [custom audiences](https://cloud.google.com/sdk/gcloud/reference/alpha/run/deploy#--add-custom-audiences)\nthat can be used in the audience field of ID token for authenticated requests.\n- `run.googleapis.com/description` sets a user defined description for the Service.\n- `run.googleapis.com/ingress` sets the [ingress settings](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--ingress)\nfor the Service. For example, `\"run.googleapis.com/ingress\" = \"all\"`.\n- `run.googleapis.com/launch-stage` sets the [launch stage](https://cloud.google.com/run/docs/troubleshooting#launch-stage-validation)\nwhen a preview feature is used. For example, `\"run.googleapis.com/launch-stage\": \"BETA\"`\n- `run.googleapis.com/minScale` sets the [minimum number of container instances](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--min) of the Service.\n- `run.googleapis.com/scalingMode` sets the type of scaling mode for the service. The supported values for scaling mode are \"manual\" and \"automatic\". If not provided, it defaults to \"automatic\".\n- `run.googleapis.com/manualInstanceCount` sets the total instance count for the service in manual scaling mode. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving.\n**Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.\nPlease refer to the field \u003cspan pulumi-lang-nodejs=\"`effectiveAnnotations`\" pulumi-lang-dotnet=\"`EffectiveAnnotations`\" pulumi-lang-go=\"`effectiveAnnotations`\" pulumi-lang-python=\"`effective_annotations`\" pulumi-lang-yaml=\"`effectiveAnnotations`\" pulumi-lang-java=\"`effectiveAnnotations`\"\u003e`effective_annotations`\u003c/span\u003e for all of the annotations present on the resource.\n"},"effectiveAnnotations":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAll of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.\n"},"effectiveLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAll of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n","secret":true},"generation":{"type":"integer","description":"(Output)\nA sequence number representing a specific generation of the desired state.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field \u003cspan pulumi-lang-nodejs=\"`effectiveLabels`\" pulumi-lang-dotnet=\"`EffectiveLabels`\" pulumi-lang-go=\"`effectiveLabels`\" pulumi-lang-python=\"`effective_labels`\" pulumi-lang-yaml=\"`effectiveLabels`\" pulumi-lang-java=\"`effectiveLabels`\"\u003e`effective_labels`\u003c/span\u003e for all of the labels present on the resource.\n"},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.\n"},"pulumiLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The combination of labels configured directly on the resource\n and default labels configured on the provider.\n","secret":true},"resourceVersion":{"type":"string","description":"(Output)\nAn opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n"},"selfLink":{"type":"string","description":"(Output)\nSelfLink is a URL representing this object.\n"},"uid":{"type":"string","description":"(Output)\nUID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["effectiveAnnotations","effectiveLabels","generation","namespace","pulumiLabels","resourceVersion","selfLink","uid"]}}},"gcp:cloudrun/ServiceStatus:ServiceStatus":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceStatusCondition:ServiceStatusCondition"},"description":"(Output)\nArray of observed Service Conditions, indicating the current ready state of the service.\nStructure is documented below.\n"},"latestCreatedRevisionName":{"type":"string","description":"(Output)\nFrom ConfigurationStatus. LatestCreatedRevisionName is the last revision that was created\nfrom this Service's Configuration. It might not be ready yet, for that use\nLatestReadyRevisionName.\n"},"latestReadyRevisionName":{"type":"string","description":"(Output)\nFrom ConfigurationStatus. LatestReadyRevisionName holds the name of the latest Revision\nstamped out from this Service's Configuration that has had its \"Ready\" condition become\n\"True\".\n"},"observedGeneration":{"type":"integer","description":"(Output)\nObservedGeneration is the 'Generation' of the Route that was last processed by the\ncontroller.\nClients polling for completed reconciliation should poll until observedGeneration =\nmetadata.generation and the Ready condition's status is True or False.\n"},"traffics":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceStatusTraffic:ServiceStatusTraffic"},"description":"Traffic specifies how to distribute traffic over a collection of Knative Revisions\nand Configurations\nStructure is documented below.\n"},"url":{"type":"string","description":"(Output)\nURL displays the URL for accessing tagged traffic targets. URL is displayed in status,\nand is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname,\nbut may not contain anything else (e.g. basic auth, url path, etc.)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["conditions","latestCreatedRevisionName","latestReadyRevisionName","observedGeneration","traffics","url"]}}},"gcp:cloudrun/ServiceStatusCondition:ServiceStatusCondition":{"properties":{"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nOne-word CamelCase reason for the condition's current status.\n"},"status":{"type":"string","description":"(Output)\nStatus of the condition, one of True, False, Unknown.\n"},"type":{"type":"string","description":"(Output)\nType of domain mapping condition.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["message","reason","status","type"]}}},"gcp:cloudrun/ServiceStatusTraffic:ServiceStatusTraffic":{"properties":{"latestRevision":{"type":"boolean","description":"LatestRevision may be optionally provided to indicate that the latest ready\nRevision of the Configuration should be used for this traffic target. When\nprovided LatestRevision must be true if RevisionName is empty; it must be\nfalse when RevisionName is non-empty.\n"},"percent":{"type":"integer","description":"Percent specifies percent of the traffic to this Revision or Configuration.\n"},"revisionName":{"type":"string","description":"RevisionName of a specific revision to which to send this portion of traffic.\n"},"tag":{"type":"string","description":"Tag is optionally used to expose a dedicated url for referencing this target exclusively.\n"},"url":{"type":"string","description":"(Output)\nURL displays the URL for accessing tagged traffic targets. URL is displayed in status,\nand is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname,\nbut may not contain anything else (e.g. basic auth, url path, etc.)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["latestRevision","percent","revisionName","tag","url"]}}},"gcp:cloudrun/ServiceTemplate:ServiceTemplate":{"properties":{"metadata":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateMetadata:ServiceTemplateMetadata","description":"Optional metadata for this Revision, including labels and annotations.\nName will be generated by the Configuration. To set minimum instances\nfor this revision, use the \"autoscaling.knative.dev/minScale\" annotation\nkey. To set maximum instances for this revision, use the\n\"autoscaling.knative.dev/maxScale\" annotation key. To set Cloud SQL\nconnections for the revision, use the \"run.googleapis.com/cloudsql-instances\"\nannotation key.\nStructure is documented below.\n"},"spec":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpec:ServiceTemplateSpec","description":"RevisionSpec holds the desired state of the Revision (from the client).\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["metadata","spec"]}}},"gcp:cloudrun/ServiceTemplateMetadata:ServiceTemplateMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf the provider plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\nAnnotations with `run.googleapis.com/` and `autoscaling.knative.dev` are restricted. Use the following annotation\nkeys to configure features on a Service:\n- `run.googleapis.com/binary-authorization-breakglass` sets the [Binary Authorization breakglass](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--breakglass).\n- `run.googleapis.com/binary-authorization` sets the [Binary Authorization](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--binary-authorization).\n- `run.googleapis.com/client-name` sets the client name calling the Cloud Run API.\n- `run.googleapis.com/custom-audiences` sets the [custom audiences](https://cloud.google.com/sdk/gcloud/reference/alpha/run/deploy#--add-custom-audiences)\nthat can be used in the audience field of ID token for authenticated requests.\n- `run.googleapis.com/description` sets a user defined description for the Service.\n- `run.googleapis.com/ingress` sets the [ingress settings](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--ingress)\nfor the Service. For example, `\"run.googleapis.com/ingress\" = \"all\"`.\n- `run.googleapis.com/launch-stage` sets the [launch stage](https://cloud.google.com/run/docs/troubleshooting#launch-stage-validation)\nwhen a preview feature is used. For example, `\"run.googleapis.com/launch-stage\": \"BETA\"`\n- `run.googleapis.com/minScale` sets the [minimum number of container instances](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--min) of the Service.\n- `run.googleapis.com/scalingMode` sets the type of scaling mode for the service. The supported values for scaling mode are \"manual\" and \"automatic\". If not provided, it defaults to \"automatic\".\n- `run.googleapis.com/manualInstanceCount` sets the total instance count for the service in manual scaling mode. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving.\n**Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.\nPlease refer to the field \u003cspan pulumi-lang-nodejs=\"`effectiveAnnotations`\" pulumi-lang-dotnet=\"`EffectiveAnnotations`\" pulumi-lang-go=\"`effectiveAnnotations`\" pulumi-lang-python=\"`effective_annotations`\" pulumi-lang-yaml=\"`effectiveAnnotations`\" pulumi-lang-java=\"`effectiveAnnotations`\"\u003e`effective_annotations`\u003c/span\u003e for all of the annotations present on the resource.\n"},"generation":{"type":"integer","description":"(Output)\nA sequence number representing a specific generation of the desired state.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field \u003cspan pulumi-lang-nodejs=\"`effectiveLabels`\" pulumi-lang-dotnet=\"`EffectiveLabels`\" pulumi-lang-go=\"`effectiveLabels`\" pulumi-lang-python=\"`effective_labels`\" pulumi-lang-yaml=\"`effectiveLabels`\" pulumi-lang-java=\"`effectiveLabels`\"\u003e`effective_labels`\u003c/span\u003e for all of the labels present on the resource.\n"},"name":{"type":"string","description":"Name must be unique within a Google Cloud project and region.\nIs required when creating resources. Name is primarily intended\nfor creation idempotence and configuration definition. Cannot be updated.\n"},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.\n"},"resourceVersion":{"type":"string","description":"(Output)\nAn opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n"},"selfLink":{"type":"string","description":"(Output)\nSelfLink is a URL representing this object.\n"},"uid":{"type":"string","description":"(Output)\nUID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["annotations","generation","labels","name","namespace","resourceVersion","selfLink","uid"]}}},"gcp:cloudrun/ServiceTemplateSpec:ServiceTemplateSpec":{"properties":{"containerConcurrency":{"type":"integer","description":"ContainerConcurrency specifies the maximum allowed in-flight (concurrent)\nrequests per container of the Revision. If not specified or 0, defaults to 80 when\nrequested CPU \u003e= 1 and defaults to 1 when requested CPU \u003c 1.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainer:ServiceTemplateSpecContainer"},"description":"Containers defines the unit of execution for this Revision.\nStructure is documented below.\n"},"nodeSelector":{"type":"object","additionalProperties":{"type":"string"},"description":"Node Selector describes the hardware requirements of the resources.\nUse the following node selector keys to configure features on a Revision:\n- `run.googleapis.com/accelerator` sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.\n"},"serviceAccountName":{"type":"string","description":"Email address of the IAM service account associated with the revision of the\nservice. The service account represents the identity of the running revision,\nand determines what permissions the revision has. If not provided, the revision\nwill use the project's default service account.\n"},"servingState":{"type":"string","description":"(Output, Deprecated)\nServingState holds a value describing the state the resources\nare in for this Revision.\nIt is expected\nthat the system will manipulate this based on routability and load.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`servingState`\" pulumi-lang-dotnet=\"`ServingState`\" pulumi-lang-go=\"`servingState`\" pulumi-lang-python=\"`serving_state`\" pulumi-lang-yaml=\"`servingState`\" pulumi-lang-java=\"`servingState`\"\u003e`serving_state`\u003c/span\u003e is deprecated and will be removed in a future major release. This field is not supported by the Cloud Run API.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`servingState`\" pulumi-lang-dotnet=\"`ServingState`\" pulumi-lang-go=\"`servingState`\" pulumi-lang-python=\"`serving_state`\" pulumi-lang-yaml=\"`servingState`\" pulumi-lang-java=\"`servingState`\"\u003e`serving_state`\u003c/span\u003e is deprecated and will be removed in a future major release. This field is not supported by the Cloud Run API."},"timeoutSeconds":{"type":"integer","description":"TimeoutSeconds holds the max duration the instance is allowed for responding to a request.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecVolume:ServiceTemplateSpecVolume"},"description":"Volume represents a named volume in a container.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["containerConcurrency","containers","serviceAccountName","servingState","timeoutSeconds"]}}},"gcp:cloudrun/ServiceTemplateSpecContainer:ServiceTemplateSpecContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint.\nThe docker image's CMD is used if this is not provided.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell.\nThe docker image's ENTRYPOINT is used if this is not provided.\n"},"envFroms":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvFrom:ServiceTemplateSpecContainerEnvFrom"},"description":"(Optional, Deprecated)\nList of sources to populate environment variables in the container.\nAll invalid keys will be reported as an event when the container is starting.\nWhen a key exists in multiple sources, the value associated with the last source will\ntake precedence. Values defined by an Env with a duplicate key will take\nprecedence.\nStructure is documented below.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`envFrom`\" pulumi-lang-dotnet=\"`EnvFrom`\" pulumi-lang-go=\"`envFrom`\" pulumi-lang-python=\"`env_from`\" pulumi-lang-yaml=\"`envFrom`\" pulumi-lang-java=\"`envFrom`\"\u003e`env_from`\u003c/span\u003e is deprecated and will be removed in a future major release. This field is not supported by the Cloud Run API.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`envFrom`\" pulumi-lang-dotnet=\"`EnvFrom`\" pulumi-lang-go=\"`envFrom`\" pulumi-lang-python=\"`env_from`\" pulumi-lang-yaml=\"`envFrom`\" pulumi-lang-java=\"`envFrom`\"\u003e`env_from`\u003c/span\u003e is deprecated and will be removed in a future major release. This field is not supported by the Cloud Run API.","willReplaceOnChanges":true},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnv:ServiceTemplateSpecContainerEnv"},"description":"List of environment variables to set in the container.\nStructure is documented below.\n"},"image":{"type":"string","description":"Docker image name. This is most often a reference to a container located\nin the container registry, such as gcr.io/cloudrun/hello\n"},"livenessProbe":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbe:ServiceTemplateSpecContainerLivenessProbe","description":"Periodic probe of container liveness. Container will be restarted if the probe fails. More info:\nhttps://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\nStructure is documented below.\n"},"name":{"type":"string","description":"Name of the container\n"},"ports":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerPort:ServiceTemplateSpecContainerPort"},"description":"List of open ports in the container.\nStructure is documented below.\n"},"readinessProbe":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerReadinessProbe:ServiceTemplateSpecContainerReadinessProbe","description":"Periodic probe of container readiness.\nStructure is documented below.\n"},"resources":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerResources:ServiceTemplateSpecContainerResources","description":"Compute Resources required by this container. Used to set values such as max memory\nStructure is documented below.\n"},"startupProbe":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerStartupProbe:ServiceTemplateSpecContainerStartupProbe","description":"Startup probe of application within the container.\nAll other probes are disabled if a startup probe is provided, until it\nsucceeds. Container will not be added to service endpoints if the probe fails.\nStructure is documented below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerVolumeMount:ServiceTemplateSpecContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\nOnly supports SecretVolumeSources.\nStructure is documented below.\n"},"workingDir":{"type":"string","description":"(Optional, Deprecated)\nContainer's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`workingDir`\" pulumi-lang-dotnet=\"`WorkingDir`\" pulumi-lang-go=\"`workingDir`\" pulumi-lang-python=\"`working_dir`\" pulumi-lang-yaml=\"`workingDir`\" pulumi-lang-java=\"`workingDir`\"\u003e`working_dir`\u003c/span\u003e is deprecated and will be removed in a future major release. This field is not supported by the Cloud Run API.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`workingDir`\" pulumi-lang-dotnet=\"`WorkingDir`\" pulumi-lang-go=\"`workingDir`\" pulumi-lang-python=\"`working_dir`\" pulumi-lang-yaml=\"`workingDir`\" pulumi-lang-java=\"`workingDir`\"\u003e`working_dir`\u003c/span\u003e is deprecated and will be removed in a future major release. This field is not supported by the Cloud Run API.","willReplaceOnChanges":true}},"type":"object","required":["image"],"language":{"nodejs":{"requiredOutputs":["image","name","ports","resources","startupProbe"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerEnv:ServiceTemplateSpecContainerEnv":{"properties":{"name":{"type":"string","description":"Name of the environment variable.\n"},"value":{"type":"string","description":"Defaults to \"\".\n"},"valueFrom":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvValueFrom:ServiceTemplateSpecContainerEnvValueFrom","description":"Source for the environment variable's value. Only supports secret_key_ref.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecContainerEnvFrom:ServiceTemplateSpecContainerEnvFrom":{"properties":{"configMapRef":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvFromConfigMapRef:ServiceTemplateSpecContainerEnvFromConfigMapRef","description":"The ConfigMap to select from.\nStructure is documented below.\n"},"prefix":{"type":"string","description":"An optional identifier to prepend to each key in the ConfigMap.\n"},"secretRef":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvFromSecretRef:ServiceTemplateSpecContainerEnvFromSecretRef","description":"The Secret to select from.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecContainerEnvFromConfigMapRef:ServiceTemplateSpecContainerEnvFromConfigMapRef":{"properties":{"localObjectReference":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference:ServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference","description":"The ConfigMap to select from.\nStructure is documented below.\n"},"optional":{"type":"boolean","description":"Specify whether the ConfigMap must be defined\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference:ServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference":{"properties":{"name":{"type":"string","description":"Name of the referent.\n"}},"type":"object","required":["name"]},"gcp:cloudrun/ServiceTemplateSpecContainerEnvFromSecretRef:ServiceTemplateSpecContainerEnvFromSecretRef":{"properties":{"localObjectReference":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference:ServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference","description":"The Secret to select from.\nStructure is documented below.\n"},"optional":{"type":"boolean","description":"Specify whether the Secret must be defined\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference:ServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference":{"properties":{"name":{"type":"string","description":"Name of the referent.\n"}},"type":"object","required":["name"]},"gcp:cloudrun/ServiceTemplateSpecContainerEnvValueFrom:ServiceTemplateSpecContainerEnvValueFrom":{"properties":{"secretKeyRef":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerEnvValueFromSecretKeyRef:ServiceTemplateSpecContainerEnvValueFromSecretKeyRef","description":"Selects a key (version) of a secret in Secret Manager.\nStructure is documented below.\n"}},"type":"object","required":["secretKeyRef"]},"gcp:cloudrun/ServiceTemplateSpecContainerEnvValueFromSecretKeyRef:ServiceTemplateSpecContainerEnvValueFromSecretKeyRef":{"properties":{"key":{"type":"string","description":"A Cloud Secret Manager secret version. Must be 'latest' for the latest\nversion or an integer for a specific version.\n"},"name":{"type":"string","description":"The name of the secret in Cloud Secret Manager. By default, the secret is assumed to be in the same project.\nIf the secret is in another project, you must define an alias.\nAn alias definition has the form:\n{alias}:projects/{project-id|project-number}/secrets/{secret-name}.\nIf multiple alias definitions are needed, they must be separated by commas.\nThe alias definitions must be set on the run.googleapis.com/secrets annotation.\n"}},"type":"object","required":["key","name"]},"gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbe:ServiceTemplateSpecContainerLivenessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbeGrpc:ServiceTemplateSpecContainerLivenessProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbeHttpGet:ServiceTemplateSpecContainerLivenessProbeHttpGet","description":"HttpGet specifies the http request to perform.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is\ninitiated.\nDefaults to 0 seconds. Minimum value is 0. Maximum value is 3600.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1. Maximum value is 3600.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1. Maximum value is 3600.\nMust be smaller than period_seconds.\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbeGrpc:ServiceTemplateSpecContainerLivenessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbeHttpGet:ServiceTemplateSpecContainerLivenessProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader:ServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader:ServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The header field name.\n"},"value":{"type":"string","description":"The header field value.\n"}},"type":"object","required":["name"]},"gcp:cloudrun/ServiceTemplateSpecContainerPort:ServiceTemplateSpecContainerPort":{"properties":{"containerPort":{"type":"integer","description":"Port number the container listens on. This must be a valid port number (between 1 and 65535). Defaults to \"8080\".\n"},"name":{"type":"string","description":"If specified, used to specify which protocol to use. Allowed values are \"http1\" (HTTP/1) and \"h2c\" (HTTP/2 end-to-end). Defaults to \"http1\".\n"},"protocol":{"type":"string","description":"Protocol for port. Must be \"TCP\". Defaults to \"TCP\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerReadinessProbe:ServiceTemplateSpecContainerReadinessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3.\n"},"grpc":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerReadinessProbeGrpc:ServiceTemplateSpecContainerReadinessProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerReadinessProbeHttpGet:ServiceTemplateSpecContainerReadinessProbeHttpGet","description":"HttpGet specifies the http request to perform.\nStructure is documented below.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds.\n"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the probe to be considered successful after having failed.\nDefaults to 2.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Must be smaller than period_seconds.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failureThreshold","periodSeconds","successThreshold","timeoutSeconds"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerReadinessProbeGrpc:ServiceTemplateSpecContainerReadinessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerReadinessProbeHttpGet:ServiceTemplateSpecContainerReadinessProbeHttpGet":{"properties":{"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["path","port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerResources:ServiceTemplateSpecContainerResources":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Limits describes the maximum amount of compute resources allowed.\nCPU Limit details:\n- For fractional CPU values (e.g. `0.5`, `0.75`, min `0.08`) are also supported.\n- CPU allocation must comply with memory limits and concurrency rules described in:\nhttps://cloud.google.com/run/docs/configuring/services/cpu\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"},"requests":{"type":"object","additionalProperties":{"type":"string"},"description":"Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is\nexplicitly specified, otherwise to an implementation-defined value.\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["limits"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerStartupProbe:ServiceTemplateSpecContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeGrpc:ServiceTemplateSpecContainerStartupProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeHttpGet:ServiceTemplateSpecContainerStartupProbeHttpGet","description":"HttpGet specifies the http request to perform.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is\ninitiated.\nDefaults to 0 seconds. Minimum value is 0. Maximum value is 240.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1. Maximum value is 240.\n"},"tcpSocket":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeTcpSocket:ServiceTemplateSpecContainerStartupProbeTcpSocket","description":"TcpSocket specifies an action involving a TCP port.\nStructure is documented below.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1. Maximum value is 3600.\nMust be smaller than periodSeconds.\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeGrpc:ServiceTemplateSpecContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeHttpGet:ServiceTemplateSpecContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader:ServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader:ServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The header field name.\n"},"value":{"type":"string","description":"The header field value.\n"}},"type":"object","required":["name"]},"gcp:cloudrun/ServiceTemplateSpecContainerStartupProbeTcpSocket:ServiceTemplateSpecContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrun/ServiceTemplateSpecContainerVolumeMount:ServiceTemplateSpecContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted.  Must\nnot contain ':'.\n"},"name":{"type":"string","description":"This must match the Name of a Volume.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name"]},"gcp:cloudrun/ServiceTemplateSpecVolume:ServiceTemplateSpecVolume":{"properties":{"csi":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecVolumeCsi:ServiceTemplateSpecVolumeCsi","description":"A filesystem specified by the Container Storage Interface (CSI).\nStructure is documented below.\n"},"emptyDir":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecVolumeEmptyDir:ServiceTemplateSpecVolumeEmptyDir","description":"Ephemeral storage which can be backed by real disks (HD, SSD), network storage or memory (i.e. tmpfs). For now only in memory (tmpfs) is supported. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).\nStructure is documented below.\n"},"name":{"type":"string","description":"Volume's name.\n"},"nfs":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecVolumeNfs:ServiceTemplateSpecVolumeNfs","description":"A filesystem backed by a Network File System share. This filesystem requires the\nrun.googleapis.com/execution-environment annotation to be unset or set to \"gen2\"\nStructure is documented below.\n"},"secret":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecVolumeSecret:ServiceTemplateSpecVolumeSecret","description":"The secret's value will be presented as the content of a file whose\nname is defined in the item path. If no items are defined, the name of\nthe file is the secret_name.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrun/ServiceTemplateSpecVolumeCsi:ServiceTemplateSpecVolumeCsi":{"properties":{"driver":{"type":"string","description":"Unique name representing the type of file system to be created. Cloud Run supports the following values:\n* gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the\nrun.googleapis.com/execution-environment annotation to be unset or set to \"gen2\"\n"},"readOnly":{"type":"boolean","description":"If true, all mounts created from this volume will be read-only.\n"},"volumeAttributes":{"type":"object","additionalProperties":{"type":"string"},"description":"Driver-specific attributes. The following options are supported for available drivers:\n* gcsfuse.run.googleapis.com\n* bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.\n"}},"type":"object","required":["driver"],"language":{"nodejs":{"requiredOutputs":["driver","readOnly"]}}},"gcp:cloudrun/ServiceTemplateSpecVolumeEmptyDir:ServiceTemplateSpecVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The medium on which the data is stored. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory.\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object"},"gcp:cloudrun/ServiceTemplateSpecVolumeNfs:ServiceTemplateSpecVolumeNfs":{"properties":{"path":{"type":"string","description":"Path exported by the NFS server\n"},"readOnly":{"type":"boolean","description":"If true, mount the NFS volume as read only in all mounts. Defaults to false.\n"},"server":{"type":"string","description":"IP address or hostname of the NFS server\n"}},"type":"object","required":["path","server"]},"gcp:cloudrun/ServiceTemplateSpecVolumeSecret:ServiceTemplateSpecVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Mode bits to use on created files by default. Must be a value between 0000\nand 0777. Defaults to 0644. Directories within the path are not affected by\nthis setting. This might be in conflict with other options that affect the\nfile mode, like fsGroup, and the result can be other mode bits set.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/ServiceTemplateSpecVolumeSecretItem:ServiceTemplateSpecVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the\nsecret_name.\nIf specified, the key will be used as the version to fetch from Cloud\nSecret Manager and the path will be the name of the file exposed in the\nvolume. When items are defined, they must specify a key and a path.\nStructure is documented below.\n"},"secretName":{"type":"string","description":"The name of the secret in Cloud Secret Manager. By default, the secret\nis assumed to be in the same project.\nIf the secret is in another project, you must define an alias.\nAn alias definition has the form:\n{alias}:projects/{project-id|project-number}/secrets/{secret-name}.\nIf multiple alias definitions are needed, they must be separated by\ncommas.\nThe alias definitions must be set on the run.googleapis.com/secrets\nannotation.\n"}},"type":"object","required":["secretName"]},"gcp:cloudrun/ServiceTemplateSpecVolumeSecretItem:ServiceTemplateSpecVolumeSecretItem":{"properties":{"key":{"type":"string","description":"The Cloud Secret Manager secret version.\nCan be 'latest' for the latest value or an integer for a specific version.\n"},"mode":{"type":"integer","description":"Mode bits to use on this file, must be a value between 0000 and 0777. If\nnot specified, the volume defaultMode will be used. This might be in\nconflict with other options that affect the file mode, like fsGroup, and\nthe result can be other mode bits set.\n"},"path":{"type":"string","description":"The relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.\n"}},"type":"object","required":["key","path"]},"gcp:cloudrun/ServiceTraffic:ServiceTraffic":{"properties":{"latestRevision":{"type":"boolean","description":"LatestRevision may be optionally provided to indicate that the latest ready\nRevision of the Configuration should be used for this traffic target. When\nprovided LatestRevision must be true if RevisionName is empty; it must be\nfalse when RevisionName is non-empty.\n"},"percent":{"type":"integer","description":"Percent specifies percent of the traffic to this Revision or Configuration.\n"},"revisionName":{"type":"string","description":"RevisionName of a specific revision to which to send this portion of traffic.\n"},"tag":{"type":"string","description":"Tag is optionally used to expose a dedicated url for referencing this target exclusively.\n"},"url":{"type":"string","description":"(Output)\nURL displays the URL for accessing tagged traffic targets. URL is displayed in status,\nand is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname,\nbut may not contain anything else (e.g. basic auth, url path, etc.)\n"}},"type":"object","required":["percent"],"language":{"nodejs":{"requiredOutputs":["percent","url"]}}},"gcp:cloudrun/getServiceMetadata:getServiceMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\n\nAnnotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted. Use the following annotation\nkeys to configure features on a Service:\n\n- 'run.googleapis.com/binary-authorization-breakglass' sets the [Binary Authorization breakglass](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--breakglass).\n- 'run.googleapis.com/binary-authorization' sets the [Binary Authorization](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--binary-authorization).\n- 'run.googleapis.com/client-name' sets the client name calling the Cloud Run API.\n- 'run.googleapis.com/custom-audiences' sets the [custom audiences](https://cloud.google.com/sdk/gcloud/reference/alpha/run/deploy#--add-custom-audiences)\n  that can be used in the audience field of ID token for authenticated requests.\n- 'run.googleapis.com/description' sets a user defined description for the Service.\n- 'run.googleapis.com/ingress' sets the [ingress settings](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--ingress)\n  for the Service. For example, '\"run.googleapis.com/ingress\" = \"all\"'.\n- 'run.googleapis.com/launch-stage' sets the [launch stage](https://cloud.google.com/run/docs/troubleshooting#launch-stage-validation)\n  when a preview feature is used. For example, '\"run.googleapis.com/launch-stage\": \"BETA\"'\n- 'run.googleapis.com/minScale' sets the [minimum number of container instances](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--min) of the Service.\n- 'run.googleapis.com/scalingMode' sets the type of scaling mode for the service. The supported values for scaling mode are \"manual\" and \"automatic\". If not provided, it defaults to \"automatic\".\n- 'run.googleapis.com/manualInstanceCount' sets the total instance count for the service in manual scaling mode. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving.\n\n**Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.\nPlease refer to the field 'effective_annotations' for all of the annotations present on the resource.\n"},"effectiveAnnotations":{"type":"object","additionalProperties":{"type":"string"},"description":"All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through Terraform, other clients and services.\n"},"effectiveLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.\n","secret":true},"generation":{"type":"integer","description":"A sequence number representing a specific generation of the desired state.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand routes.\n\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field 'effective_labels' for all of the labels present on the resource.\n"},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number.\n"},"pulumiLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The combination of labels configured directly on the resource\n and default labels configured on the provider.\n","secret":true},"resourceVersion":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n"},"selfLink":{"type":"string","description":"SelfLink is a URL representing this object.\n"},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n"}},"type":"object","required":["annotations","effectiveAnnotations","effectiveLabels","generation","labels","namespace","resourceVersion","selfLink","pulumiLabels","uid"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceStatus:getServiceStatus":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceStatusCondition:getServiceStatusCondition"},"description":"Array of observed Service Conditions, indicating the current ready state of the service.\n"},"latestCreatedRevisionName":{"type":"string","description":"From ConfigurationStatus. LatestCreatedRevisionName is the last revision that was created\nfrom this Service's Configuration. It might not be ready yet, for that use\nLatestReadyRevisionName.\n"},"latestReadyRevisionName":{"type":"string","description":"From ConfigurationStatus. LatestReadyRevisionName holds the name of the latest Revision\nstamped out from this Service's Configuration that has had its \"Ready\" condition become\n\"True\".\n"},"observedGeneration":{"type":"integer","description":"ObservedGeneration is the 'Generation' of the Route that was last processed by the\ncontroller.\n\nClients polling for completed reconciliation should poll until observedGeneration =\nmetadata.generation and the Ready condition's status is True or False.\n"},"traffics":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceStatusTraffic:getServiceStatusTraffic"},"description":"Traffic specifies how to distribute traffic over a collection of Knative Revisions\nand Configurations\n"},"url":{"type":"string","description":"From RouteStatus. URL holds the url that will distribute traffic over the provided traffic\ntargets. It generally has the form\nhttps://{route-hash}-{project-hash}-{cluster-level-suffix}.a.run.app\n"}},"type":"object","required":["conditions","latestCreatedRevisionName","latestReadyRevisionName","observedGeneration","traffics","url"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceStatusCondition:getServiceStatusCondition":{"properties":{"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"One-word CamelCase reason for the condition's current status.\n"},"status":{"type":"string","description":"Status of the condition, one of True, False, Unknown.\n"},"type":{"type":"string","description":"Type of domain mapping condition.\n"}},"type":"object","required":["message","reason","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceStatusTraffic:getServiceStatusTraffic":{"properties":{"latestRevision":{"type":"boolean","description":"LatestRevision may be optionally provided to indicate that the latest ready\nRevision of the Configuration should be used for this traffic target. When\nprovided LatestRevision must be true if RevisionName is empty; it must be\nfalse when RevisionName is non-empty.\n"},"percent":{"type":"integer","description":"Percent specifies percent of the traffic to this Revision or Configuration.\n"},"revisionName":{"type":"string","description":"RevisionName of a specific revision to which to send this portion of traffic.\n"},"tag":{"type":"string","description":"Tag is optionally used to expose a dedicated url for referencing this target exclusively.\n"},"url":{"type":"string","description":"URL displays the URL for accessing tagged traffic targets. URL is displayed in status,\nand is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname,\nbut may not contain anything else (e.g. basic auth, url path, etc.)\n"}},"type":"object","required":["latestRevision","percent","revisionName","tag","url"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplate:getServiceTemplate":{"properties":{"metadatas":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateMetadata:getServiceTemplateMetadata"},"description":"Optional metadata for this Revision, including labels and annotations.\nName will be generated by the Configuration. To set minimum instances\nfor this revision, use the \"autoscaling.knative.dev/minScale\" annotation\nkey. To set maximum instances for this revision, use the\n\"autoscaling.knative.dev/maxScale\" annotation key. To set Cloud SQL\nconnections for the revision, use the \"run.googleapis.com/cloudsql-instances\"\nannotation key.\n"},"specs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpec:getServiceTemplateSpec"},"description":"RevisionSpec holds the desired state of the Revision (from the client).\n"}},"type":"object","required":["metadatas","specs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateMetadata:getServiceTemplateMetadata":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Annotations is a key value map stored with a resource that\nmay be set by external tools to store and retrieve arbitrary metadata.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations\n\n**Note**: The Cloud Run API may add additional annotations that were not provided in your config.\nIf terraform plan shows a diff where a server-side annotation is added, you can add it to your config\nor apply the lifecycle.ignore_changes rule to the metadata.0.annotations field.\n\nAnnotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted. Use the following annotation\nkeys to configure features on a Revision template:\n\n- 'autoscaling.knative.dev/maxScale' sets the [maximum number of container\n  instances](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--max-instances) of the Revision to run.\n- 'autoscaling.knative.dev/minScale' sets the [minimum number of container\n  instances](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--min-instances) of the Revision to run.\n- 'run.googleapis.com/client-name' sets the client name calling the Cloud Run API.\n- 'run.googleapis.com/cloudsql-instances' sets the [Cloud SQL\n  instances](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--add-cloudsql-instances) the Revision connects to.\n- 'run.googleapis.com/cpu-throttling' sets whether to throttle the CPU when the container is not actively serving\n  requests. See https://cloud.google.com/sdk/gcloud/reference/run/deploy#--[no-]cpu-throttling.\n- 'run.googleapis.com/encryption-key-shutdown-hours' sets the number of hours to wait before an automatic shutdown\n  server after CMEK key revocation is detected.\n- 'run.googleapis.com/encryption-key' sets the [CMEK key](https://cloud.google.com/run/docs/securing/using-cmek)\n  reference to encrypt the container with.\n- 'run.googleapis.com/execution-environment' sets the [execution\n  environment](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--execution-environment)\n  where the application will run.\n- 'run.googleapis.com/post-key-revocation-action-type' sets the\n  [action type](https://cloud.google.com/sdk/gcloud/reference/run/deploy#--post-key-revocation-action-type)\n  after CMEK key revocation.\n- 'run.googleapis.com/secrets' sets a list of key-value pairs to set as\n  [secrets](https://cloud.google.com/run/docs/configuring/secrets#yaml).\n- 'run.googleapis.com/sessionAffinity' sets whether to enable\n  [session affinity](https://cloud.google.com/sdk/gcloud/reference/beta/run/deploy#--[no-]session-affinity)\n  for connections to the Revision.\n- 'run.googleapis.com/startup-cpu-boost' sets whether to allocate extra CPU to containers on startup.\n  See https://cloud.google.com/sdk/gcloud/reference/run/deploy#--[no-]cpu-boost.\n- 'run.googleapis.com/network-interfaces' sets [Direct VPC egress](https://cloud.google.com/run/docs/configuring/vpc-direct-vpc#yaml)\n  for the Revision.\n- 'run.googleapis.com/vpc-access-connector' sets a [VPC connector](https://cloud.google.com/run/docs/configuring/connecting-vpc#terraform_1)\n  for the Revision.\n- 'run.googleapis.com/vpc-access-egress' sets the outbound traffic to send through the VPC connector for this resource.\n  See https://cloud.google.com/sdk/gcloud/reference/run/deploy#--vpc-egress.\n- 'run.googleapis.com/gpu-zonal-redundancy-disabled' sets\n  [GPU zonal redundancy](https://cloud.google.com/run/docs/configuring/services/gpu-zonal-redundancy) for the Revision.\n- 'run.googleapis.com/health-check-disabled' disabled health checking containers during deployment.\n"},"generation":{"type":"integer","description":"A sequence number representing a specific generation of the desired state.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of string keys and values that can be used to organize and categorize\n(scope and select) objects.\n"},"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"namespace":{"type":"string","description":"In Cloud Run the namespace must be equal to either the\nproject ID or project number. It will default to the resource's project.\n"},"resourceVersion":{"type":"string","description":"An opaque value that represents the internal version of this object that\ncan be used by clients to determine when objects have changed. May be used\nfor optimistic concurrency, change detection, and the watch operation on a\nresource or set of resources. They may only be valid for a\nparticular resource or set of resources.\n"},"selfLink":{"type":"string","description":"SelfLink is a URL representing this object.\n"},"uid":{"type":"string","description":"UID is a unique id generated by the server on successful creation of a resource and is not\nallowed to change on PUT operations.\n"}},"type":"object","required":["annotations","generation","labels","name","namespace","resourceVersion","selfLink","uid"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpec:getServiceTemplateSpec":{"properties":{"containerConcurrency":{"type":"integer","description":"ContainerConcurrency specifies the maximum allowed in-flight (concurrent)\nrequests per container of the Revision. If not specified or 0, defaults to 80 when\nrequested CPU \u003e= 1 and defaults to 1 when requested CPU \u003c 1.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainer:getServiceTemplateSpecContainer"},"description":"Containers defines the unit of execution for this Revision.\n"},"nodeSelector":{"type":"object","additionalProperties":{"type":"string"},"description":"Node Selector describes the hardware requirements of the resources.\nUse the following node selector keys to configure features on a Revision:\n  - 'run.googleapis.com/accelerator' sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.\n"},"serviceAccountName":{"type":"string","description":"Email address of the IAM service account associated with the revision of the\nservice. The service account represents the identity of the running revision,\nand determines what permissions the revision has. If not provided, the revision\nwill use the project's default service account.\n"},"servingState":{"type":"string","description":"ServingState holds a value describing the state the resources\nare in for this Revision.\nIt is expected\nthat the system will manipulate this based on routability and load.\n"},"timeoutSeconds":{"type":"integer","description":"TimeoutSeconds holds the max duration the instance is allowed for responding to a request.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecVolume:getServiceTemplateSpecVolume"},"description":"Volume represents a named volume in a container.\n"}},"type":"object","required":["containerConcurrency","containers","nodeSelector","serviceAccountName","servingState","timeoutSeconds","volumes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainer:getServiceTemplateSpecContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint.\nThe docker image's CMD is used if this is not provided.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell.\nThe docker image's ENTRYPOINT is used if this is not provided.\n"},"envFroms":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvFrom:getServiceTemplateSpecContainerEnvFrom"},"description":"List of sources to populate environment variables in the container.\nAll invalid keys will be reported as an event when the container is starting.\nWhen a key exists in multiple sources, the value associated with the last source will\ntake precedence. Values defined by an Env with a duplicate key will take\nprecedence.\n"},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnv:getServiceTemplateSpecContainerEnv"},"description":"List of environment variables to set in the container.\n"},"image":{"type":"string","description":"Docker image name. This is most often a reference to a container located\nin the container registry, such as gcr.io/cloudrun/hello\n"},"livenessProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbe:getServiceTemplateSpecContainerLivenessProbe"},"description":"Periodic probe of container liveness. Container will be restarted if the probe fails.\n"},"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"ports":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerPort:getServiceTemplateSpecContainerPort"},"description":"List of open ports in the container.\n"},"readinessProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerReadinessProbe:getServiceTemplateSpecContainerReadinessProbe"},"description":"Periodic probe of container readiness.\n"},"resources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerResource:getServiceTemplateSpecContainerResource"},"description":"Compute Resources required by this container. Used to set values such as max memory\n"},"startupProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerStartupProbe:getServiceTemplateSpecContainerStartupProbe"},"description":"Startup probe of application within the container.\nAll other probes are disabled if a startup probe is provided, until it\nsucceeds. Container will not be added to service endpoints if the probe fails.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerVolumeMount:getServiceTemplateSpecContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\nOnly supports SecretVolumeSources.\n"},"workingDir":{"type":"string","description":"Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\n"}},"type":"object","required":["args","commands","envs","envFroms","image","livenessProbes","name","ports","readinessProbes","resources","startupProbes","volumeMounts","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnv:getServiceTemplateSpecContainerEnv":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"value":{"type":"string","description":"Defaults to \"\".\n"},"valueFroms":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvValueFrom:getServiceTemplateSpecContainerEnvValueFrom"},"description":"Source for the environment variable's value. Only supports secret_key_ref.\n"}},"type":"object","required":["name","value","valueFroms"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvFrom:getServiceTemplateSpecContainerEnvFrom":{"properties":{"configMapReves":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvFromConfigMapRef:getServiceTemplateSpecContainerEnvFromConfigMapRef"},"description":"The ConfigMap to select from.\n"},"prefix":{"type":"string","description":"An optional identifier to prepend to each key in the ConfigMap.\n"},"secretReves":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvFromSecretRef:getServiceTemplateSpecContainerEnvFromSecretRef"},"description":"The Secret to select from.\n"}},"type":"object","required":["configMapReves","prefix","secretReves"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvFromConfigMapRef:getServiceTemplateSpecContainerEnvFromConfigMapRef":{"properties":{"localObjectReferences":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference:getServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference"},"description":"The ConfigMap to select from.\n"},"optional":{"type":"boolean","description":"Specify whether the ConfigMap must be defined\n"}},"type":"object","required":["localObjectReferences","optional"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference:getServiceTemplateSpecContainerEnvFromConfigMapRefLocalObjectReference":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run Service.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvFromSecretRef:getServiceTemplateSpecContainerEnvFromSecretRef":{"properties":{"localObjectReferences":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference:getServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference"},"description":"The Secret to select from.\n"},"optional":{"type":"boolean","description":"Specify whether the Secret must be defined\n"}},"type":"object","required":["localObjectReferences","optional"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference:getServiceTemplateSpecContainerEnvFromSecretRefLocalObjectReference":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run Service.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvValueFrom:getServiceTemplateSpecContainerEnvValueFrom":{"properties":{"secretKeyReves":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerEnvValueFromSecretKeyRef:getServiceTemplateSpecContainerEnvValueFromSecretKeyRef"},"description":"Selects a key (version) of a secret in Secret Manager.\n"}},"type":"object","required":["secretKeyReves"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerEnvValueFromSecretKeyRef:getServiceTemplateSpecContainerEnvValueFromSecretKeyRef":{"properties":{"key":{"type":"string","description":"A Cloud Secret Manager secret version. Must be 'latest' for the latest\nversion or an integer for a specific version.\n"},"name":{"type":"string","description":"The name of the Cloud Run Service.\n"}},"type":"object","required":["key","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbe:getServiceTemplateSpecContainerLivenessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbeGrpc:getServiceTemplateSpecContainerLivenessProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbeHttpGet:getServiceTemplateSpecContainerLivenessProbeHttpGet"},"description":"HttpGet specifies the http request to perform.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is\ninitiated.\nDefaults to 0 seconds. Minimum value is 0. Maximum value is 3600.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1. Maximum value is 3600.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1. Maximum value is 3600.\nMust be smaller than period_seconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbeGrpc:getServiceTemplateSpecContainerLivenessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbeHttpGet:getServiceTemplateSpecContainerLivenessProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader:getServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader:getServiceTemplateSpecContainerLivenessProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"value":{"type":"string","description":"The header field value.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerPort:getServiceTemplateSpecContainerPort":{"properties":{"containerPort":{"type":"integer","description":"Port number the container listens on. This must be a valid port number (between 1 and 65535). Defaults to \"8080\".\n"},"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"protocol":{"type":"string","description":"Protocol for port. Must be \"TCP\". Defaults to \"TCP\".\n"}},"type":"object","required":["containerPort","name","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerReadinessProbe:getServiceTemplateSpecContainerReadinessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerReadinessProbeGrpc:getServiceTemplateSpecContainerReadinessProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerReadinessProbeHttpGet:getServiceTemplateSpecContainerReadinessProbeHttpGet"},"description":"HttpGet specifies the http request to perform.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds.\n"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the probe to be considered successful after having failed.\nDefaults to 2.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Must be smaller than period_seconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","periodSeconds","successThreshold","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerReadinessProbeGrpc:getServiceTemplateSpecContainerReadinessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerReadinessProbeHttpGet:getServiceTemplateSpecContainerReadinessProbeHttpGet":{"properties":{"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerResource:getServiceTemplateSpecContainerResource":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Limits describes the maximum amount of compute resources allowed.\nCPU Limit details:\n- For fractional CPU values (e.g. '0.5', '0.75', min '0.08') are also supported.\n- CPU allocation must comply with memory limits and concurrency rules described in:\n  https://cloud.google.com/run/docs/configuring/services/cpu\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"},"requests":{"type":"object","additionalProperties":{"type":"string"},"description":"Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is\nexplicitly specified, otherwise to an implementation-defined value.\nThe values of the map is string form of the 'quantity' k8s type:\nhttps://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"}},"type":"object","required":["limits","requests"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerStartupProbe:getServiceTemplateSpecContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeGrpc:getServiceTemplateSpecContainerStartupProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeHttpGet:getServiceTemplateSpecContainerStartupProbeHttpGet"},"description":"HttpGet specifies the http request to perform.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is\ninitiated.\nDefaults to 0 seconds. Minimum value is 0. Maximum value is 240.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1. Maximum value is 240.\n"},"tcpSockets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeTcpSocket:getServiceTemplateSpecContainerStartupProbeTcpSocket"},"description":"TcpSocket specifies an action involving a TCP port.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1. Maximum value is 3600.\nMust be smaller than periodSeconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","tcpSockets","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeGrpc:getServiceTemplateSpecContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeHttpGet:getServiceTemplateSpecContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader:getServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader:getServiceTemplateSpecContainerStartupProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"value":{"type":"string","description":"The header field value.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerStartupProbeTcpSocket:getServiceTemplateSpecContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecContainerVolumeMount:getServiceTemplateSpecContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted.  Must\nnot contain ':'.\n"},"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name","subPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecVolume:getServiceTemplateSpecVolume":{"properties":{"csis":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecVolumeCsi:getServiceTemplateSpecVolumeCsi"},"description":"A filesystem specified by the Container Storage Interface (CSI).\n"},"emptyDirs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecVolumeEmptyDir:getServiceTemplateSpecVolumeEmptyDir"},"description":"Ephemeral storage which can be backed by real disks (HD, SSD), network storage or memory (i.e. tmpfs). For now only in memory (tmpfs) is supported. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).\n"},"name":{"type":"string","description":"The name of the Cloud Run Service.\n"},"nfs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecVolumeNf:getServiceTemplateSpecVolumeNf"},"description":"A filesystem backed by a Network File System share. This filesystem requires the\nrun.googleapis.com/execution-environment annotation to be unset or set to \"gen2\"\n"},"secrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecVolumeSecret:getServiceTemplateSpecVolumeSecret"},"description":"The secret's value will be presented as the content of a file whose\nname is defined in the item path. If no items are defined, the name of\nthe file is the secret_name.\n"}},"type":"object","required":["csis","emptyDirs","name","nfs","secrets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecVolumeCsi:getServiceTemplateSpecVolumeCsi":{"properties":{"driver":{"type":"string","description":"Unique name representing the type of file system to be created. Cloud Run supports the following values:\n  * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the\n    run.googleapis.com/execution-environment annotation to be unset or set to \"gen2\"\n"},"readOnly":{"type":"boolean","description":"If true, all mounts created from this volume will be read-only.\n"},"volumeAttributes":{"type":"object","additionalProperties":{"type":"string"},"description":"Driver-specific attributes. The following options are supported for available drivers:\n  * gcsfuse.run.googleapis.com\n    * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.\n"}},"type":"object","required":["driver","readOnly","volumeAttributes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecVolumeEmptyDir:getServiceTemplateSpecVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The medium on which the data is stored. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory.\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object","required":["medium","sizeLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecVolumeNf:getServiceTemplateSpecVolumeNf":{"properties":{"path":{"type":"string","description":"Path exported by the NFS server\n"},"readOnly":{"type":"boolean","description":"If true, mount the NFS volume as read only in all mounts. Defaults to false.\n"},"server":{"type":"string","description":"IP address or hostname of the NFS server\n"}},"type":"object","required":["path","readOnly","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecVolumeSecret:getServiceTemplateSpecVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Mode bits to use on created files by default. Must be a value between 0000\nand 0777. Defaults to 0644. Directories within the path are not affected by\nthis setting. This might be in conflict with other options that affect the\nfile mode, like fsGroup, and the result can be other mode bits set.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrun/getServiceTemplateSpecVolumeSecretItem:getServiceTemplateSpecVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the\nsecret_name.\nIf specified, the key will be used as the version to fetch from Cloud\nSecret Manager and the path will be the name of the file exposed in the\nvolume. When items are defined, they must specify a key and a path.\n"},"secretName":{"type":"string","description":"The name of the secret in Cloud Secret Manager. By default, the secret\nis assumed to be in the same project.\nIf the secret is in another project, you must define an alias.\nAn alias definition has the form:\n{alias}:projects/{project-id|project-number}/secrets/{secret-name}.\nIf multiple alias definitions are needed, they must be separated by\ncommas.\nThe alias definitions must be set on the run.googleapis.com/secrets\nannotation.\n"}},"type":"object","required":["defaultMode","items","secretName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTemplateSpecVolumeSecretItem:getServiceTemplateSpecVolumeSecretItem":{"properties":{"key":{"type":"string","description":"The Cloud Secret Manager secret version.\nCan be 'latest' for the latest value or an integer for a specific version.\n"},"mode":{"type":"integer","description":"Mode bits to use on this file, must be a value between 0000 and 0777. If\nnot specified, the volume defaultMode will be used. This might be in\nconflict with other options that affect the file mode, like fsGroup, and\nthe result can be other mode bits set.\n"},"path":{"type":"string","description":"The relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.\n"}},"type":"object","required":["key","mode","path"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrun/getServiceTraffic:getServiceTraffic":{"properties":{"latestRevision":{"type":"boolean","description":"LatestRevision may be optionally provided to indicate that the latest ready\nRevision of the Configuration should be used for this traffic target. When\nprovided LatestRevision must be true if RevisionName is empty; it must be\nfalse when RevisionName is non-empty.\n"},"percent":{"type":"integer","description":"Percent specifies percent of the traffic to this Revision or Configuration.\n"},"revisionName":{"type":"string","description":"RevisionName of a specific revision to which to send this portion of traffic.\n"},"tag":{"type":"string","description":"Tag is optionally used to expose a dedicated url for referencing this target exclusively.\n"},"url":{"type":"string","description":"URL displays the URL for accessing tagged traffic targets. URL is displayed in status,\nand is disallowed on spec. URL must contain a scheme (e.g. http://) and a hostname,\nbut may not contain anything else (e.g. basic auth, url path, etc.)\n"}},"type":"object","required":["latestRevision","percent","revisionName","tag","url"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/JobBinaryAuthorization:JobBinaryAuthorization":{"properties":{"breakglassJustification":{"type":"string","description":"If present, indicates to use Breakglass using this justification. If useDefault is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass\n"},"policy":{"type":"string","description":"The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}\n"},"useDefault":{"type":"boolean","description":"If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.\n"}},"type":"object"},"gcp:cloudrunv2/JobCondition:JobCondition":{"properties":{"executionReason":{"type":"string","description":"(Output)\nA reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"(Output)\nLast time the condition transitioned from one status to another.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nA common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"(Output)\nA reason for the revision condition.\n"},"severity":{"type":"string","description":"(Output)\nHow to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"(Output)\nState of the condition.\n"},"type":{"type":"string","description":"(Output)\ntype is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"]}}},"gcp:cloudrunv2/JobIamBindingCondition:JobIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrunv2/JobIamMemberCondition:JobIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrunv2/JobLatestCreatedExecution:JobLatestCreatedExecution":{"properties":{"completionTime":{"type":"string","description":"(Output)\nCompletion timestamp of the execution.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"createTime":{"type":"string","description":"(Output)\nCreation timestamp of the execution.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"name":{"type":"string","description":"Name of the Job.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["completionTime","createTime","name"]}}},"gcp:cloudrunv2/JobTemplate:JobTemplate":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects.\nCloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected.\nAll system annotations in v1 now have a corresponding field in v2 ExecutionTemplate.\nThis field follows Kubernetes annotations' namespacing, limits, and rules.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter,\nor break down billing charges by team, component, environment, state, etc. For more information, visit https://docs.cloud.google.com/resource-manager/docs/creating-managing-labels or\nhttps://cloud.google.com/run/docs/configuring/labels.\nCloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected.\nAll system labels in v1 now have a corresponding field in v2 ExecutionTemplate.\n"},"parallelism":{"type":"integer","description":"Specifies the maximum desired number of tasks the execution should run at given time. Must be \u003c= taskCount. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed remaining, i.e. when the work left to do is less than max parallelism.\n"},"taskCount":{"type":"integer","description":"Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n"},"template":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplate:JobTemplateTemplate","description":"Describes the task(s) that will be created when executing an execution\nStructure is documented below.\n"}},"type":"object","required":["template"],"language":{"nodejs":{"requiredOutputs":["parallelism","taskCount","template"]}}},"gcp:cloudrunv2/JobTemplateTemplate:JobTemplateTemplate":{"properties":{"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainer:JobTemplateTemplateContainer"},"description":"Holds the single container that defines the unit of execution for this task.\nStructure is documented below.\n"},"encryptionKey":{"type":"string","description":"A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek\n"},"executionEnvironment":{"type":"string","description":"The execution environment being used to host this Task.\nPossible values are: `EXECUTION_ENVIRONMENT_GEN1`, `EXECUTION_ENVIRONMENT_GEN2`.\n"},"gpuZonalRedundancyDisabled":{"type":"boolean","description":"True if GPU zonal redundancy is disabled on this execution.\n"},"maxRetries":{"type":"integer","description":"Number of retries allowed per Task, before marking this Task failed. Defaults to 3. Minimum value is 0.\n"},"nodeSelector":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateNodeSelector:JobTemplateTemplateNodeSelector","description":"Node Selector describes the hardware requirements of the resources.\nStructure is documented below.\n"},"serviceAccount":{"type":"string","description":"Email address of the IAM service account associated with the Task of a Job. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account.\n"},"timeout":{"type":"string","description":"Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolume:JobTemplateTemplateVolume"},"description":"A list of Volumes to make available to containers.\nStructure is documented below.\n"},"vpcAccess":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVpcAccess:JobTemplateTemplateVpcAccess","description":"VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["containers","executionEnvironment","serviceAccount","timeout"]}}},"gcp:cloudrunv2/JobTemplateTemplateContainer:JobTemplateTemplateContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n"},"dependsOns":{"type":"array","items":{"type":"string"},"description":"Names of the containers that must start before this container.\n"},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerEnv:JobTemplateTemplateContainerEnv"},"description":"List of environment variables to set in the container.\nStructure is documented below.\n"},"image":{"type":"string","description":"URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images\n"},"name":{"type":"string","description":"Name of the container specified as a DNS_LABEL.\n"},"ports":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerPort:JobTemplateTemplateContainerPort"},"description":"List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible.\nIf omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on\nStructure is documented below.\n"},"resources":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerResources:JobTemplateTemplateContainerResources","description":"Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\nStructure is documented below.\n"},"startupProbe":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbe:JobTemplateTemplateContainerStartupProbe","description":"Startup probe of application within the container.\nAll other probes are disabled if a startup probe is provided, until it\nsucceeds. Container will not be added to service endpoints if the probe fails.\nStructure is documented below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerVolumeMount:JobTemplateTemplateContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\nStructure is documented below.\n"},"workingDir":{"type":"string","description":"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.\n"}},"type":"object","required":["image"],"language":{"nodejs":{"requiredOutputs":["image","resources","startupProbe"]}}},"gcp:cloudrunv2/JobTemplateTemplateContainerEnv:JobTemplateTemplateContainerEnv":{"properties":{"name":{"type":"string","description":"Name of the environment variable. Must be a C_IDENTIFIER, and mnay not exceed 32768 characters.\n"},"value":{"type":"string","description":"Literal value of the environment variable. Defaults to \"\" and the maximum allowed length is 32768 characters. Variable references are not supported in Cloud Run.\n"},"valueSource":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerEnvValueSource:JobTemplateTemplateContainerEnvValueSource","description":"Source for the environment variable's value.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/JobTemplateTemplateContainerEnvValueSource:JobTemplateTemplateContainerEnvValueSource":{"properties":{"secretKeyRef":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerEnvValueSourceSecretKeyRef:JobTemplateTemplateContainerEnvValueSourceSecretKeyRef","description":"Selects a secret and a specific version from Cloud Secret Manager.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudrunv2/JobTemplateTemplateContainerEnvValueSourceSecretKeyRef:JobTemplateTemplateContainerEnvValueSourceSecretKeyRef":{"properties":{"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secretName} if the secret is in the same project. projects/{project}/secrets/{secretName} if the secret is in a different project.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.\n"}},"type":"object","required":["secret","version"]},"gcp:cloudrunv2/JobTemplateTemplateContainerPort:JobTemplateTemplateContainerPort":{"properties":{"containerPort":{"type":"integer","description":"Port number the container listens on. This must be a valid TCP port number, 0 \u003c containerPort \u003c 65536.\n"},"name":{"type":"string","description":"If specified, used to specify which protocol to use. Allowed values are \"http1\" and \"h2c\".\n"}},"type":"object"},"gcp:cloudrunv2/JobTemplateTemplateContainerResources:JobTemplateTemplateContainerResources":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Only memory, CPU, and nvidia.com/gpu are supported. Use key \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e for CPU limit, \u003cspan pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\"\u003e`memory`\u003c/span\u003e for memory limit, `nvidia.com/gpu` for gpu limit. Note: The only supported values for CPU are '1', '2', '4', '6', and '8'. Setting 4 CPU requires at least 2Gi of memory, setting 6 or more CPU requires at least 4Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["limits"]}}},"gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbe:JobTemplateTemplateContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeGrpc:JobTemplateTemplateContainerStartupProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeHttpGet:JobTemplateTemplateContainerStartupProbeHttpGet","description":"HttpGet specifies the http request to perform.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is\ninitiated.\nDefaults to 0 seconds. Minimum value is 0. Maximum value is 240.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1. Maximum value is 240.\n"},"tcpSocket":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeTcpSocket:JobTemplateTemplateContainerStartupProbeTcpSocket","description":"TcpSocket specifies an action involving a TCP port.\nStructure is documented below.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1. Maximum value is 3600.\nMust be smaller than periodSeconds.\n"}},"type":"object"},"gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeGrpc:JobTemplateTemplateContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeHttpGet:JobTemplateTemplateContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeHttpGetHttpHeader:JobTemplateTemplateContainerStartupProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeHttpGetHttpHeader:JobTemplateTemplateContainerStartupProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The header field name.\n"},"value":{"type":"string","description":"The header field value.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/JobTemplateTemplateContainerStartupProbeTcpSocket:JobTemplateTemplateContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/JobTemplateTemplateContainerVolumeMount:JobTemplateTemplateContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be /cloudsql. All instances defined in the Volume will be available as /cloudsql/[instance]. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run\n"},"name":{"type":"string","description":"This must match the Name of a Volume.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name"]},"gcp:cloudrunv2/JobTemplateTemplateNodeSelector:JobTemplateTemplateNodeSelector":{"properties":{"accelerator":{"type":"string","description":"The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/jobs/gpu for configuring GPU.\n"}},"type":"object","required":["accelerator"]},"gcp:cloudrunv2/JobTemplateTemplateVolume:JobTemplateTemplateVolume":{"properties":{"cloudSqlInstance":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolumeCloudSqlInstance:JobTemplateTemplateVolumeCloudSqlInstance","description":"For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.\nStructure is documented below.\n"},"emptyDir":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolumeEmptyDir:JobTemplateTemplateVolumeEmptyDir","description":"Ephemeral storage used as a shared volume.\nStructure is documented below.\n"},"gcs":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolumeGcs:JobTemplateTemplateVolumeGcs","description":"Cloud Storage bucket mounted as a volume using GCSFuse.\nStructure is documented below.\n"},"name":{"type":"string","description":"Volume's name.\n"},"nfs":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolumeNfs:JobTemplateTemplateVolumeNfs","description":"NFS share mounted as a volume.\nStructure is documented below.\n"},"secret":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolumeSecret:JobTemplateTemplateVolumeSecret","description":"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/JobTemplateTemplateVolumeCloudSqlInstance:JobTemplateTemplateVolumeCloudSqlInstance":{"properties":{"instances":{"type":"array","items":{"type":"string"},"description":"The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}\n"}},"type":"object"},"gcp:cloudrunv2/JobTemplateTemplateVolumeEmptyDir:JobTemplateTemplateVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The different types of medium supported for EmptyDir.\nDefault value is `MEMORY`.\nPossible values are: `MEMORY`.\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object"},"gcp:cloudrunv2/JobTemplateTemplateVolumeGcs:JobTemplateTemplateVolumeGcs":{"properties":{"bucket":{"type":"string","description":"Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket.\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"A list of flags to pass to the gcsfuse command for configuring this volume.\nFlags should be passed without leading dashes.\n"},"readOnly":{"type":"boolean","description":"If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write.\n"}},"type":"object","required":["bucket"]},"gcp:cloudrunv2/JobTemplateTemplateVolumeNfs:JobTemplateTemplateVolumeNfs":{"properties":{"path":{"type":"string","description":"Path that is exported by the NFS server.\n"},"readOnly":{"type":"boolean","description":"If true, mount this volume as read-only in all mounts.\n"},"server":{"type":"string","description":"Hostname or IP address of the NFS server.\n"}},"type":"object","required":["server"]},"gcp:cloudrunv2/JobTemplateTemplateVolumeSecret:JobTemplateTemplateVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVolumeSecretItem:JobTemplateTemplateVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.\nStructure is documented below.\n"},"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.\n"}},"type":"object","required":["secret"]},"gcp:cloudrunv2/JobTemplateTemplateVolumeSecretItem:JobTemplateTemplateVolumeSecretItem":{"properties":{"mode":{"type":"integer","description":"Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used.\n"},"path":{"type":"string","description":"The relative path of the secret in the container.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version\n"}},"type":"object","required":["path","version"]},"gcp:cloudrunv2/JobTemplateTemplateVpcAccess:JobTemplateTemplateVpcAccess":{"properties":{"connector":{"type":"string","description":"VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.\n"},"egress":{"type":"string","description":"Traffic VPC egress settings.\nPossible values are: `ALL_TRAFFIC`, `PRIVATE_RANGES_ONLY`.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/JobTemplateTemplateVpcAccessNetworkInterface:JobTemplateTemplateVpcAccessNetworkInterface"},"description":"Direct VPC egress settings. Currently only single network interface is supported.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["egress"]}}},"gcp:cloudrunv2/JobTemplateTemplateVpcAccessNetworkInterface:JobTemplateTemplateVpcAccessNetworkInterface":{"properties":{"network":{"type":"string","description":"The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be\nlooked up from the subnetwork.\n"},"subnetwork":{"type":"string","description":"The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the\nsubnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Run job.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["network","subnetwork"]}}},"gcp:cloudrunv2/JobTerminalCondition:JobTerminalCondition":{"properties":{"executionReason":{"type":"string","description":"(Output)\nA reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"(Output)\nLast time the condition transitioned from one status to another.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nA common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"(Output)\nA reason for the revision condition.\n"},"severity":{"type":"string","description":"(Output)\nHow to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"(Output)\nState of the condition.\n"},"type":{"type":"string","description":"(Output)\ntype is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"]}}},"gcp:cloudrunv2/ServiceBinaryAuthorization:ServiceBinaryAuthorization":{"properties":{"breakglassJustification":{"type":"string","description":"If present, indicates to use Breakglass using this justification. If useDefault is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass\n"},"policy":{"type":"string","description":"The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}\n"},"useDefault":{"type":"boolean","description":"If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.\n"}},"type":"object"},"gcp:cloudrunv2/ServiceBuildConfig:ServiceBuildConfig":{"properties":{"baseImage":{"type":"string","description":"The base image used to build the function.\n"},"enableAutomaticUpdates":{"type":"boolean","description":"Sets whether the function will receive automatic base image updates.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"User-provided build-time environment variables for the function.\n"},"functionTarget":{"type":"string","description":"The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named \"function\".\n"},"imageUri":{"type":"string","description":"Artifact Registry URI to store the built image.\n"},"name":{"type":"string","description":"(Output)\nThe Cloud Build name of the latest successful deployment of the function.\n"},"serviceAccount":{"type":"string","description":"Service account to be used for building the container. The format of this field is `projects/{projectId}/serviceAccounts/{serviceAccountEmail}`.\n"},"sourceLocation":{"type":"string","description":"The Cloud Storage bucket URI where the function source code is located.\n"},"workerPool":{"type":"string","description":"Name of the Cloud Build Custom Worker Pool that should be used to build the Cloud Run function. The format of this field is `projects/{project}/locations/{region}/workerPools/{workerPool}` where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:cloudrunv2/ServiceCondition:ServiceCondition":{"properties":{"executionReason":{"type":"string","description":"(Output)\nA reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"(Output)\nLast time the condition transitioned from one status to another.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nA common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"(Output)\nA reason for the revision condition.\n"},"severity":{"type":"string","description":"(Output)\nHow to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"(Output)\nState of the condition.\n"},"type":{"type":"string","description":"(Output)\nThe allocation type for this traffic target.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"]}}},"gcp:cloudrunv2/ServiceIamBindingCondition:ServiceIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrunv2/ServiceIamMemberCondition:ServiceIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrunv2/ServiceMultiRegionSettings:ServiceMultiRegionSettings":{"properties":{"multiRegionId":{"type":"string","description":"(Output)\nSystem-generated unique id for the multi-region Service.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The list of regions to deploy the multi-region Service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["multiRegionId"]}}},"gcp:cloudrunv2/ServiceScaling:ServiceScaling":{"properties":{"manualInstanceCount":{"type":"integer","description":"Total instance count for the service in manual scaling mode. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving.\n"},"maxInstanceCount":{"type":"integer","description":"Combined maximum number of instances for all revisions receiving traffic.\n"},"minInstanceCount":{"type":"integer","description":"Minimum number of instances for the service, to be divided among all revisions receiving traffic.\n"},"scalingMode":{"type":"string","description":"The [scaling mode](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#scalingmode) for the service.\nPossible values are: `AUTOMATIC`, `MANUAL`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["manualInstanceCount","maxInstanceCount","minInstanceCount"]}}},"gcp:cloudrunv2/ServiceTemplate:ServiceTemplate":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects.\nCloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected.\nAll system annotations in v1 now have a corresponding field in v2 RevisionTemplate.\nThis field follows Kubernetes annotations' namespacing, limits, and rules.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainer:ServiceTemplateContainer"},"description":"Holds the containers that define the unit of execution for this Service.\nStructure is documented below.\n"},"encryptionKey":{"type":"string","description":"A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek\n"},"executionEnvironment":{"type":"string","description":"The sandbox environment to host this Revision.\nPossible values are: `EXECUTION_ENVIRONMENT_GEN1`, `EXECUTION_ENVIRONMENT_GEN2`.\n"},"gpuZonalRedundancyDisabled":{"type":"boolean","description":"True if GPU zonal redundancy is disabled on this revision.\n"},"healthCheckDisabled":{"type":"boolean","description":"Disables health checking containers during deployment.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc.\nFor more information, visit https://docs.cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels.\nCloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected.\nAll system labels in v1 now have a corresponding field in v2 RevisionTemplate.\n"},"maxInstanceRequestConcurrency":{"type":"integer","description":"Sets the maximum number of requests that each serving instance can receive.\nIf not specified or 0, defaults to 80 when requested CPU \u003e= 1 and defaults to 1 when requested CPU \u003c 1.\n"},"nodeSelector":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateNodeSelector:ServiceTemplateNodeSelector","description":"Node Selector describes the hardware requirements of the resources.\nStructure is documented below.\n"},"revision":{"type":"string","description":"The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.\n"},"scaling":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateScaling:ServiceTemplateScaling","description":"Scaling settings for this Revision.\nStructure is documented below.\n"},"serviceAccount":{"type":"string","description":"Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.\n"},"serviceMesh":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateServiceMesh:ServiceTemplateServiceMesh","description":"(Optional, Beta)\nEnables Cloud Service Mesh for this Revision.\nStructure is documented below.\n"},"sessionAffinity":{"type":"boolean","description":"Enables session affinity. For more information, go to https://cloud.google.com/run/docs/configuring/session-affinity\n"},"timeout":{"type":"string","description":"Max allowed time for an instance to respond to a request.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolume:ServiceTemplateVolume"},"description":"A list of Volumes to make available to containers.\nStructure is documented below.\n"},"vpcAccess":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVpcAccess:ServiceTemplateVpcAccess","description":"VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxInstanceRequestConcurrency","scaling","serviceAccount","timeout"]}}},"gcp:cloudrunv2/ServiceTemplateContainer:ServiceTemplateContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.\n"},"baseImageUri":{"type":"string","description":"Base image for this container. If set, it indicates that the service is enrolled into automatic base image update.\n"},"buildInfos":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerBuildInfo:ServiceTemplateContainerBuildInfo"},"description":"(Output)\nThe build info of the container image.\nStructure is documented below.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n"},"dependsOns":{"type":"array","items":{"type":"string"},"description":"Containers which should be started before this container. If specified the container will wait to start until all containers with the listed names are healthy.\n"},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerEnv:ServiceTemplateContainerEnv"},"description":"List of environment variables to set in the container.\nStructure is documented below.\n"},"image":{"type":"string","description":"URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images\n"},"livenessProbe":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerLivenessProbe:ServiceTemplateContainerLivenessProbe","description":"Periodic probe of container liveness. Container will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\nStructure is documented below.\n"},"name":{"type":"string","description":"Name of the container specified as a DNS_LABEL.\n"},"ports":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerPorts:ServiceTemplateContainerPorts","description":"List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible.\nIf omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on\nStructure is documented below.\n"},"readinessProbe":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerReadinessProbe:ServiceTemplateContainerReadinessProbe","description":"Periodic probe of container readiness.\nStructure is documented below.\n"},"resources":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerResources:ServiceTemplateContainerResources","description":"Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\nStructure is documented below.\n"},"sourceCode":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerSourceCode:ServiceTemplateContainerSourceCode","description":"(Optional, Beta)\nLocation of the source.\nStructure is documented below.\n"},"startupProbe":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerStartupProbe:ServiceTemplateContainerStartupProbe","description":"Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\nStructure is documented below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerVolumeMount:ServiceTemplateContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\nStructure is documented below.\n"},"workingDir":{"type":"string","description":"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.\n"}},"type":"object","required":["image"],"language":{"nodejs":{"requiredOutputs":["buildInfos","image","ports","resources","startupProbe"]}}},"gcp:cloudrunv2/ServiceTemplateContainerBuildInfo:ServiceTemplateContainerBuildInfo":{"properties":{"functionTarget":{"type":"string","description":"Entry point of the function when the image is a Cloud Run function.\n"},"sourceLocation":{"type":"string","description":"Source code location of the image.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["functionTarget","sourceLocation"]}}},"gcp:cloudrunv2/ServiceTemplateContainerEnv:ServiceTemplateContainerEnv":{"properties":{"name":{"type":"string","description":"Name of the environment variable. Must be a C_IDENTIFIER, and may not exceed 32768 characters.\n"},"value":{"type":"string","description":"Literal value of the environment variable. Defaults to \"\" and the maximum allowed length is 32768 characters. Variable references are not supported in Cloud Run.\n"},"valueSource":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerEnvValueSource:ServiceTemplateContainerEnvValueSource","description":"Source for the environment variable's value.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/ServiceTemplateContainerEnvValueSource:ServiceTemplateContainerEnvValueSource":{"properties":{"secretKeyRef":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerEnvValueSourceSecretKeyRef:ServiceTemplateContainerEnvValueSourceSecretKeyRef","description":"Selects a secret and a specific version from Cloud Secret Manager.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateContainerEnvValueSourceSecretKeyRef:ServiceTemplateContainerEnvValueSourceSecretKeyRef":{"properties":{"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secretName} if the secret is in the same project. projects/{project}/secrets/{secretName} if the secret is in a different project.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.\n"}},"type":"object","required":["secret"]},"gcp:cloudrunv2/ServiceTemplateContainerLivenessProbe:ServiceTemplateContainerLivenessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeGrpc:ServiceTemplateContainerLivenessProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeHttpGet:ServiceTemplateContainerLivenessProbeHttpGet","description":"HTTPGet specifies the http request to perform.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeoutSeconds\n"},"tcpSocket":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeTcpSocket:ServiceTemplateContainerLivenessProbeTcpSocket","description":"TCPSocketAction describes an action based on opening a socket\nStructure is documented below.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than periodSeconds. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeGrpc:ServiceTemplateContainerLivenessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-dotnet=\"\"NestedTemplateContainersBuildInfo\"\" pulumi-lang-go=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-python=\"\"nested_template_containers_build_info\"\" pulumi-lang-yaml=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-java=\"\"nestedTemplateContainersBuildInfo\"\"\u003e\"nested_template_containers_build_info\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`buildInfo`\" pulumi-lang-dotnet=\"`BuildInfo`\" pulumi-lang-go=\"`buildInfo`\" pulumi-lang-python=\"`build_info`\" pulumi-lang-yaml=\"`buildInfo`\" pulumi-lang-java=\"`buildInfo`\"\u003e`build_info`\u003c/span\u003e block contains:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeHttpGet:ServiceTemplateContainerLivenessProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeHttpGetHttpHeader:ServiceTemplateContainerLivenessProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeHttpGetHttpHeader:ServiceTemplateContainerLivenessProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The header field name\n"},"value":{"type":"string","description":"The header field value\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/ServiceTemplateContainerLivenessProbeTcpSocket:ServiceTemplateContainerLivenessProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["port"]},"gcp:cloudrunv2/ServiceTemplateContainerPorts:ServiceTemplateContainerPorts":{"properties":{"containerPort":{"type":"integer","description":"Port number the container listens on. This must be a valid TCP port number, 0 \u003c containerPort \u003c 65536.\n"},"name":{"type":"string","description":"If specified, used to specify which protocol to use. Allowed values are \"http1\" and \"h2c\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:cloudrunv2/ServiceTemplateContainerReadinessProbe:ServiceTemplateContainerReadinessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3.\n"},"grpc":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerReadinessProbeGrpc:ServiceTemplateContainerReadinessProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerReadinessProbeHttpGet:ServiceTemplateContainerReadinessProbeHttpGet","description":"HttpGet specifies the http request to perform.\nStructure is documented below.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds.\n"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the probe to be considered successful after having failed.\nDefaults to 2.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Must be smaller than period_seconds.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["failureThreshold","periodSeconds","successThreshold","timeoutSeconds"]}}},"gcp:cloudrunv2/ServiceTemplateContainerReadinessProbeGrpc:ServiceTemplateContainerReadinessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-dotnet=\"\"NestedTemplateContainersBuildInfo\"\" pulumi-lang-go=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-python=\"\"nested_template_containers_build_info\"\" pulumi-lang-yaml=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-java=\"\"nestedTemplateContainersBuildInfo\"\"\u003e\"nested_template_containers_build_info\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`buildInfo`\" pulumi-lang-dotnet=\"`BuildInfo`\" pulumi-lang-go=\"`buildInfo`\" pulumi-lang-python=\"`build_info`\" pulumi-lang-yaml=\"`buildInfo`\" pulumi-lang-java=\"`buildInfo`\"\u003e`build_info`\u003c/span\u003e block contains:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerReadinessProbeHttpGet:ServiceTemplateContainerReadinessProbeHttpGet":{"properties":{"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["path","port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerResources:ServiceTemplateContainerResources":{"properties":{"cpuIdle":{"type":"boolean","description":"Determines whether CPU is only allocated during requests. True by default if the parent \u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e field is not set. However, if\n\u003cspan pulumi-lang-nodejs=\"`resources`\" pulumi-lang-dotnet=\"`Resources`\" pulumi-lang-go=\"`resources`\" pulumi-lang-python=\"`resources`\" pulumi-lang-yaml=\"`resources`\" pulumi-lang-java=\"`resources`\"\u003e`resources`\u003c/span\u003e is set, this field must be explicitly set to true to preserve the default behavior.\n"},"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Only memory, CPU, and nvidia.com/gpu are supported. Use key \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e for CPU limit, \u003cspan pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\"\u003e`memory`\u003c/span\u003e for memory limit, `nvidia.com/gpu` for gpu limit. Note: The only supported values for CPU are '1', '2', '4', '6' and '8'. Setting 4 CPU requires at least 2Gi of memory, setting 6 or more CPU requires at least 4Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"},"startupCpuBoost":{"type":"boolean","description":"Determines whether CPU should be boosted on startup of a new container instance above the requested CPU threshold, this can help reduce cold-start latency.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["limits"]}}},"gcp:cloudrunv2/ServiceTemplateContainerSourceCode:ServiceTemplateContainerSourceCode":{"properties":{"cloudStorageSource":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerSourceCodeCloudStorageSource:ServiceTemplateContainerSourceCodeCloudStorageSource","description":"Cloud Storage source.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateContainerSourceCodeCloudStorageSource:ServiceTemplateContainerSourceCodeCloudStorageSource":{"properties":{"bucket":{"type":"string","description":"The Cloud Storage bucket name.\n"},"generation":{"type":"string","description":"The Cloud Storage object generation. The is an int64 value. As with most Google APIs, its JSON representation will be a string instead of an integer.\n"},"object":{"type":"string","description":"The Cloud Storage object name.\n"}},"type":"object","required":["bucket","object"]},"gcp:cloudrunv2/ServiceTemplateContainerStartupProbe:ServiceTemplateContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerStartupProbeGrpc:ServiceTemplateContainerStartupProbeGrpc","description":"GRPC specifies an action involving a GRPC port.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerStartupProbeHttpGet:ServiceTemplateContainerStartupProbeHttpGet","description":"HTTPGet specifies the http request to perform. Exactly one of HTTPGet or TCPSocket must be specified.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeoutSeconds\n"},"tcpSocket":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerStartupProbeTcpSocket:ServiceTemplateContainerStartupProbeTcpSocket","description":"TCPSocket specifies an action involving a TCP port. Exactly one of HTTPGet or TCPSocket must be specified.\nStructure is documented below.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than periodSeconds. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateContainerStartupProbeGrpc:ServiceTemplateContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-dotnet=\"\"NestedTemplateContainersBuildInfo\"\" pulumi-lang-go=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-python=\"\"nested_template_containers_build_info\"\" pulumi-lang-yaml=\"\"nestedTemplateContainersBuildInfo\"\" pulumi-lang-java=\"\"nestedTemplateContainersBuildInfo\"\"\u003e\"nested_template_containers_build_info\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`buildInfo`\" pulumi-lang-dotnet=\"`BuildInfo`\" pulumi-lang-go=\"`buildInfo`\" pulumi-lang-python=\"`build_info`\" pulumi-lang-yaml=\"`buildInfo`\" pulumi-lang-java=\"`buildInfo`\"\u003e`build_info`\u003c/span\u003e block contains:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerStartupProbeHttpGet:ServiceTemplateContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateContainerStartupProbeHttpGetHttpHeader:ServiceTemplateContainerStartupProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerStartupProbeHttpGetHttpHeader:ServiceTemplateContainerStartupProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The header field name\n"},"value":{"type":"string","description":"The header field value\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/ServiceTemplateContainerStartupProbeTcpSocket:ServiceTemplateContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port"]}}},"gcp:cloudrunv2/ServiceTemplateContainerVolumeMount:ServiceTemplateContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be /cloudsql. All instances defined in the Volume will be available as /cloudsql/[instance]. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run\n"},"name":{"type":"string","description":"This must match the Name of a Volume.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name"]},"gcp:cloudrunv2/ServiceTemplateNodeSelector:ServiceTemplateNodeSelector":{"properties":{"accelerator":{"type":"string","description":"The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.\n"}},"type":"object","required":["accelerator"]},"gcp:cloudrunv2/ServiceTemplateScaling:ServiceTemplateScaling":{"properties":{"maxInstanceCount":{"type":"integer","description":"Combined maximum number of instances for all revisions receiving traffic.\n"},"minInstanceCount":{"type":"integer","description":"Minimum number of instances for the service, to be divided among all revisions receiving traffic.\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateServiceMesh:ServiceTemplateServiceMesh":{"properties":{"mesh":{"type":"string","description":"The Mesh resource name. For more information see https://cloud.google.com/service-mesh/docs/reference/network-services/rest/v1/projects.locations.meshes#resource:-mesh.\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateVolume:ServiceTemplateVolume":{"properties":{"cloudSqlInstance":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolumeCloudSqlInstance:ServiceTemplateVolumeCloudSqlInstance","description":"For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.\nStructure is documented below.\n"},"emptyDir":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolumeEmptyDir:ServiceTemplateVolumeEmptyDir","description":"Ephemeral storage used as a shared volume.\nStructure is documented below.\n"},"gcs":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolumeGcs:ServiceTemplateVolumeGcs","description":"Cloud Storage bucket mounted as a volume using GCSFuse. This feature is only supported in the gen2 execution environment.\nStructure is documented below.\n"},"name":{"type":"string","description":"Volume's name.\n"},"nfs":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolumeNfs:ServiceTemplateVolumeNfs","description":"Represents an NFS mount.\nStructure is documented below.\n"},"secret":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolumeSecret:ServiceTemplateVolumeSecret","description":"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/ServiceTemplateVolumeCloudSqlInstance:ServiceTemplateVolumeCloudSqlInstance":{"properties":{"instances":{"type":"array","items":{"type":"string"},"description":"The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateVolumeEmptyDir:ServiceTemplateVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The different types of medium supported for EmptyDir.\nDefault value is `MEMORY`.\nPossible values are: `MEMORY`.\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object"},"gcp:cloudrunv2/ServiceTemplateVolumeGcs:ServiceTemplateVolumeGcs":{"properties":{"bucket":{"type":"string","description":"GCS Bucket name\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"A list of flags to pass to the gcsfuse command for configuring this volume.\nFlags should be passed without leading dashes.\n"},"readOnly":{"type":"boolean","description":"If true, mount the GCS bucket as read-only\n"}},"type":"object","required":["bucket"]},"gcp:cloudrunv2/ServiceTemplateVolumeNfs:ServiceTemplateVolumeNfs":{"properties":{"path":{"type":"string","description":"Path that is exported by the NFS server.\n"},"readOnly":{"type":"boolean","description":"If true, mount the NFS volume as read only\n"},"server":{"type":"string","description":"Hostname or IP address of the NFS server\n"}},"type":"object","required":["path","server"]},"gcp:cloudrunv2/ServiceTemplateVolumeSecret:ServiceTemplateVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVolumeSecretItem:ServiceTemplateVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.\nStructure is documented below.\n"},"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.\n"}},"type":"object","required":["secret"]},"gcp:cloudrunv2/ServiceTemplateVolumeSecretItem:ServiceTemplateVolumeSecretItem":{"properties":{"mode":{"type":"integer","description":"Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used.\n"},"path":{"type":"string","description":"The relative path of the secret in the container.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version\n"}},"type":"object","required":["path"]},"gcp:cloudrunv2/ServiceTemplateVpcAccess:ServiceTemplateVpcAccess":{"properties":{"connector":{"type":"string","description":"VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.\n"},"egress":{"type":"string","description":"Traffic VPC egress settings.\nPossible values are: `ALL_TRAFFIC`, `PRIVATE_RANGES_ONLY`.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/ServiceTemplateVpcAccessNetworkInterface:ServiceTemplateVpcAccessNetworkInterface"},"description":"Direct VPC egress settings. Currently only single network interface is supported.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["egress"]}}},"gcp:cloudrunv2/ServiceTemplateVpcAccessNetworkInterface:ServiceTemplateVpcAccessNetworkInterface":{"properties":{"network":{"type":"string","description":"The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be\nlooked up from the subnetwork.\n"},"subnetwork":{"type":"string","description":"The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the\nsubnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Run service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["network","subnetwork"]}}},"gcp:cloudrunv2/ServiceTerminalCondition:ServiceTerminalCondition":{"properties":{"executionReason":{"type":"string","description":"(Output)\nA reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"(Output)\nLast time the condition transitioned from one status to another.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nA common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"(Output)\nA reason for the revision condition.\n"},"severity":{"type":"string","description":"(Output)\nHow to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"(Output)\nState of the condition.\n"},"type":{"type":"string","description":"(Output)\nThe allocation type for this traffic target.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"]}}},"gcp:cloudrunv2/ServiceTraffic:ServiceTraffic":{"properties":{"percent":{"type":"integer","description":"Specifies percent of the traffic to this Revision. This defaults to zero if unspecified.\n"},"revision":{"type":"string","description":"Revision to which to send this portion of traffic, if traffic allocation is by revision.\n"},"tag":{"type":"string","description":"Indicates a string to be part of the URI to exclusively reference this target.\n"},"type":{"type":"string","description":"The allocation type for this traffic target.\nPossible values are: `TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST`, `TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["percent"]}}},"gcp:cloudrunv2/ServiceTrafficStatus:ServiceTrafficStatus":{"properties":{"percent":{"type":"integer","description":"(Output)\nSpecifies percent of the traffic to this Revision.\n"},"revision":{"type":"string","description":"(Output)\nRevision to which this traffic is sent.\n"},"tag":{"type":"string","description":"(Output)\nIndicates the string used in the URI to exclusively reference this target.\n"},"type":{"type":"string","description":"(Output)\nThe allocation type for this traffic target.\n"},"uri":{"type":"string","description":"(Output)\nDisplays the target URI.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["percent","revision","tag","type","uri"]}}},"gcp:cloudrunv2/WorkerPoolBinaryAuthorization:WorkerPoolBinaryAuthorization":{"properties":{"breakglassJustification":{"type":"string","description":"If present, indicates to use Breakglass using this justification. If useDefault is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass\n"},"policy":{"type":"string","description":"The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}\n"},"useDefault":{"type":"boolean","description":"If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolCondition:WorkerPoolCondition":{"properties":{"executionReason":{"type":"string","description":"(Output)\nA reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"(Output)\nLast time the condition transitioned from one status to another.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nA common (workerPool-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"(Output)\nA reason for the revision condition.\n"},"severity":{"type":"string","description":"(Output)\nHow to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"(Output)\nState of the condition.\n"},"type":{"type":"string","description":"(Output)\nThe allocation type for this instance split.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"]}}},"gcp:cloudrunv2/WorkerPoolIamBindingCondition:WorkerPoolIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrunv2/WorkerPoolIamMemberCondition:WorkerPoolIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudrunv2/WorkerPoolInstanceSplit:WorkerPoolInstanceSplit":{"properties":{"percent":{"type":"integer","description":"Specifies percent of the instance split to this Revision. This defaults to zero if unspecified.\n"},"revision":{"type":"string","description":"Revision to which to assign this portion of instances, if split allocation is by revision.\n"},"type":{"type":"string","description":"The allocation type for this instance split.\nPossible values are: `INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST`, `INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["percent"]}}},"gcp:cloudrunv2/WorkerPoolInstanceSplitStatus:WorkerPoolInstanceSplitStatus":{"properties":{"percent":{"type":"integer","description":"(Output)\nSpecifies percent of the instance split to this Revision.\n"},"revision":{"type":"string","description":"(Output)\nRevision to which this instance split is assigned.\n"},"type":{"type":"string","description":"(Output)\nThe allocation type for this instance split.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["percent","revision","type"]}}},"gcp:cloudrunv2/WorkerPoolScaling:WorkerPoolScaling":{"properties":{"manualInstanceCount":{"type":"integer","description":"The total number of instances in manual scaling mode.\n"},"maxInstanceCount":{"type":"integer","description":"The maximum count of instances distributed among revisions based on the specified instance split percentages.\n"},"minInstanceCount":{"type":"integer","description":"The minimum count of instances distributed among revisions based on the specified instance split percentages.\n"},"scalingMode":{"type":"string","description":"The scaling mode for the worker pool. It defaults to MANUAL.\nPossible values are: `AUTOMATIC`, `MANUAL`.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplate:WorkerPoolTemplate":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects.\nCloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected.\nAll system annotations in v1 now have a corresponding field in v2 WorkerPoolRevisionTemplate.\nThis field follows Kubernetes annotations' namespacing, limits, and rules.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainer:WorkerPoolTemplateContainer"},"description":"Holds the containers that define the unit of execution for this WorkerPool.\nStructure is documented below.\n"},"encryptionKey":{"type":"string","description":"A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek\n"},"encryptionKeyRevocationAction":{"type":"string","description":"The action to take if the encryption key is revoked.\nPossible values are: `PREVENT_NEW`, `SHUTDOWN`.\n"},"encryptionKeyShutdownDuration":{"type":"string","description":"If encryptionKeyRevocationAction is SHUTDOWN, the duration before shutting down all instances. The minimum increment is 1 hour.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"gpuZonalRedundancyDisabled":{"type":"boolean","description":"True if GPU zonal redundancy is disabled on this revision.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc.\nFor more information, visit https://docs.cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels.\nCloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected.\nAll system labels in v1 now have a corresponding field in v2 WorkerPoolRevisionTemplate.\n"},"nodeSelector":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateNodeSelector:WorkerPoolTemplateNodeSelector","description":"Node Selector describes the hardware requirements of the resources.\nStructure is documented below.\n"},"revision":{"type":"string","description":"The unique name for the revision. If this field is omitted, it will be automatically generated based on the WorkerPool name.\n"},"serviceAccount":{"type":"string","description":"Email address of the IAM service account associated with the revision of the WorkerPool. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolume:WorkerPoolTemplateVolume"},"description":"A list of Volumes to make available to containers.\nStructure is documented below.\n"},"vpcAccess":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVpcAccess:WorkerPoolTemplateVpcAccess","description":"VPC Access configuration to use for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccount"]}}},"gcp:cloudrunv2/WorkerPoolTemplateContainer:WorkerPoolTemplateContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n"},"dependsOns":{"type":"array","items":{"type":"string"},"description":"Names of the containers that must start before this container.\n","willReplaceOnChanges":true},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerEnv:WorkerPoolTemplateContainerEnv"},"description":"List of environment variables to set in the container.\nStructure is documented below.\n"},"image":{"type":"string","description":"URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images\n"},"livenessProbe":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbe:WorkerPoolTemplateContainerLivenessProbe","description":"Periodic probe of container liveness. Container will be restarted if the probe fails.\nStructure is documented below.\n"},"name":{"type":"string","description":"Name of the container specified as a DNS_LABEL.\n"},"resources":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerResources:WorkerPoolTemplateContainerResources","description":"Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\nStructure is documented below.\n"},"startupProbe":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbe:WorkerPoolTemplateContainerStartupProbe","description":"Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails.\nStructure is documented below.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerVolumeMount:WorkerPoolTemplateContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\nStructure is documented below.\n"},"workingDir":{"type":"string","description":"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.\n"}},"type":"object","required":["image"],"language":{"nodejs":{"requiredOutputs":["image","resources"]}}},"gcp:cloudrunv2/WorkerPoolTemplateContainerEnv:WorkerPoolTemplateContainerEnv":{"properties":{"name":{"type":"string","description":"Name of the environment variable. Must be a C_IDENTIFIER, and may not exceed 32768 characters.\n"},"value":{"type":"string","description":"Literal value of the environment variable. Defaults to \"\" and the maximum allowed length is 32768 characters. Variable references are not supported in Cloud Run.\n"},"valueSource":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerEnvValueSource:WorkerPoolTemplateContainerEnvValueSource","description":"Source for the environment variable's value.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/WorkerPoolTemplateContainerEnvValueSource:WorkerPoolTemplateContainerEnvValueSource":{"properties":{"secretKeyRef":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerEnvValueSourceSecretKeyRef:WorkerPoolTemplateContainerEnvValueSourceSecretKeyRef","description":"Selects a secret and a specific version from Cloud Secret Manager.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerEnvValueSourceSecretKeyRef:WorkerPoolTemplateContainerEnvValueSourceSecretKeyRef":{"properties":{"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secretName} if the secret is in the same project. projects/{project}/secrets/{secretName} if the secret is in a different project.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.\n"}},"type":"object","required":["secret"]},"gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbe:WorkerPoolTemplateContainerLivenessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Optional. Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeGrpc:WorkerPoolTemplateContainerLivenessProbeGrpc","description":"Optional. GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeHttpGet:WorkerPoolTemplateContainerLivenessProbeHttpGet","description":"Optional. HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Optional. Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.\n"},"periodSeconds":{"type":"integer","description":"Optional. How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.\n"},"tcpSocket":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeTcpSocket:WorkerPoolTemplateContainerLivenessProbeTcpSocket","description":"Optional. TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\nStructure is documented below.\n"},"timeoutSeconds":{"type":"integer","description":"Optional. Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeGrpc:WorkerPoolTemplateContainerLivenessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Optional. Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"},"service":{"type":"string","description":"Optional. Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeHttpGet:WorkerPoolTemplateContainerLivenessProbeHttpGet":{"properties":{"httpHeaders":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeaders:WorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeaders","description":"Optional. Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Optional. Path to access on the HTTP server. Defaults to '/'.\n"},"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeaders:WorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeaders":{"properties":{"port":{"type":"integer","description":"Required. The header field name\n"},"value":{"type":"string","description":"Optional. The header field value\n"}},"type":"object","required":["port"]},"gcp:cloudrunv2/WorkerPoolTemplateContainerLivenessProbeTcpSocket:WorkerPoolTemplateContainerLivenessProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerResources:WorkerPoolTemplateContainerResources":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Only memory, CPU, and nvidia.com/gpu are supported. Use key \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e for CPU limit, \u003cspan pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\"\u003e`memory`\u003c/span\u003e for memory limit, `nvidia.com/gpu` for gpu limit. Note: The only supported values for CPU are '1', '2', '4', '6', and '8'. Setting 4 CPU requires at least 2Gi of memory, setting 6 or more CPU requires at least 4Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["limits"]}}},"gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbe:WorkerPoolTemplateContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Optional. Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpc":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeGrpc:WorkerPoolTemplateContainerStartupProbeGrpc","description":"Optional. GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\nStructure is documented below.\n"},"httpGet":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeHttpGet:WorkerPoolTemplateContainerStartupProbeHttpGet","description":"Optional. HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified.\nStructure is documented below.\n"},"initialDelaySeconds":{"type":"integer","description":"Optional. Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.\n"},"periodSeconds":{"type":"integer","description":"Optional. How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.\n"},"tcpSocket":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeTcpSocket:WorkerPoolTemplateContainerStartupProbeTcpSocket","description":"Optional. TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\nStructure is documented below.\n"},"timeoutSeconds":{"type":"integer","description":"Optional. Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeGrpc:WorkerPoolTemplateContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Optional. Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"},"service":{"type":"string","description":"Optional. Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeHttpGet:WorkerPoolTemplateContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeHttpGetHttpHeaders:WorkerPoolTemplateContainerStartupProbeHttpGetHttpHeaders","description":"Optional. Custom headers to set in the request. HTTP allows repeated headers.\nStructure is documented below.\n"},"path":{"type":"string","description":"Optional. Path to access on the HTTP server. Defaults to '/'.\n"},"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeHttpGetHttpHeaders:WorkerPoolTemplateContainerStartupProbeHttpGetHttpHeaders":{"properties":{"port":{"type":"integer","description":"Required. The header field name\n"},"value":{"type":"string","description":"Optional. The header field value\n"}},"type":"object","required":["port"]},"gcp:cloudrunv2/WorkerPoolTemplateContainerStartupProbeTcpSocket:WorkerPoolTemplateContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateContainerVolumeMount:WorkerPoolTemplateContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be /cloudsql. All instances defined in the Volume will be available as /cloudsql/[instance]. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run\n"},"name":{"type":"string","description":"This must match the Name of a Volume.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name"]},"gcp:cloudrunv2/WorkerPoolTemplateNodeSelector:WorkerPoolTemplateNodeSelector":{"properties":{"accelerator":{"type":"string","description":"The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.\n"}},"type":"object","required":["accelerator"]},"gcp:cloudrunv2/WorkerPoolTemplateVolume:WorkerPoolTemplateVolume":{"properties":{"cloudSqlInstance":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolumeCloudSqlInstance:WorkerPoolTemplateVolumeCloudSqlInstance","description":"For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.\nStructure is documented below.\n"},"emptyDir":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolumeEmptyDir:WorkerPoolTemplateVolumeEmptyDir","description":"Ephemeral storage used as a shared volume.\nStructure is documented below.\n"},"gcs":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolumeGcs:WorkerPoolTemplateVolumeGcs","description":"Cloud Storage bucket mounted as a volume using GCSFuse. This feature is only supported in the gen2 execution environment.\nStructure is documented below.\n"},"name":{"type":"string","description":"Volume's name.\n"},"nfs":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolumeNfs:WorkerPoolTemplateVolumeNfs","description":"Represents an NFS mount.\nStructure is documented below.\n"},"secret":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolumeSecret:WorkerPoolTemplateVolumeSecret","description":"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:cloudrunv2/WorkerPoolTemplateVolumeCloudSqlInstance:WorkerPoolTemplateVolumeCloudSqlInstance":{"properties":{"instances":{"type":"array","items":{"type":"string"},"description":"The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateVolumeEmptyDir:WorkerPoolTemplateVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The different types of medium supported for EmptyDir.\nDefault value is `MEMORY`.\nPossible values are: `MEMORY`.\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object"},"gcp:cloudrunv2/WorkerPoolTemplateVolumeGcs:WorkerPoolTemplateVolumeGcs":{"properties":{"bucket":{"type":"string","description":"GCS Bucket name\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"A list of flags to pass to the gcsfuse command for configuring this volume.\nFlags should be passed without leading dashes.\n"},"readOnly":{"type":"boolean","description":"If true, mount the GCS bucket as read-only\n"}},"type":"object","required":["bucket"]},"gcp:cloudrunv2/WorkerPoolTemplateVolumeNfs:WorkerPoolTemplateVolumeNfs":{"properties":{"path":{"type":"string","description":"Path that is exported by the NFS server.\n"},"readOnly":{"type":"boolean","description":"If true, mount the NFS volume as read only\n"},"server":{"type":"string","description":"Hostname or IP address of the NFS server\n"}},"type":"object","required":["path","server"]},"gcp:cloudrunv2/WorkerPoolTemplateVolumeSecret:WorkerPoolTemplateVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVolumeSecretItem:WorkerPoolTemplateVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.\nStructure is documented below.\n"},"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.\n"}},"type":"object","required":["secret"]},"gcp:cloudrunv2/WorkerPoolTemplateVolumeSecretItem:WorkerPoolTemplateVolumeSecretItem":{"properties":{"mode":{"type":"integer","description":"Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used.\n"},"path":{"type":"string","description":"The relative path of the secret in the container.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version\n"}},"type":"object","required":["path"]},"gcp:cloudrunv2/WorkerPoolTemplateVpcAccess:WorkerPoolTemplateVpcAccess":{"properties":{"connector":{"type":"string","description":"VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.\n"},"egress":{"type":"string","description":"Traffic VPC egress settings.\nPossible values are: `ALL_TRAFFIC`, `PRIVATE_RANGES_ONLY`.\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/WorkerPoolTemplateVpcAccessNetworkInterface:WorkerPoolTemplateVpcAccessNetworkInterface"},"description":"Direct VPC egress settings. Currently only single network interface is supported.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["egress"]}}},"gcp:cloudrunv2/WorkerPoolTemplateVpcAccessNetworkInterface:WorkerPoolTemplateVpcAccessNetworkInterface":{"properties":{"network":{"type":"string","description":"The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be\nlooked up from the subnetwork.\n"},"subnetwork":{"type":"string","description":"The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the\nsubnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Run WorkerPool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["network","subnetwork"]}}},"gcp:cloudrunv2/WorkerPoolTerminalCondition:WorkerPoolTerminalCondition":{"properties":{"executionReason":{"type":"string","description":"(Output)\nA reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"(Output)\nLast time the condition transitioned from one status to another.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"(Output)\nA common (workerPool-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"(Output)\nA reason for the revision condition.\n"},"severity":{"type":"string","description":"(Output)\nHow to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"(Output)\nState of the condition.\n"},"type":{"type":"string","description":"(Output)\nThe allocation type for this instance split.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"]}}},"gcp:cloudrunv2/getJobBinaryAuthorization:getJobBinaryAuthorization":{"properties":{"breakglassJustification":{"type":"string","description":"If present, indicates to use Breakglass using this justification. If useDefault is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass\n"},"policy":{"type":"string","description":"The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}\n"},"useDefault":{"type":"boolean","description":"If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.\n"}},"type":"object","required":["breakglassJustification","policy","useDefault"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobCondition:getJobCondition":{"properties":{"executionReason":{"type":"string","description":"A reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"Last time the condition transitioned from one status to another.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"A common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"A reason for the revision condition.\n"},"severity":{"type":"string","description":"How to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"State of the condition.\n"},"type":{"type":"string","description":"type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","required":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobLatestCreatedExecution:getJobLatestCreatedExecution":{"properties":{"completionTime":{"type":"string","description":"Completion timestamp of the execution.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"createTime":{"type":"string","description":"Creation timestamp of the execution.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"}},"type":"object","required":["completionTime","createTime","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplate:getJobTemplate":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects.\n\nCloud Run API v2 does not support annotations with 'run.googleapis.com', 'cloud.googleapis.com', 'serving.knative.dev', or 'autoscaling.knative.dev' namespaces, and they will be rejected.\nAll system annotations in v1 now have a corresponding field in v2 ExecutionTemplate.\n\nThis field follows Kubernetes annotations' namespacing, limits, and rules.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter,\nor break down billing charges by team, component, environment, state, etc. For more information, visit https://docs.cloud.google.com/resource-manager/docs/creating-managing-labels or\nhttps://cloud.google.com/run/docs/configuring/labels.\n\nCloud Run API v2 does not support labels with 'run.googleapis.com', 'cloud.googleapis.com', 'serving.knative.dev', or 'autoscaling.knative.dev' namespaces, and they will be rejected.\nAll system labels in v1 now have a corresponding field in v2 ExecutionTemplate.\n"},"parallelism":{"type":"integer","description":"Specifies the maximum desired number of tasks the execution should run at given time. Must be \u003c= taskCount. When the job is run, if this field is 0 or unset, the maximum possible value will be used for that execution. The actual number of tasks running in steady state will be less than this number when there are fewer tasks waiting to be completed remaining, i.e. when the work left to do is less than max parallelism.\n"},"taskCount":{"type":"integer","description":"Specifies the desired number of tasks the execution should run. Setting to 1 means that parallelism is limited to 1 and the success of that task signals the success of the execution. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/\n"},"templates":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplate:getJobTemplateTemplate"},"description":"Describes the task(s) that will be created when executing an execution\n"}},"type":"object","required":["annotations","labels","parallelism","taskCount","templates"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplate:getJobTemplateTemplate":{"properties":{"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainer:getJobTemplateTemplateContainer"},"description":"Holds the single container that defines the unit of execution for this task.\n"},"encryptionKey":{"type":"string","description":"A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek\n"},"executionEnvironment":{"type":"string","description":"The execution environment being used to host this Task. Possible values: [\"EXECUTION_ENVIRONMENT_GEN1\", \"EXECUTION_ENVIRONMENT_GEN2\"]\n"},"gpuZonalRedundancyDisabled":{"type":"boolean","description":"True if GPU zonal redundancy is disabled on this execution.\n"},"maxRetries":{"type":"integer","description":"Number of retries allowed per Task, before marking this Task failed. Defaults to 3. Minimum value is 0.\n"},"nodeSelectors":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateNodeSelector:getJobTemplateTemplateNodeSelector"},"description":"Node Selector describes the hardware requirements of the resources.\n"},"serviceAccount":{"type":"string","description":"Email address of the IAM service account associated with the Task of a Job. The service account represents the identity of the running task, and determines what permissions the task has. If not provided, the task will use the project's default service account.\n"},"timeout":{"type":"string","description":"Max allowed time duration the Task may be active before the system will actively try to mark it failed and kill associated containers. This applies per attempt of a task, meaning each retry can run for the full timeout.\n\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolume:getJobTemplateTemplateVolume"},"description":"A list of Volumes to make available to containers.\n"},"vpcAccesses":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVpcAccess:getJobTemplateTemplateVpcAccess"},"description":"VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.\n"}},"type":"object","required":["containers","encryptionKey","executionEnvironment","gpuZonalRedundancyDisabled","maxRetries","nodeSelectors","serviceAccount","timeout","volumes","vpcAccesses"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainer:getJobTemplateTemplateContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n"},"dependsOns":{"type":"array","items":{"type":"string"},"description":"Names of the containers that must start before this container.\n"},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerEnv:getJobTemplateTemplateContainerEnv"},"description":"List of environment variables to set in the container.\n"},"image":{"type":"string","description":"URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"},"ports":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerPort:getJobTemplateTemplateContainerPort"},"description":"List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible.\n\nIf omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on\n"},"resources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerResource:getJobTemplateTemplateContainerResource"},"description":"Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n"},"startupProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbe:getJobTemplateTemplateContainerStartupProbe"},"description":"Startup probe of application within the container.\nAll other probes are disabled if a startup probe is provided, until it\nsucceeds. Container will not be added to service endpoints if the probe fails.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerVolumeMount:getJobTemplateTemplateContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\n"},"workingDir":{"type":"string","description":"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.\n"}},"type":"object","required":["args","commands","dependsOns","envs","image","name","ports","resources","startupProbes","volumeMounts","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerEnv:getJobTemplateTemplateContainerEnv":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"},"value":{"type":"string","description":"Literal value of the environment variable. Defaults to \"\" and the maximum allowed length is 32768 characters. Variable references are not supported in Cloud Run.\n"},"valueSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerEnvValueSource:getJobTemplateTemplateContainerEnvValueSource"},"description":"Source for the environment variable's value.\n"}},"type":"object","required":["name","value","valueSources"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerEnvValueSource:getJobTemplateTemplateContainerEnvValueSource":{"properties":{"secretKeyReves":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerEnvValueSourceSecretKeyRef:getJobTemplateTemplateContainerEnvValueSourceSecretKeyRef"},"description":"Selects a secret and a specific version from Cloud Secret Manager.\n"}},"type":"object","required":["secretKeyReves"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerEnvValueSourceSecretKeyRef:getJobTemplateTemplateContainerEnvValueSourceSecretKeyRef":{"properties":{"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secretName} if the secret is in the same project. projects/{project}/secrets/{secretName} if the secret is in a different project.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.\n"}},"type":"object","required":["secret","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerPort:getJobTemplateTemplateContainerPort":{"properties":{"containerPort":{"type":"integer","description":"Port number the container listens on. This must be a valid TCP port number, 0 \u003c containerPort \u003c 65536.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"}},"type":"object","required":["containerPort","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerResource:getJobTemplateTemplateContainerResource":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Only memory, CPU, and nvidia.com/gpu are supported. Use key 'cpu' for CPU limit, 'memory' for memory limit, 'nvidia.com/gpu' for gpu limit. Note: The only supported values for CPU are '1', '2', '4', '6', and '8'. Setting 4 CPU requires at least 2Gi of memory, setting 6 or more CPU requires at least 4Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"}},"type":"object","required":["limits"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbe:getJobTemplateTemplateContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeGrpc:getJobTemplateTemplateContainerStartupProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeHttpGet:getJobTemplateTemplateContainerStartupProbeHttpGet"},"description":"HttpGet specifies the http request to perform.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is\ninitiated.\nDefaults to 0 seconds. Minimum value is 0. Maximum value is 240.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1. Maximum value is 240.\n"},"tcpSockets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeTcpSocket:getJobTemplateTemplateContainerStartupProbeTcpSocket"},"description":"TcpSocket specifies an action involving a TCP port.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1. Maximum value is 3600.\nMust be smaller than periodSeconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","tcpSockets","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeGrpc:getJobTemplateTemplateContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeHttpGet:getJobTemplateTemplateContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeHttpGetHttpHeader:getJobTemplateTemplateContainerStartupProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeHttpGetHttpHeader:getJobTemplateTemplateContainerStartupProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"},"value":{"type":"string","description":"The header field value.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerStartupProbeTcpSocket:getJobTemplateTemplateContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateContainerVolumeMount:getJobTemplateTemplateContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be /cloudsql. All instances defined in the Volume will be available as /cloudsql/[instance]. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name","subPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateNodeSelector:getJobTemplateTemplateNodeSelector":{"properties":{"accelerator":{"type":"string","description":"The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/jobs/gpu for configuring GPU.\n"}},"type":"object","required":["accelerator"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolume:getJobTemplateTemplateVolume":{"properties":{"cloudSqlInstances":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolumeCloudSqlInstance:getJobTemplateTemplateVolumeCloudSqlInstance"},"description":"For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.\n"},"emptyDirs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolumeEmptyDir:getJobTemplateTemplateVolumeEmptyDir"},"description":"Ephemeral storage used as a shared volume.\n"},"gcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolumeGc:getJobTemplateTemplateVolumeGc"},"description":"Cloud Storage bucket mounted as a volume using GCSFuse.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Job.\n"},"nfs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolumeNf:getJobTemplateTemplateVolumeNf"},"description":"NFS share mounted as a volume.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolumeSecret:getJobTemplateTemplateVolumeSecret"},"description":"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n"}},"type":"object","required":["cloudSqlInstances","emptyDirs","gcs","name","nfs","secrets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolumeCloudSqlInstance:getJobTemplateTemplateVolumeCloudSqlInstance":{"properties":{"instances":{"type":"array","items":{"type":"string"},"description":"The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}\n"}},"type":"object","required":["instances"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolumeEmptyDir:getJobTemplateTemplateVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The different types of medium supported for EmptyDir. Default value: \"MEMORY\" Possible values: [\"MEMORY\"]\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object","required":["medium","sizeLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolumeGc:getJobTemplateTemplateVolumeGc":{"properties":{"bucket":{"type":"string","description":"Name of the cloud storage bucket to back the volume. The resource service account must have permission to access the bucket.\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"A list of flags to pass to the gcsfuse command for configuring this volume.\nFlags should be passed without leading dashes.\n"},"readOnly":{"type":"boolean","description":"If true, mount this volume as read-only in all mounts. If false, mount this volume as read-write.\n"}},"type":"object","required":["bucket","mountOptions","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolumeNf:getJobTemplateTemplateVolumeNf":{"properties":{"path":{"type":"string","description":"Path that is exported by the NFS server.\n"},"readOnly":{"type":"boolean","description":"If true, mount this volume as read-only in all mounts.\n"},"server":{"type":"string","description":"Hostname or IP address of the NFS server.\n"}},"type":"object","required":["path","readOnly","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolumeSecret:getJobTemplateTemplateVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVolumeSecretItem:getJobTemplateTemplateVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.\n"},"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.\n"}},"type":"object","required":["defaultMode","items","secret"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVolumeSecretItem:getJobTemplateTemplateVolumeSecretItem":{"properties":{"mode":{"type":"integer","description":"Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used.\n"},"path":{"type":"string","description":"The relative path of the secret in the container.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version\n"}},"type":"object","required":["mode","path","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVpcAccess:getJobTemplateTemplateVpcAccess":{"properties":{"connector":{"type":"string","description":"VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.\n"},"egress":{"type":"string","description":"Traffic VPC egress settings. Possible values: [\"ALL_TRAFFIC\", \"PRIVATE_RANGES_ONLY\"]\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getJobTemplateTemplateVpcAccessNetworkInterface:getJobTemplateTemplateVpcAccessNetworkInterface"},"description":"Direct VPC egress settings. Currently only single network interface is supported.\n"}},"type":"object","required":["connector","egress","networkInterfaces"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTemplateTemplateVpcAccessNetworkInterface:getJobTemplateTemplateVpcAccessNetworkInterface":{"properties":{"network":{"type":"string","description":"The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be\nlooked up from the subnetwork.\n"},"subnetwork":{"type":"string","description":"The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the\nsubnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Run job.\n"}},"type":"object","required":["network","subnetwork","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getJobTerminalCondition:getJobTerminalCondition":{"properties":{"executionReason":{"type":"string","description":"A reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"Last time the condition transitioned from one status to another.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"A common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"A reason for the revision condition.\n"},"severity":{"type":"string","description":"How to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"State of the condition.\n"},"type":{"type":"string","description":"type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","required":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceBinaryAuthorization:getServiceBinaryAuthorization":{"properties":{"breakglassJustification":{"type":"string","description":"If present, indicates to use Breakglass using this justification. If useDefault is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass\n"},"policy":{"type":"string","description":"The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}\n"},"useDefault":{"type":"boolean","description":"If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.\n"}},"type":"object","required":["breakglassJustification","policy","useDefault"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceBuildConfig:getServiceBuildConfig":{"properties":{"baseImage":{"type":"string","description":"The base image used to build the function.\n"},"enableAutomaticUpdates":{"type":"boolean","description":"Sets whether the function will receive automatic base image updates.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"User-provided build-time environment variables for the function.\n"},"functionTarget":{"type":"string","description":"The name of the function (as defined in source code) that will be executed. Defaults to the resource name suffix, if not specified. For backward compatibility, if function with given name is not found, then the system will try to use function named \"function\".\n"},"imageUri":{"type":"string","description":"Artifact Registry URI to store the built image.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"serviceAccount":{"type":"string","description":"Service account to be used for building the container. The format of this field is 'projects/{projectId}/serviceAccounts/{serviceAccountEmail}'.\n"},"sourceLocation":{"type":"string","description":"The Cloud Storage bucket URI where the function source code is located.\n"},"workerPool":{"type":"string","description":"Name of the Cloud Build Custom Worker Pool that should be used to build the Cloud Run function. The format of this field is 'projects/{project}/locations/{region}/workerPools/{workerPool}' where {project} and {region} are the project id and region respectively where the worker pool is defined and {workerPool} is the short name of the worker pool.\n"}},"type":"object","required":["baseImage","enableAutomaticUpdates","environmentVariables","functionTarget","imageUri","name","serviceAccount","sourceLocation","workerPool"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceCondition:getServiceCondition":{"properties":{"executionReason":{"type":"string","description":"A reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"Last time the condition transitioned from one status to another.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"A common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"A reason for the revision condition.\n"},"severity":{"type":"string","description":"How to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"State of the condition.\n"},"type":{"type":"string","description":"type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","required":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceMultiRegionSetting:getServiceMultiRegionSetting":{"properties":{"multiRegionId":{"type":"string","description":"System-generated unique id for the multi-region Service.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"The list of regions to deploy the multi-region Service.\n"}},"type":"object","required":["multiRegionId","regions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceScaling:getServiceScaling":{"properties":{"manualInstanceCount":{"type":"integer","description":"Total instance count for the service in manual scaling mode. This number of instances is divided among all revisions with specified traffic based on the percent of traffic they are receiving.\n"},"maxInstanceCount":{"type":"integer","description":"Combined maximum number of instances for all revisions receiving traffic.\n"},"minInstanceCount":{"type":"integer","description":"Minimum number of instances for the service, to be divided among all revisions receiving traffic.\n"},"scalingMode":{"type":"string","description":"The [scaling mode](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.services#scalingmode) for the service. Possible values: [\"AUTOMATIC\", \"MANUAL\"]\n"}},"type":"object","required":["manualInstanceCount","maxInstanceCount","minInstanceCount","scalingMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplate:getServiceTemplate":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects.\n\nCloud Run API v2 does not support annotations with 'run.googleapis.com', 'cloud.googleapis.com', 'serving.knative.dev', or 'autoscaling.knative.dev' namespaces, and they will be rejected.\nAll system annotations in v1 now have a corresponding field in v2 RevisionTemplate.\n\nThis field follows Kubernetes annotations' namespacing, limits, and rules.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainer:getServiceTemplateContainer"},"description":"Holds the containers that define the unit of execution for this Service.\n"},"encryptionKey":{"type":"string","description":"A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek\n"},"executionEnvironment":{"type":"string","description":"The sandbox environment to host this Revision. Possible values: [\"EXECUTION_ENVIRONMENT_GEN1\", \"EXECUTION_ENVIRONMENT_GEN2\"]\n"},"gpuZonalRedundancyDisabled":{"type":"boolean","description":"True if GPU zonal redundancy is disabled on this revision.\n"},"healthCheckDisabled":{"type":"boolean","description":"Disables health checking containers during deployment.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc.\nFor more information, visit https://docs.cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels.\n\nCloud Run API v2 does not support labels with 'run.googleapis.com', 'cloud.googleapis.com', 'serving.knative.dev', or 'autoscaling.knative.dev' namespaces, and they will be rejected.\nAll system labels in v1 now have a corresponding field in v2 RevisionTemplate.\n"},"maxInstanceRequestConcurrency":{"type":"integer","description":"Sets the maximum number of requests that each serving instance can receive.\nIf not specified or 0, defaults to 80 when requested CPU \u003e= 1 and defaults to 1 when requested CPU \u003c 1.\n"},"nodeSelectors":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateNodeSelector:getServiceTemplateNodeSelector"},"description":"Node Selector describes the hardware requirements of the resources.\n"},"revision":{"type":"string","description":"The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.\n"},"scalings":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateScaling:getServiceTemplateScaling"},"description":"Scaling settings for this Revision.\n"},"serviceAccount":{"type":"string","description":"Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.\n"},"serviceMeshes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateServiceMesh:getServiceTemplateServiceMesh"},"description":"Enables Cloud Service Mesh for this Revision.\n"},"sessionAffinity":{"type":"boolean","description":"Enables session affinity. For more information, go to https://cloud.google.com/run/docs/configuring/session-affinity\n"},"timeout":{"type":"string","description":"Max allowed time for an instance to respond to a request.\n\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolume:getServiceTemplateVolume"},"description":"A list of Volumes to make available to containers.\n"},"vpcAccesses":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVpcAccess:getServiceTemplateVpcAccess"},"description":"VPC Access configuration to use for this Task. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.\n"}},"type":"object","required":["annotations","containers","encryptionKey","executionEnvironment","gpuZonalRedundancyDisabled","healthCheckDisabled","labels","maxInstanceRequestConcurrency","nodeSelectors","revision","scalings","serviceAccount","serviceMeshes","sessionAffinity","timeout","volumes","vpcAccesses"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainer:getServiceTemplateContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.\n"},"baseImageUri":{"type":"string","description":"Base image for this container. If set, it indicates that the service is enrolled into automatic base image update.\n"},"buildInfos":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerBuildInfo:getServiceTemplateContainerBuildInfo"},"description":"The build info of the container image.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n"},"dependsOns":{"type":"array","items":{"type":"string"},"description":"Containers which should be started before this container. If specified the container will wait to start until all containers with the listed names are healthy.\n"},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerEnv:getServiceTemplateContainerEnv"},"description":"List of environment variables to set in the container.\n"},"image":{"type":"string","description":"URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images\n"},"livenessProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerLivenessProbe:getServiceTemplateContainerLivenessProbe"},"description":"Periodic probe of container liveness. Container will be restarted if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"ports":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerPort:getServiceTemplateContainerPort"},"description":"List of ports to expose from the container. Only a single port can be specified. The specified ports must be listening on all interfaces (0.0.0.0) within the container to be accessible.\n\nIf omitted, a port number will be chosen and passed to the container through the PORT environment variable for the container to listen on\n"},"readinessProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerReadinessProbe:getServiceTemplateContainerReadinessProbe"},"description":"Periodic probe of container readiness.\n"},"resources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerResource:getServiceTemplateContainerResource"},"description":"Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n"},"sourceCodes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerSourceCode:getServiceTemplateContainerSourceCode"},"description":"Location of the source.\n"},"startupProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerStartupProbe:getServiceTemplateContainerStartupProbe"},"description":"Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerVolumeMount:getServiceTemplateContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\n"},"workingDir":{"type":"string","description":"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.\n"}},"type":"object","required":["args","baseImageUri","buildInfos","commands","dependsOns","envs","image","livenessProbes","name","ports","readinessProbes","resources","sourceCodes","startupProbes","volumeMounts","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerBuildInfo:getServiceTemplateContainerBuildInfo":{"properties":{"functionTarget":{"type":"string","description":"Entry point of the function when the image is a Cloud Run function.\n"},"sourceLocation":{"type":"string","description":"Source code location of the image.\n"}},"type":"object","required":["functionTarget","sourceLocation"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerEnv:getServiceTemplateContainerEnv":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"value":{"type":"string","description":"Literal value of the environment variable. Defaults to \"\" and the maximum allowed length is 32768 characters. Variable references are not supported in Cloud Run.\n"},"valueSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerEnvValueSource:getServiceTemplateContainerEnvValueSource"},"description":"Source for the environment variable's value.\n"}},"type":"object","required":["name","value","valueSources"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerEnvValueSource:getServiceTemplateContainerEnvValueSource":{"properties":{"secretKeyReves":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerEnvValueSourceSecretKeyRef:getServiceTemplateContainerEnvValueSourceSecretKeyRef"},"description":"Selects a secret and a specific version from Cloud Secret Manager.\n"}},"type":"object","required":["secretKeyReves"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerEnvValueSourceSecretKeyRef:getServiceTemplateContainerEnvValueSourceSecretKeyRef":{"properties":{"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secretName} if the secret is in the same project. projects/{project}/secrets/{secretName} if the secret is in a different project.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.\n"}},"type":"object","required":["secret","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerLivenessProbe:getServiceTemplateContainerLivenessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeGrpc:getServiceTemplateContainerLivenessProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeHttpGet:getServiceTemplateContainerLivenessProbeHttpGet"},"description":"HTTPGet specifies the http request to perform.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeoutSeconds\n"},"tcpSockets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeTcpSocket:getServiceTemplateContainerLivenessProbeTcpSocket"},"description":"TCPSocketAction describes an action based on opening a socket\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than periodSeconds. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","tcpSockets","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeGrpc:getServiceTemplateContainerLivenessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeHttpGet:getServiceTemplateContainerLivenessProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeHttpGetHttpHeader:getServiceTemplateContainerLivenessProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. Defaults to '/'.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeHttpGetHttpHeader:getServiceTemplateContainerLivenessProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"value":{"type":"string","description":"The header field value\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerLivenessProbeTcpSocket:getServiceTemplateContainerLivenessProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Must be in the range 1 to 65535.\nIf not specified, defaults to the exposed port of the container, which\nis the value of container.ports[0].containerPort.\n"}},"type":"object","required":["port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerPort:getServiceTemplateContainerPort":{"properties":{"containerPort":{"type":"integer","description":"Port number the container listens on. This must be a valid TCP port number, 0 \u003c containerPort \u003c 65536.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"}},"type":"object","required":["containerPort","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerReadinessProbe:getServiceTemplateContainerReadinessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after\nhaving succeeded. Defaults to 3.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerReadinessProbeGrpc:getServiceTemplateContainerReadinessProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerReadinessProbeHttpGet:getServiceTemplateContainerReadinessProbeHttpGet"},"description":"HttpGet specifies the http request to perform.\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe.\nDefault to 10 seconds.\n"},"successThreshold":{"type":"integer","description":"Minimum consecutive successes for the probe to be considered successful after having failed.\nDefaults to 2.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out.\nDefaults to 1 second. Must be smaller than period_seconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","periodSeconds","successThreshold","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerReadinessProbeGrpc:getServiceTemplateContainerReadinessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerReadinessProbeHttpGet:getServiceTemplateContainerReadinessProbeHttpGet":{"properties":{"path":{"type":"string","description":"Path to access on the HTTP server. If set, it should not be empty string.\n"},"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerResource:getServiceTemplateContainerResource":{"properties":{"cpuIdle":{"type":"boolean","description":"Determines whether CPU is only allocated during requests. True by default if the parent 'resources' field is not set. However, if\n'resources' is set, this field must be explicitly set to true to preserve the default behavior.\n"},"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Only memory, CPU, and nvidia.com/gpu are supported. Use key 'cpu' for CPU limit, 'memory' for memory limit, 'nvidia.com/gpu' for gpu limit. Note: The only supported values for CPU are '1', '2', '4', '6' and '8'. Setting 4 CPU requires at least 2Gi of memory, setting 6 or more CPU requires at least 4Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"},"startupCpuBoost":{"type":"boolean","description":"Determines whether CPU should be boosted on startup of a new container instance above the requested CPU threshold, this can help reduce cold-start latency.\n"}},"type":"object","required":["cpuIdle","limits","startupCpuBoost"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerSourceCode:getServiceTemplateContainerSourceCode":{"properties":{"cloudStorageSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerSourceCodeCloudStorageSource:getServiceTemplateContainerSourceCodeCloudStorageSource"},"description":"Cloud Storage source.\n"}},"type":"object","required":["cloudStorageSources"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerSourceCodeCloudStorageSource:getServiceTemplateContainerSourceCodeCloudStorageSource":{"properties":{"bucket":{"type":"string","description":"The Cloud Storage bucket name.\n"},"generation":{"type":"string","description":"The Cloud Storage object generation. The is an int64 value. As with most Google APIs, its JSON representation will be a string instead of an integer.\n"},"object":{"type":"string","description":"The Cloud Storage object name.\n"}},"type":"object","required":["bucket","generation","object"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerStartupProbe:getServiceTemplateContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerStartupProbeGrpc:getServiceTemplateContainerStartupProbeGrpc"},"description":"GRPC specifies an action involving a GRPC port.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerStartupProbeHttpGet:getServiceTemplateContainerStartupProbeHttpGet"},"description":"HTTPGet specifies the http request to perform. Exactly one of HTTPGet or TCPSocket must be specified.\n"},"initialDelaySeconds":{"type":"integer","description":"Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"},"periodSeconds":{"type":"integer","description":"How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeoutSeconds\n"},"tcpSockets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerStartupProbeTcpSocket:getServiceTemplateContainerStartupProbeTcpSocket"},"description":"TCPSocket specifies an action involving a TCP port. Exactly one of HTTPGet or TCPSocket must be specified.\n"},"timeoutSeconds":{"type":"integer","description":"Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than periodSeconds. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","tcpSockets","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerStartupProbeGrpc:getServiceTemplateContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Number must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"},"service":{"type":"string","description":"The name of the service to place in the gRPC HealthCheckRequest\n(see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\nIf this is not specified, the default behavior is defined by gRPC.\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerStartupProbeHttpGet:getServiceTemplateContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateContainerStartupProbeHttpGetHttpHeader:getServiceTemplateContainerStartupProbeHttpGetHttpHeader"},"description":"Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Path to access on the HTTP server. Defaults to '/'.\n"},"port":{"type":"integer","description":"Port number to access on the container. Must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerStartupProbeHttpGetHttpHeader:getServiceTemplateContainerStartupProbeHttpGetHttpHeader":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"value":{"type":"string","description":"The header field value\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerStartupProbeTcpSocket:getServiceTemplateContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Port number to access on the container. Must be in the range 1 to 65535.\nIf not specified, defaults to the same value as container.ports[0].containerPort.\n"}},"type":"object","required":["port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateContainerVolumeMount:getServiceTemplateContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be /cloudsql. All instances defined in the Volume will be available as /cloudsql/[instance]. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name","subPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateNodeSelector:getServiceTemplateNodeSelector":{"properties":{"accelerator":{"type":"string","description":"The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.\n"}},"type":"object","required":["accelerator"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateScaling:getServiceTemplateScaling":{"properties":{"maxInstanceCount":{"type":"integer","description":"Maximum number of serving instances that this resource should have. Must not be less than minimum instance count. If absent, Cloud Run will calculate\na default value based on the project's available container instances quota in the region and specified instance size.\n"},"minInstanceCount":{"type":"integer","description":"Minimum number of serving instances that this resource should have. Defaults to 0. Must not be greater than maximum instance count.\n"}},"type":"object","required":["maxInstanceCount","minInstanceCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateServiceMesh:getServiceTemplateServiceMesh":{"properties":{"mesh":{"type":"string","description":"The Mesh resource name. For more information see https://cloud.google.com/service-mesh/docs/reference/network-services/rest/v1/projects.locations.meshes#resource:-mesh.\n"}},"type":"object","required":["mesh"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolume:getServiceTemplateVolume":{"properties":{"cloudSqlInstances":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolumeCloudSqlInstance:getServiceTemplateVolumeCloudSqlInstance"},"description":"For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.\n"},"emptyDirs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolumeEmptyDir:getServiceTemplateVolumeEmptyDir"},"description":"Ephemeral storage used as a shared volume.\n"},"gcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolumeGc:getServiceTemplateVolumeGc"},"description":"Cloud Storage bucket mounted as a volume using GCSFuse. This feature is only supported in the gen2 execution environment.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Service.\n"},"nfs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolumeNf:getServiceTemplateVolumeNf"},"description":"Represents an NFS mount.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolumeSecret:getServiceTemplateVolumeSecret"},"description":"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n"}},"type":"object","required":["cloudSqlInstances","emptyDirs","gcs","name","nfs","secrets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolumeCloudSqlInstance:getServiceTemplateVolumeCloudSqlInstance":{"properties":{"instances":{"type":"array","items":{"type":"string"},"description":"The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}\n"}},"type":"object","required":["instances"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolumeEmptyDir:getServiceTemplateVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The different types of medium supported for EmptyDir. Default value: \"MEMORY\" Possible values: [\"MEMORY\"]\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object","required":["medium","sizeLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolumeGc:getServiceTemplateVolumeGc":{"properties":{"bucket":{"type":"string","description":"GCS Bucket name\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"A list of flags to pass to the gcsfuse command for configuring this volume.\nFlags should be passed without leading dashes.\n"},"readOnly":{"type":"boolean","description":"If true, mount the GCS bucket as read-only\n"}},"type":"object","required":["bucket","mountOptions","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolumeNf:getServiceTemplateVolumeNf":{"properties":{"path":{"type":"string","description":"Path that is exported by the NFS server.\n"},"readOnly":{"type":"boolean","description":"If true, mount the NFS volume as read only\n"},"server":{"type":"string","description":"Hostname or IP address of the NFS server\n"}},"type":"object","required":["path","readOnly","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolumeSecret:getServiceTemplateVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVolumeSecretItem:getServiceTemplateVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.\n"},"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.\n"}},"type":"object","required":["defaultMode","items","secret"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVolumeSecretItem:getServiceTemplateVolumeSecretItem":{"properties":{"mode":{"type":"integer","description":"Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used.\n"},"path":{"type":"string","description":"The relative path of the secret in the container.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version\n"}},"type":"object","required":["mode","path","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVpcAccess:getServiceTemplateVpcAccess":{"properties":{"connector":{"type":"string","description":"VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.\n"},"egress":{"type":"string","description":"Traffic VPC egress settings. Possible values: [\"ALL_TRAFFIC\", \"PRIVATE_RANGES_ONLY\"]\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getServiceTemplateVpcAccessNetworkInterface:getServiceTemplateVpcAccessNetworkInterface"},"description":"Direct VPC egress settings. Currently only single network interface is supported.\n"}},"type":"object","required":["connector","egress","networkInterfaces"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTemplateVpcAccessNetworkInterface:getServiceTemplateVpcAccessNetworkInterface":{"properties":{"network":{"type":"string","description":"The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be\nlooked up from the subnetwork.\n"},"subnetwork":{"type":"string","description":"The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the\nsubnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Run service.\n"}},"type":"object","required":["network","subnetwork","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTerminalCondition:getServiceTerminalCondition":{"properties":{"executionReason":{"type":"string","description":"A reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"Last time the condition transitioned from one status to another.\n"},"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"A common (service-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"A reason for the revision condition.\n"},"severity":{"type":"string","description":"How to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"State of the condition.\n"},"type":{"type":"string","description":"type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","required":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTraffic:getServiceTraffic":{"properties":{"percent":{"type":"integer","description":"Specifies percent of the traffic to this Revision. This defaults to zero if unspecified.\n"},"revision":{"type":"string","description":"Revision to which to send this portion of traffic, if traffic allocation is by revision.\n"},"tag":{"type":"string","description":"Indicates a string to be part of the URI to exclusively reference this target.\n"},"type":{"type":"string","description":"The allocation type for this traffic target. Possible values: [\"TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST\", \"TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION\"]\n"}},"type":"object","required":["percent","revision","tag","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getServiceTrafficStatus:getServiceTrafficStatus":{"properties":{"percent":{"type":"integer","description":"Specifies percent of the traffic to this Revision.\n"},"revision":{"type":"string","description":"Revision to which this traffic is sent.\n"},"tag":{"type":"string","description":"Indicates the string used in the URI to exclusively reference this target.\n"},"type":{"type":"string","description":"The allocation type for this traffic target.\n"},"uri":{"type":"string","description":"Displays the target URI.\n"}},"type":"object","required":["percent","revision","tag","type","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolBinaryAuthorization:getWorkerPoolBinaryAuthorization":{"properties":{"breakglassJustification":{"type":"string","description":"If present, indicates to use Breakglass using this justification. If useDefault is False, then it must be empty. For more information on breakglass, see https://cloud.google.com/binary-authorization/docs/using-breakglass\n"},"policy":{"type":"string","description":"The path to a binary authorization policy. Format: projects/{project}/platforms/cloudRun/{policy-name}\n"},"useDefault":{"type":"boolean","description":"If True, indicates to use the default project's binary authorization policy. If False, binary authorization will be disabled.\n"}},"type":"object","required":["breakglassJustification","policy","useDefault"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolCondition:getWorkerPoolCondition":{"properties":{"executionReason":{"type":"string","description":"A reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"Last time the condition transitioned from one status to another.\n\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"A common (workerPool-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"A reason for the revision condition.\n"},"severity":{"type":"string","description":"How to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"State of the condition.\n"},"type":{"type":"string","description":"type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","required":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolInstanceSplit:getWorkerPoolInstanceSplit":{"properties":{"percent":{"type":"integer","description":"Specifies percent of the instance split to this Revision. This defaults to zero if unspecified.\n"},"revision":{"type":"string","description":"Revision to which to assign this portion of instances, if split allocation is by revision.\n"},"type":{"type":"string","description":"The allocation type for this instance split. Possible values: [\"INSTANCE_SPLIT_ALLOCATION_TYPE_LATEST\", \"INSTANCE_SPLIT_ALLOCATION_TYPE_REVISION\"]\n"}},"type":"object","required":["percent","revision","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolInstanceSplitStatus:getWorkerPoolInstanceSplitStatus":{"properties":{"percent":{"type":"integer","description":"Specifies percent of the instance split to this Revision.\n"},"revision":{"type":"string","description":"Revision to which this instance split is assigned.\n"},"type":{"type":"string","description":"The allocation type for this instance split.\n"}},"type":"object","required":["percent","revision","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolScaling:getWorkerPoolScaling":{"properties":{"manualInstanceCount":{"type":"integer","description":"The total number of instances in manual scaling mode.\n"},"maxInstanceCount":{"type":"integer","description":"The maximum count of instances distributed among revisions based on the specified instance split percentages.\n"},"minInstanceCount":{"type":"integer","description":"The minimum count of instances distributed among revisions based on the specified instance split percentages.\n"},"scalingMode":{"type":"string","description":"The scaling mode for the worker pool. It defaults to MANUAL. Possible values: [\"AUTOMATIC\", \"MANUAL\"]\n"}},"type":"object","required":["manualInstanceCount","maxInstanceCount","minInstanceCount","scalingMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplate:getWorkerPoolTemplate":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects.\n\nCloud Run API v2 does not support annotations with 'run.googleapis.com', 'cloud.googleapis.com', 'serving.knative.dev', or 'autoscaling.knative.dev' namespaces, and they will be rejected.\nAll system annotations in v1 now have a corresponding field in v2 WorkerPoolRevisionTemplate.\n\nThis field follows Kubernetes annotations' namespacing, limits, and rules.\n"},"containers":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainer:getWorkerPoolTemplateContainer"},"description":"Holds the containers that define the unit of execution for this WorkerPool.\n"},"encryptionKey":{"type":"string","description":"A reference to a customer managed encryption key (CMEK) to use to encrypt this container image. For more information, go to https://cloud.google.com/run/docs/securing/using-cmek\n"},"encryptionKeyRevocationAction":{"type":"string","description":"The action to take if the encryption key is revoked. Possible values: [\"PREVENT_NEW\", \"SHUTDOWN\"]\n"},"encryptionKeyShutdownDuration":{"type":"string","description":"If encryptionKeyRevocationAction is SHUTDOWN, the duration before shutting down all instances. The minimum increment is 1 hour.\n\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"gpuZonalRedundancyDisabled":{"type":"boolean","description":"True if GPU zonal redundancy is disabled on this revision.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc.\nFor more information, visit https://docs.cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels.\n\nCloud Run API v2 does not support labels with 'run.googleapis.com', 'cloud.googleapis.com', 'serving.knative.dev', or 'autoscaling.knative.dev' namespaces, and they will be rejected.\nAll system labels in v1 now have a corresponding field in v2 WorkerPoolRevisionTemplate.\n"},"nodeSelectors":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateNodeSelector:getWorkerPoolTemplateNodeSelector"},"description":"Node Selector describes the hardware requirements of the resources.\n"},"revision":{"type":"string","description":"The unique name for the revision. If this field is omitted, it will be automatically generated based on the WorkerPool name.\n"},"serviceAccount":{"type":"string","description":"Email address of the IAM service account associated with the revision of the WorkerPool. The service account represents the identity of the running revision, and determines what permissions the revision has. If not provided, the revision will use the project's default service account.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolume:getWorkerPoolTemplateVolume"},"description":"A list of Volumes to make available to containers.\n"},"vpcAccesses":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVpcAccess:getWorkerPoolTemplateVpcAccess"},"description":"VPC Access configuration to use for this Revision. For more information, visit https://cloud.google.com/run/docs/configuring/connecting-vpc.\n"}},"type":"object","required":["annotations","containers","encryptionKey","encryptionKeyRevocationAction","encryptionKeyShutdownDuration","gpuZonalRedundancyDisabled","labels","nodeSelectors","revision","serviceAccount","volumes","vpcAccesses"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainer:getWorkerPoolTemplateContainer":{"properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references are not supported in Cloud Run.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Entrypoint array. Not executed within a shell. The docker image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n"},"dependsOns":{"type":"array","items":{"type":"string"},"description":"Names of the containers that must start before this container.\n"},"envs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerEnv:getWorkerPoolTemplateContainerEnv"},"description":"List of environment variables to set in the container.\n"},"image":{"type":"string","description":"URL of the Container image in Google Container Registry or Google Artifact Registry. More info: https://kubernetes.io/docs/concepts/containers/images\n"},"livenessProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbe:getWorkerPoolTemplateContainerLivenessProbe"},"description":"Periodic probe of container liveness. Container will be restarted if the probe fails.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Worker Pool.\n"},"resources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerResource:getWorkerPoolTemplateContainerResource"},"description":"Compute Resource requirements by this container. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n"},"startupProbes":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbe:getWorkerPoolTemplateContainerStartupProbe"},"description":"Startup probe of application within the container. All other probes are disabled if a startup probe is provided, until it succeeds. Container will not be added to service endpoints if the probe fails.\n"},"volumeMounts":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerVolumeMount:getWorkerPoolTemplateContainerVolumeMount"},"description":"Volume to mount into the container's filesystem.\n"},"workingDir":{"type":"string","description":"Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image.\n"}},"type":"object","required":["args","commands","dependsOns","envs","image","livenessProbes","name","resources","startupProbes","volumeMounts","workingDir"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerEnv:getWorkerPoolTemplateContainerEnv":{"properties":{"name":{"type":"string","description":"The name of the Cloud Run v2 Worker Pool.\n"},"value":{"type":"string","description":"Literal value of the environment variable. Defaults to \"\" and the maximum allowed length is 32768 characters. Variable references are not supported in Cloud Run.\n"},"valueSources":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerEnvValueSource:getWorkerPoolTemplateContainerEnvValueSource"},"description":"Source for the environment variable's value.\n"}},"type":"object","required":["name","value","valueSources"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerEnvValueSource:getWorkerPoolTemplateContainerEnvValueSource":{"properties":{"secretKeyReves":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerEnvValueSourceSecretKeyRef:getWorkerPoolTemplateContainerEnvValueSourceSecretKeyRef"},"description":"Selects a secret and a specific version from Cloud Secret Manager.\n"}},"type":"object","required":["secretKeyReves"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerEnvValueSourceSecretKeyRef:getWorkerPoolTemplateContainerEnvValueSourceSecretKeyRef":{"properties":{"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secretName} if the secret is in the same project. projects/{project}/secrets/{secretName} if the secret is in a different project.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version.\n"}},"type":"object","required":["secret","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbe:getWorkerPoolTemplateContainerLivenessProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Optional. Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeGrpc:getWorkerPoolTemplateContainerLivenessProbeGrpc"},"description":"Optional. GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeHttpGet:getWorkerPoolTemplateContainerLivenessProbeHttpGet"},"description":"Optional. HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified.\n"},"initialDelaySeconds":{"type":"integer","description":"Optional. Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.\n"},"periodSeconds":{"type":"integer","description":"Optional. How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.\n"},"tcpSockets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeTcpSocket:getWorkerPoolTemplateContainerLivenessProbeTcpSocket"},"description":"Optional. TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\n"},"timeoutSeconds":{"type":"integer","description":"Optional. Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","tcpSockets","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeGrpc:getWorkerPoolTemplateContainerLivenessProbeGrpc":{"properties":{"port":{"type":"integer","description":"Optional. Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"},"service":{"type":"string","description":"Optional. Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeHttpGet:getWorkerPoolTemplateContainerLivenessProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeader:getWorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeader"},"description":"Optional. Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Optional. Path to access on the HTTP server. Defaults to '/'.\n"},"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeader:getWorkerPoolTemplateContainerLivenessProbeHttpGetHttpHeader":{"properties":{"port":{"type":"integer","description":"Required. The header field name\n"},"value":{"type":"string","description":"Optional. The header field value\n"}},"type":"object","required":["port","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerLivenessProbeTcpSocket:getWorkerPoolTemplateContainerLivenessProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object","required":["port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerResource:getWorkerPoolTemplateContainerResource":{"properties":{"limits":{"type":"object","additionalProperties":{"type":"string"},"description":"Only memory, CPU, and nvidia.com/gpu are supported. Use key 'cpu' for CPU limit, 'memory' for memory limit, 'nvidia.com/gpu' for gpu limit. Note: The only supported values for CPU are '1', '2', '4', '6', and '8'. Setting 4 CPU requires at least 2Gi of memory, setting 6 or more CPU requires at least 4Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go\n"}},"type":"object","required":["limits"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbe:getWorkerPoolTemplateContainerStartupProbe":{"properties":{"failureThreshold":{"type":"integer","description":"Optional. Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.\n"},"grpcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeGrpc:getWorkerPoolTemplateContainerStartupProbeGrpc"},"description":"Optional. GRPC specifies an action involving a gRPC port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\n"},"httpGets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeHttpGet:getWorkerPoolTemplateContainerStartupProbeHttpGet"},"description":"Optional. HTTPGet specifies the http request to perform. Exactly one of httpGet, tcpSocket, or grpc must be specified.\n"},"initialDelaySeconds":{"type":"integer","description":"Optional. Number of seconds after the container has started before the probe is initiated. Defaults to 0 seconds. Minimum value is 0. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240.\n"},"periodSeconds":{"type":"integer","description":"Optional. How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Maximum value for liveness probe is 3600. Maximum value for startup probe is 240. Must be greater or equal than timeout_seconds.\n"},"tcpSockets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeTcpSocket:getWorkerPoolTemplateContainerStartupProbeTcpSocket"},"description":"Optional. TCPSocket specifies an action involving a TCP port. Exactly one of httpGet, tcpSocket, or grpc must be specified.\n"},"timeoutSeconds":{"type":"integer","description":"Optional. Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Maximum value is 3600. Must be smaller than period_seconds.\n"}},"type":"object","required":["failureThreshold","grpcs","httpGets","initialDelaySeconds","periodSeconds","tcpSockets","timeoutSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeGrpc:getWorkerPoolTemplateContainerStartupProbeGrpc":{"properties":{"port":{"type":"integer","description":"Optional. Port number of the gRPC service. Number must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"},"service":{"type":"string","description":"Optional. Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md ). If this is not specified, the default behavior is defined by gRPC\n"}},"type":"object","required":["port","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeHttpGet:getWorkerPoolTemplateContainerStartupProbeHttpGet":{"properties":{"httpHeaders":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeHttpGetHttpHeader:getWorkerPoolTemplateContainerStartupProbeHttpGetHttpHeader"},"description":"Optional. Custom headers to set in the request. HTTP allows repeated headers.\n"},"path":{"type":"string","description":"Optional. Path to access on the HTTP server. Defaults to '/'.\n"},"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object","required":["httpHeaders","path","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeHttpGetHttpHeader:getWorkerPoolTemplateContainerStartupProbeHttpGetHttpHeader":{"properties":{"port":{"type":"integer","description":"Required. The header field name\n"},"value":{"type":"string","description":"Optional. The header field value\n"}},"type":"object","required":["port","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerStartupProbeTcpSocket:getWorkerPoolTemplateContainerStartupProbeTcpSocket":{"properties":{"port":{"type":"integer","description":"Optional. Port number to access on the container. Must be in the range 1 to 65535. If not specified, defaults to the exposed port of the container, which is the value of container.ports[0].containerPort.\n"}},"type":"object","required":["port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateContainerVolumeMount:getWorkerPoolTemplateContainerVolumeMount":{"properties":{"mountPath":{"type":"string","description":"Path within the container at which the volume should be mounted. Must not contain ':'. For Cloud SQL volumes, it can be left empty, or must otherwise be /cloudsql. All instances defined in the Volume will be available as /cloudsql/[instance]. For more information on Cloud SQL volumes, visit https://cloud.google.com/sql/docs/mysql/connect-run\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Worker Pool.\n"},"subPath":{"type":"string","description":"Path within the volume from which the container's volume should be mounted.\n"}},"type":"object","required":["mountPath","name","subPath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateNodeSelector:getWorkerPoolTemplateNodeSelector":{"properties":{"accelerator":{"type":"string","description":"The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.\n"}},"type":"object","required":["accelerator"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolume:getWorkerPoolTemplateVolume":{"properties":{"cloudSqlInstances":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolumeCloudSqlInstance:getWorkerPoolTemplateVolumeCloudSqlInstance"},"description":"For Cloud SQL volumes, contains the specific instances that should be mounted. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run.\n"},"emptyDirs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolumeEmptyDir:getWorkerPoolTemplateVolumeEmptyDir"},"description":"Ephemeral storage used as a shared volume.\n"},"gcs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolumeGc:getWorkerPoolTemplateVolumeGc"},"description":"Cloud Storage bucket mounted as a volume using GCSFuse. This feature is only supported in the gen2 execution environment.\n"},"name":{"type":"string","description":"The name of the Cloud Run v2 Worker Pool.\n"},"nfs":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolumeNf:getWorkerPoolTemplateVolumeNf"},"description":"Represents an NFS mount.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolumeSecret:getWorkerPoolTemplateVolumeSecret"},"description":"Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n"}},"type":"object","required":["cloudSqlInstances","emptyDirs","gcs","name","nfs","secrets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolumeCloudSqlInstance:getWorkerPoolTemplateVolumeCloudSqlInstance":{"properties":{"instances":{"type":"array","items":{"type":"string"},"description":"The Cloud SQL instance connection names, as can be found in https://console.cloud.google.com/sql/instances. Visit https://cloud.google.com/sql/docs/mysql/connect-run for more information on how to connect Cloud SQL and Cloud Run. Format: {project}:{location}:{instance}\n"}},"type":"object","required":["instances"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolumeEmptyDir:getWorkerPoolTemplateVolumeEmptyDir":{"properties":{"medium":{"type":"string","description":"The different types of medium supported for EmptyDir. Default value: \"MEMORY\" Possible values: [\"MEMORY\"]\n"},"sizeLimit":{"type":"string","description":"Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.\n"}},"type":"object","required":["medium","sizeLimit"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolumeGc:getWorkerPoolTemplateVolumeGc":{"properties":{"bucket":{"type":"string","description":"GCS Bucket name\n"},"mountOptions":{"type":"array","items":{"type":"string"},"description":"A list of flags to pass to the gcsfuse command for configuring this volume.\nFlags should be passed without leading dashes.\n"},"readOnly":{"type":"boolean","description":"If true, mount the GCS bucket as read-only\n"}},"type":"object","required":["bucket","mountOptions","readOnly"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolumeNf:getWorkerPoolTemplateVolumeNf":{"properties":{"path":{"type":"string","description":"Path that is exported by the NFS server.\n"},"readOnly":{"type":"boolean","description":"If true, mount the NFS volume as read only\n"},"server":{"type":"string","description":"Hostname or IP address of the NFS server\n"}},"type":"object","required":["path","readOnly","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolumeSecret:getWorkerPoolTemplateVolumeSecret":{"properties":{"defaultMode":{"type":"integer","description":"Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.\n"},"items":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVolumeSecretItem:getWorkerPoolTemplateVolumeSecretItem"},"description":"If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.\n"},"secret":{"type":"string","description":"The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.\n"}},"type":"object","required":["defaultMode","items","secret"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVolumeSecretItem:getWorkerPoolTemplateVolumeSecretItem":{"properties":{"mode":{"type":"integer","description":"Integer octal mode bits to use on this file, must be a value between 01 and 0777 (octal). If 0 or not set, the Volume's default mode will be used.\n"},"path":{"type":"string","description":"The relative path of the secret in the container.\n"},"version":{"type":"string","description":"The Cloud Secret Manager secret version. Can be 'latest' for the latest value or an integer for a specific version\n"}},"type":"object","required":["mode","path","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVpcAccess:getWorkerPoolTemplateVpcAccess":{"properties":{"connector":{"type":"string","description":"VPC Access connector name. Format: projects/{project}/locations/{location}/connectors/{connector}, where {project} can be project id or number.\n"},"egress":{"type":"string","description":"Traffic VPC egress settings. Possible values: [\"ALL_TRAFFIC\", \"PRIVATE_RANGES_ONLY\"]\n"},"networkInterfaces":{"type":"array","items":{"$ref":"#/types/gcp:cloudrunv2/getWorkerPoolTemplateVpcAccessNetworkInterface:getWorkerPoolTemplateVpcAccessNetworkInterface"},"description":"Direct VPC egress settings. Currently only single network interface is supported.\n"}},"type":"object","required":["connector","egress","networkInterfaces"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTemplateVpcAccessNetworkInterface:getWorkerPoolTemplateVpcAccessNetworkInterface":{"properties":{"network":{"type":"string","description":"The VPC network that the Cloud Run resource will be able to send traffic to. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If network is not specified, it will be\nlooked up from the subnetwork.\n"},"subnetwork":{"type":"string","description":"The VPC subnetwork that the Cloud Run resource will get IPs from. At least one of network or subnetwork must be specified. If both\nnetwork and subnetwork are specified, the given VPC subnetwork must belong to the given VPC network. If subnetwork is not specified, the\nsubnetwork with the same name with the network will be used.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Network tags applied to this Cloud Run WorkerPool.\n"}},"type":"object","required":["network","subnetwork","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudrunv2/getWorkerPoolTerminalCondition:getWorkerPoolTerminalCondition":{"properties":{"executionReason":{"type":"string","description":"A reason for the execution condition.\n"},"lastTransitionTime":{"type":"string","description":"Last time the condition transitioned from one status to another.\n"},"message":{"type":"string","description":"Human readable message indicating details about the current status.\n"},"reason":{"type":"string","description":"A common (workerPool-level) reason for this condition.\n"},"revisionReason":{"type":"string","description":"A reason for the revision condition.\n"},"severity":{"type":"string","description":"How to interpret failures of this condition, one of Error, Warning, Info\n"},"state":{"type":"string","description":"State of the condition.\n"},"type":{"type":"string","description":"type is used to communicate the status of the reconciliation process. See also: https://github.com/knative/serving/blob/main/docs/spec/errors.md#error-conditions-and-reporting Types common to all resources include: * \"Ready\": True when the Resource is ready.\n"}},"type":"object","required":["executionReason","lastTransitionTime","message","reason","revisionReason","severity","state","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:cloudscheduler/JobAppEngineHttpTarget:JobAppEngineHttpTarget":{"properties":{"appEngineRouting":{"$ref":"#/types/gcp:cloudscheduler/JobAppEngineHttpTargetAppEngineRouting:JobAppEngineHttpTargetAppEngineRouting","description":"App Engine Routing setting for the job.\nStructure is documented below.\n"},"body":{"type":"string","description":"HTTP request body.\nA request body is allowed only if the HTTP method is POST or PUT.\nIt will result in invalid argument error to set a body on a job with an incompatible HttpMethod.\nA base64-encoded string.\n"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP request headers.\nThis map contains the header field names and values.\nHeaders can be set when the job is created.\n"},"httpMethod":{"type":"string","description":"Which HTTP method to use for the request.\n"},"relativeUri":{"type":"string","description":"The relative URI.\nThe relative URL must begin with \"/\" and must be a valid HTTP relative URL.\nIt can contain a path, query string arguments, and \\# fragments.\nIf the relative URL is empty, then the root path \"/\" will be used.\nNo spaces are allowed, and the maximum length allowed is 2083 characters\n"}},"type":"object","required":["relativeUri"]},"gcp:cloudscheduler/JobAppEngineHttpTargetAppEngineRouting:JobAppEngineHttpTargetAppEngineRouting":{"properties":{"instance":{"type":"string","description":"App instance.\nBy default, the job is sent to an instance which is available when the job is attempted.\n"},"service":{"type":"string","description":"App service.\nBy default, the job is sent to the service which is the default service when the job is attempted.\n"},"version":{"type":"string","description":"App version.\nBy default, the job is sent to the version which is the default version when the job is attempted.\n"}},"type":"object"},"gcp:cloudscheduler/JobHttpTarget:JobHttpTarget":{"properties":{"body":{"type":"string","description":"HTTP request body.\nA request body is allowed only if the HTTP method is POST, PUT, or PATCH.\nIt is an error to set body on a job with an incompatible HttpMethod.\nA base64-encoded string.\n"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"This map contains the header field names and values.\nRepeated headers are not supported, but a header value can contain commas.\n"},"httpMethod":{"type":"string","description":"Which HTTP method to use for the request.\n"},"oauthToken":{"$ref":"#/types/gcp:cloudscheduler/JobHttpTargetOauthToken:JobHttpTargetOauthToken","description":"Contains information needed for generating an OAuth token.\nThis type of authorization should be used when sending requests to a GCP endpoint.\nStructure is documented below.\n"},"oidcToken":{"$ref":"#/types/gcp:cloudscheduler/JobHttpTargetOidcToken:JobHttpTargetOidcToken","description":"Contains information needed for generating an OpenID Connect token.\nThis type of authorization should be used when sending requests to third party endpoints or Cloud Run.\nStructure is documented below.\n"},"uri":{"type":"string","description":"The full URI path that the request will be sent to.\n"}},"type":"object","required":["uri"]},"gcp:cloudscheduler/JobHttpTargetOauthToken:JobHttpTargetOauthToken":{"properties":{"scope":{"type":"string","description":"OAuth scope to be used for generating OAuth access token. If not specified,\n\"https://www.googleapis.com/auth/cloud-platform\" will be used.\n"},"serviceAccountEmail":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the job.\n"}},"type":"object","required":["serviceAccountEmail"]},"gcp:cloudscheduler/JobHttpTargetOidcToken:JobHttpTargetOidcToken":{"properties":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. If not specified,\nthe URI specified in target will be used.\n"},"serviceAccountEmail":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the job.\n"}},"type":"object","required":["serviceAccountEmail"]},"gcp:cloudscheduler/JobPubsubTarget:JobPubsubTarget":{"properties":{"attributes":{"type":"object","additionalProperties":{"type":"string"},"description":"Attributes for PubsubMessage.\nPubsub message must contain either non-empty data, or at least one attribute.\n"},"data":{"type":"string","description":"The message payload for PubsubMessage.\nPubsub message must contain either non-empty data, or at least one attribute.\nA base64-encoded string.\n"},"topicName":{"type":"string","description":"The full resource name for the Cloud Pub/Sub topic to which\nmessages will be published when a job is delivered. ~\u003e**NOTE:**\nThe topic name must be in the same format as required by PubSub's\nPublishRequest.name, e.g. `projects/my-project/topics/my-topic`.\n"}},"type":"object","required":["topicName"]},"gcp:cloudscheduler/JobRetryConfig:JobRetryConfig":{"properties":{"maxBackoffDuration":{"type":"string","description":"The maximum amount of time to wait before retrying a job after it fails.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\n"},"maxDoublings":{"type":"integer","description":"The time between retries will double maxDoublings times.\nA job's retry interval starts at minBackoffDuration,\nthen doubles maxDoublings times, then increases linearly,\nand finally retries retries at intervals of maxBackoffDuration up to retryCount times.\n"},"maxRetryDuration":{"type":"string","description":"The time limit for retrying a failed job, measured from time when an execution was first attempted.\nIf specified with retryCount, the job will be retried until both limits are reached.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\n"},"minBackoffDuration":{"type":"string","description":"The minimum amount of time to wait before retrying a job after it fails.\nA duration in seconds with up to nine fractional digits, terminated by 's'.\n"},"retryCount":{"type":"integer","description":"The number of attempts that the system will make to run a\njob using the exponential backoff procedure described by maxDoublings.\nValues greater than 5 and negative values are not allowed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxBackoffDuration","maxDoublings","maxRetryDuration","minBackoffDuration","retryCount"]}}},"gcp:cloudsecuritycompliance/CloudControlParameterSpec:CloudControlParameterSpec":{"properties":{"defaultValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValue:CloudControlParameterSpecDefaultValue","description":"Possible parameter value types.\nStructure is documented below.\n"},"description":{"type":"string","description":"The description of the parameter. The maximum length is 2000 characters.\n"},"displayName":{"type":"string","description":"The display name of the parameter. The maximum length is 200 characters.\n"},"isRequired":{"type":"boolean","description":"if the parameter is required\n"},"name":{"type":"string","description":"The name of the parameter.\n"},"subParameters":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameter:CloudControlParameterSpecSubParameter"},"description":"The parameter spec of the cloud control.\nStructure is documented below.\n"},"substitutionRules":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubstitutionRule:CloudControlParameterSpecSubstitutionRule"},"description":"List of parameter substitutions.\nStructure is documented below.\n"},"validation":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidation:CloudControlParameterSpecValidation","description":"Validation of the parameter.\nStructure is documented below.\n"},"valueType":{"type":"string","description":"Parameter value type.\nPossible values:\nSTRING\nBOOLEAN\nSTRINGLIST\nNUMBER\nONEOF\n"}},"type":"object","required":["isRequired","name","valueType"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValue:CloudControlParameterSpecDefaultValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"oneofValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueOneofValue:CloudControlParameterSpecDefaultValueOneofValue","description":"Sub-parameter values.\nStructure is documented below.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueStringListValue:CloudControlParameterSpecDefaultValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueOneofValue:CloudControlParameterSpecDefaultValueOneofValue":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueOneofValueParameterValue:CloudControlParameterSpecDefaultValueOneofValueParameterValue","description":"The value of the parameter.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueOneofValueParameterValue:CloudControlParameterSpecDefaultValueOneofValueParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueOneofValueParameterValueStringListValue:CloudControlParameterSpecDefaultValueOneofValueParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueOneofValueParameterValueStringListValue:CloudControlParameterSpecDefaultValueOneofValueParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecDefaultValueStringListValue:CloudControlParameterSpecDefaultValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameter:CloudControlParameterSpecSubParameter":{"properties":{"defaultValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValue:CloudControlParameterSpecSubParameterDefaultValue","description":"Possible parameter value types.\nStructure is documented below.\n"},"description":{"type":"string","description":"The description of the parameter. The maximum length is 2000 characters.\n"},"displayName":{"type":"string","description":"The display name of the parameter. The maximum length is 200 characters.\n"},"isRequired":{"type":"boolean","description":"if the parameter is required\n"},"name":{"type":"string","description":"The name of the parameter.\n"},"substitutionRules":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterSubstitutionRule:CloudControlParameterSpecSubParameterSubstitutionRule"},"description":"List of parameter substitutions.\nStructure is documented below.\n"},"validation":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidation:CloudControlParameterSpecSubParameterValidation","description":"Validation of the parameter.\nStructure is documented below.\n"},"valueType":{"type":"string","description":"Parameter value type.\nPossible values:\nSTRING\nBOOLEAN\nSTRINGLIST\nNUMBER\nONEOF\n"}},"type":"object","required":["isRequired","name","valueType"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValue:CloudControlParameterSpecSubParameterDefaultValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"oneofValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueOneofValue:CloudControlParameterSpecSubParameterDefaultValueOneofValue","description":"Sub-parameter values.\nStructure is documented below.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueStringListValue:CloudControlParameterSpecSubParameterDefaultValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueOneofValue:CloudControlParameterSpecSubParameterDefaultValueOneofValue":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValue:CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValue","description":"The value of the parameter.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValue:CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValueStringListValue:CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValueStringListValue:CloudControlParameterSpecSubParameterDefaultValueOneofValueParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterDefaultValueStringListValue:CloudControlParameterSpecSubParameterDefaultValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterSubstitutionRule:CloudControlParameterSpecSubParameterSubstitutionRule":{"properties":{"attributeSubstitutionRule":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterSubstitutionRuleAttributeSubstitutionRule:CloudControlParameterSpecSubParameterSubstitutionRuleAttributeSubstitutionRule","description":"Attribute at the given path is substituted entirely.\nStructure is documented below.\n"},"placeholderSubstitutionRule":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterSubstitutionRulePlaceholderSubstitutionRule:CloudControlParameterSpecSubParameterSubstitutionRulePlaceholderSubstitutionRule","description":"Placeholder is substituted in the rendered string.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterSubstitutionRuleAttributeSubstitutionRule:CloudControlParameterSpecSubParameterSubstitutionRuleAttributeSubstitutionRule":{"properties":{"attribute":{"type":"string","description":"Fully qualified proto attribute path (in dot notation).\nExample: rules[0].cel_expression.resource_types_values\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterSubstitutionRulePlaceholderSubstitutionRule:CloudControlParameterSpecSubParameterSubstitutionRulePlaceholderSubstitutionRule":{"properties":{"attribute":{"type":"string","description":"Fully qualified proto attribute path (e.g., dot notation)\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidation:CloudControlParameterSpecSubParameterValidation":{"properties":{"allowedValues":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValues:CloudControlParameterSpecSubParameterValidationAllowedValues","description":"Allowed set of values for the parameter.\nStructure is documented below.\n"},"intRange":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationIntRange:CloudControlParameterSpecSubParameterValidationIntRange","description":"Number range for number parameters.\nStructure is documented below.\n"},"regexpPattern":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationRegexpPattern:CloudControlParameterSpecSubParameterValidationRegexpPattern","description":"Regular Expression Validator for parameter values.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValues:CloudControlParameterSpecSubParameterValidationAllowedValues":{"properties":{"values":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValue"},"description":"List of allowed values for the parameter.\nStructure is documented below.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"oneofValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValue","description":"Sub-parameter values.\nStructure is documented below.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueStringListValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValue":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValue","description":"The value of the parameter.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValueStringListValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValueStringListValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueOneofValueParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationAllowedValuesValueStringListValue:CloudControlParameterSpecSubParameterValidationAllowedValuesValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationIntRange:CloudControlParameterSpecSubParameterValidationIntRange":{"properties":{"max":{"type":"string","description":"Maximum allowed value for the numeric parameter (inclusive).\n"},"min":{"type":"string","description":"Minimum allowed value for the numeric parameter (inclusive).\n"}},"type":"object","required":["max","min"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubParameterValidationRegexpPattern:CloudControlParameterSpecSubParameterValidationRegexpPattern":{"properties":{"pattern":{"type":"string","description":"Regex Pattern to match the value(s) of parameter.\n"}},"type":"object","required":["pattern"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubstitutionRule:CloudControlParameterSpecSubstitutionRule":{"properties":{"attributeSubstitutionRule":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubstitutionRuleAttributeSubstitutionRule:CloudControlParameterSpecSubstitutionRuleAttributeSubstitutionRule","description":"Attribute at the given path is substituted entirely.\nStructure is documented below.\n"},"placeholderSubstitutionRule":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecSubstitutionRulePlaceholderSubstitutionRule:CloudControlParameterSpecSubstitutionRulePlaceholderSubstitutionRule","description":"Placeholder is substituted in the rendered string.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubstitutionRuleAttributeSubstitutionRule:CloudControlParameterSpecSubstitutionRuleAttributeSubstitutionRule":{"properties":{"attribute":{"type":"string","description":"Fully qualified proto attribute path (in dot notation).\nExample: rules[0].cel_expression.resource_types_values\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecSubstitutionRulePlaceholderSubstitutionRule:CloudControlParameterSpecSubstitutionRulePlaceholderSubstitutionRule":{"properties":{"attribute":{"type":"string","description":"Fully qualified proto attribute path (e.g., dot notation)\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidation:CloudControlParameterSpecValidation":{"properties":{"allowedValues":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValues:CloudControlParameterSpecValidationAllowedValues","description":"Allowed set of values for the parameter.\nStructure is documented below.\n"},"intRange":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationIntRange:CloudControlParameterSpecValidationIntRange","description":"Number range for number parameters.\nStructure is documented below.\n"},"regexpPattern":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationRegexpPattern:CloudControlParameterSpecValidationRegexpPattern","description":"Regular Expression Validator for parameter values.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValues:CloudControlParameterSpecValidationAllowedValues":{"properties":{"values":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValue:CloudControlParameterSpecValidationAllowedValuesValue"},"description":"List of allowed values for the parameter.\nStructure is documented below.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValue:CloudControlParameterSpecValidationAllowedValuesValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"oneofValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueOneofValue:CloudControlParameterSpecValidationAllowedValuesValueOneofValue","description":"Sub-parameter values.\nStructure is documented below.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueStringListValue:CloudControlParameterSpecValidationAllowedValuesValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueOneofValue:CloudControlParameterSpecValidationAllowedValuesValueOneofValue":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValue:CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValue","description":"The value of the parameter.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValue:CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValueStringListValue:CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValueStringListValue:CloudControlParameterSpecValidationAllowedValuesValueOneofValueParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationAllowedValuesValueStringListValue:CloudControlParameterSpecValidationAllowedValuesValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationIntRange:CloudControlParameterSpecValidationIntRange":{"properties":{"max":{"type":"string","description":"Maximum allowed value for the numeric parameter (inclusive).\n"},"min":{"type":"string","description":"Minimum allowed value for the numeric parameter (inclusive).\n"}},"type":"object","required":["max","min"]},"gcp:cloudsecuritycompliance/CloudControlParameterSpecValidationRegexpPattern:CloudControlParameterSpecValidationRegexpPattern":{"properties":{"pattern":{"type":"string","description":"Regex Pattern to match the value(s) of parameter.\n"}},"type":"object","required":["pattern"]},"gcp:cloudsecuritycompliance/CloudControlRule:CloudControlRule":{"properties":{"celExpression":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlRuleCelExpression:CloudControlRuleCelExpression","description":"A [CEL\nexpression](https://cloud.google.com/certificate-authority-service/docs/using-cel).\nStructure is documented below.\n"},"description":{"type":"string","description":"Description of the Rule. The maximum length is 2000 characters.\n"},"ruleActionTypes":{"type":"array","items":{"type":"string"},"description":"The functionality enabled by the Rule.\n"}},"type":"object","required":["ruleActionTypes"]},"gcp:cloudsecuritycompliance/CloudControlRuleCelExpression:CloudControlRuleCelExpression":{"properties":{"expression":{"type":"string","description":"Logic expression in CEL language.\nThe max length of the condition is 1000 characters.\n"},"resourceTypesValues":{"$ref":"#/types/gcp:cloudsecuritycompliance/CloudControlRuleCelExpressionResourceTypesValues:CloudControlRuleCelExpressionResourceTypesValues","description":"A list of strings.\nStructure is documented below.\n"}},"type":"object","required":["expression"]},"gcp:cloudsecuritycompliance/CloudControlRuleCelExpressionResourceTypesValues:CloudControlRuleCelExpressionResourceTypesValues":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetail:FrameworkCloudControlDetail":{"properties":{"majorRevisionId":{"type":"string","description":"Major revision of cloudcontrol\n"},"name":{"type":"string","description":"The name of the CloudControl in the format:\n“organizations/{organization}/locations/{location}/cloudControls/{cloud-control}”\n"},"parameters":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameter:FrameworkCloudControlDetailParameter"},"description":"Parameters is a key-value pair that is required by the CloudControl. The\nspecification of these parameters will be present in cloudcontrol.Eg: {\n\"name\": \"location\",\"value\": \"us-west-1\"}.\nStructure is documented below.\n"}},"type":"object","required":["majorRevisionId","name"]},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameter:FrameworkCloudControlDetailParameter":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValue:FrameworkCloudControlDetailParameterParameterValue","description":"Possible parameter value types.\nStructure is documented below.\n"}},"type":"object","required":["name","parameterValue"]},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValue:FrameworkCloudControlDetailParameterParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"oneofValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueOneofValue:FrameworkCloudControlDetailParameterParameterValueOneofValue","description":"Sub-parameter values.\nStructure is documented below.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueStringListValue:FrameworkCloudControlDetailParameterParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueOneofValue:FrameworkCloudControlDetailParameterParameterValueOneofValue":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n"},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValue:FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValue","description":"The value of the parameter.\nStructure is documented below.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValue:FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n"},"numberValue":{"type":"number","description":"Represents a double value.\n"},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValueStringListValue:FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n"},"stringValue":{"type":"string","description":"Represents a string value.\n"}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValueStringListValue:FrameworkCloudControlDetailParameterParameterValueOneofValueParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/FrameworkCloudControlDetailParameterParameterValueStringListValue:FrameworkCloudControlDetailParameterParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n"}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlDeploymentReference:FrameworkDeploymentCloudControlDeploymentReference":{"properties":{"cloudControlDeployment":{"type":"string","description":"(Output)\nThe name of the CloudControlDeployment. The format is:\norganizations/{org}/locations/{location}/cloudControlDeployments/{cloud_control_deployment_id}\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudControlDeployment"]}}},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadata:FrameworkDeploymentCloudControlMetadata":{"properties":{"cloudControlDetails":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetails:FrameworkDeploymentCloudControlMetadataCloudControlDetails","description":"CloudControlDetails contains the details of a CloudControl.\nStructure is documented below.\n","willReplaceOnChanges":true},"enforcementMode":{"type":"string","description":"Enforcement mode for the framework deployment.\nPossible values:\nPREVENTIVE\nDETECTIVE\nAUDIT\n","willReplaceOnChanges":true}},"type":"object","required":["cloudControlDetails","enforcementMode"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetails:FrameworkDeploymentCloudControlMetadataCloudControlDetails":{"properties":{"majorRevisionId":{"type":"string","description":"Major revision of cloudcontrol\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the CloudControl in the format:\n“organizations/{organization}/locations/{location}/\ncloudControls/{cloud-control}”\n","willReplaceOnChanges":true},"parameters":{"type":"array","items":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameter:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameter"},"description":"Parameters is a key-value pair that is required by the CloudControl. The\nspecification of these parameters will be present in cloudcontrol.Eg: {\n\"name\": \"location\",\"value\": \"us-west-1\"}.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["majorRevisionId","name"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameter:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameter":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n","willReplaceOnChanges":true},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValue","description":"Possible parameter value types.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["name","parameterValue"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n","willReplaceOnChanges":true},"numberValue":{"type":"number","description":"Represents a double value.\n","willReplaceOnChanges":true},"oneofValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValue","description":"Sub-parameter values.\nStructure is documented below.\n","willReplaceOnChanges":true},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueStringListValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n","willReplaceOnChanges":true},"stringValue":{"type":"string","description":"Represents a string value.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValue":{"properties":{"name":{"type":"string","description":"The name of the parameter.\n","willReplaceOnChanges":true},"parameterValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValue","description":"The value of the parameter.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValue":{"properties":{"boolValue":{"type":"boolean","description":"Represents a boolean value.\n","willReplaceOnChanges":true},"numberValue":{"type":"number","description":"Represents a double value.\n","willReplaceOnChanges":true},"stringListValue":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValueStringListValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValueStringListValue","description":"A list of strings.\nStructure is documented below.\n","willReplaceOnChanges":true},"stringValue":{"type":"string","description":"Represents a string value.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValueStringListValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueOneofValueParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n","willReplaceOnChanges":true}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueStringListValue:FrameworkDeploymentCloudControlMetadataCloudControlDetailsParameterParameterValueStringListValue":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"The strings in the list.\n","willReplaceOnChanges":true}},"type":"object","required":["values"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentFramework:FrameworkDeploymentFramework":{"properties":{"framework":{"type":"string","description":"In the format:\norganizations/{org}/locations/{location}/frameworks/{framework}\n","willReplaceOnChanges":true},"majorRevisionId":{"type":"string","description":"Major revision id of the framework.\n","willReplaceOnChanges":true}},"type":"object","required":["framework","majorRevisionId"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfig:FrameworkDeploymentTargetResourceConfig":{"properties":{"existingTargetResource":{"type":"string","description":"CRM node in format organizations/{organization}, folders/{folder},\nor projects/{project}\n","willReplaceOnChanges":true},"targetResourceCreationConfig":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfig:FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfig","description":"TargetResourceCreationConfig contains the config to create a new resource to\nbe used as the\u003cspan pulumi-lang-nodejs=\" targetResource \" pulumi-lang-dotnet=\" TargetResource \" pulumi-lang-go=\" targetResource \" pulumi-lang-python=\" target_resource \" pulumi-lang-yaml=\" targetResource \" pulumi-lang-java=\" targetResource \"\u003e target_resource \u003c/span\u003eof a deployment.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfig:FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfig":{"properties":{"folderCreationConfig":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigFolderCreationConfig:FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigFolderCreationConfig","description":"FolderCreationConfig contains the config to create a new folder to be used\nas the\u003cspan pulumi-lang-nodejs=\" targetResource \" pulumi-lang-dotnet=\" TargetResource \" pulumi-lang-go=\" targetResource \" pulumi-lang-python=\" target_resource \" pulumi-lang-yaml=\" targetResource \" pulumi-lang-java=\" targetResource \"\u003e target_resource \u003c/span\u003eof a deployment.\nStructure is documented below.\n","willReplaceOnChanges":true},"projectCreationConfig":{"$ref":"#/types/gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigProjectCreationConfig:FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigProjectCreationConfig","description":"ProjectCreationConfig contains the config to create a new project to be used\nas the\u003cspan pulumi-lang-nodejs=\" targetResource \" pulumi-lang-dotnet=\" TargetResource \" pulumi-lang-go=\" targetResource \" pulumi-lang-python=\" target_resource \" pulumi-lang-yaml=\" targetResource \" pulumi-lang-java=\" targetResource \"\u003e target_resource \u003c/span\u003eof a deployment.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigFolderCreationConfig:FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigFolderCreationConfig":{"properties":{"folderDisplayName":{"type":"string","description":"Display name of the folder to be created\n","willReplaceOnChanges":true},"parent":{"type":"string","description":"The parent of the folder to be created. It can be an organizations/{org} or\nfolders/{folder}\n","willReplaceOnChanges":true}},"type":"object","required":["folderDisplayName","parent"]},"gcp:cloudsecuritycompliance/FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigProjectCreationConfig:FrameworkDeploymentTargetResourceConfigTargetResourceCreationConfigProjectCreationConfig":{"properties":{"billingAccountId":{"type":"string","description":"Billing account id to be used for the project.\n","willReplaceOnChanges":true},"parent":{"type":"string","description":"organizations/{org} or folders/{folder}\n","willReplaceOnChanges":true},"projectDisplayName":{"type":"string","description":"Display name of the project to be created.\n","willReplaceOnChanges":true}},"type":"object","required":["billingAccountId","parent","projectDisplayName"]},"gcp:cloudtasks/QueueAppEngineRoutingOverride:QueueAppEngineRoutingOverride":{"properties":{"host":{"type":"string","description":"(Output)\nThe host that the task is sent to.\n"},"instance":{"type":"string","description":"App instance.\nBy default, the task is sent to an instance which is available when the task is attempted.\n"},"service":{"type":"string","description":"App service.\nBy default, the task is sent to the service which is the default service when the task is attempted.\n"},"version":{"type":"string","description":"App version.\nBy default, the task is sent to the version which is the default version when the task is attempted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["host"]}}},"gcp:cloudtasks/QueueHttpTarget:QueueHttpTarget":{"properties":{"headerOverrides":{"type":"array","items":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetHeaderOverride:QueueHttpTargetHeaderOverride"},"description":"HTTP target headers.\nThis map contains the header field names and values.\nHeaders will be set when running the CreateTask and/or BufferTask.\nThese headers represent a subset of the headers that will be configured for the task's HTTP request.\nSome HTTP request headers will be ignored or replaced.\nHeaders which can have multiple values (according to RFC2616) can be specified using comma-separated values.\nThe size of the headers must be less than 80KB. Queue-level headers to override headers of all the tasks in the queue.\nStructure is documented below.\n"},"httpMethod":{"type":"string","description":"The HTTP method to use for the request.\nWhen specified, it overrides HttpRequest for the task.\nNote that if the value is set to GET the body of the task will be ignored at execution time.\nPossible values are: `HTTP_METHOD_UNSPECIFIED`, `POST`, `GET`, `HEAD`, `PUT`, `DELETE`, `PATCH`, `OPTIONS`.\n"},"oauthToken":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetOauthToken:QueueHttpTargetOauthToken","description":"If specified, an OAuth token is generated and attached as the Authorization header in the HTTP request.\nThis type of authorization should generally be used only when calling Google APIs hosted on *.googleapis.com.\nNote that both the service account email and the scope MUST be specified when using the queue-level authorization override.\nStructure is documented below.\n"},"oidcToken":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetOidcToken:QueueHttpTargetOidcToken","description":"If specified, an OIDC token is generated and attached as an Authorization header in the HTTP request.\nThis type of authorization can be used for many scenarios, including calling Cloud Run, or endpoints where you intend to validate the token yourself.\nNote that both the service account email and the audience MUST be specified when using the queue-level authorization override.\nStructure is documented below.\n"},"uriOverride":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetUriOverride:QueueHttpTargetUriOverride","description":"URI override.\nWhen specified, overrides the execution URI for all the tasks in the queue.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["httpMethod"]}}},"gcp:cloudtasks/QueueHttpTargetHeaderOverride:QueueHttpTargetHeaderOverride":{"properties":{"header":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetHeaderOverrideHeader:QueueHttpTargetHeaderOverrideHeader","description":"Header embodying a key and a value.\nStructure is documented below.\n"}},"type":"object","required":["header"]},"gcp:cloudtasks/QueueHttpTargetHeaderOverrideHeader:QueueHttpTargetHeaderOverrideHeader":{"properties":{"key":{"type":"string","description":"The Key of the header.\n"},"value":{"type":"string","description":"The Value of the header.\n"}},"type":"object","required":["key","value"]},"gcp:cloudtasks/QueueHttpTargetOauthToken:QueueHttpTargetOauthToken":{"properties":{"scope":{"type":"string","description":"OAuth scope to be used for generating OAuth access token.\nIf not specified, \"https://www.googleapis.com/auth/cloud-platform\" will be used.\n"},"serviceAccountEmail":{"type":"string","description":"Service account email to be used for generating OAuth token.\nThe service account must be within the same project as the queue.\nThe caller must have iam.serviceAccounts.actAs permission for the service account.\n"}},"type":"object","required":["serviceAccountEmail"],"language":{"nodejs":{"requiredOutputs":["scope","serviceAccountEmail"]}}},"gcp:cloudtasks/QueueHttpTargetOidcToken:QueueHttpTargetOidcToken":{"properties":{"audience":{"type":"string","description":"Audience to be used when generating OIDC token. If not specified, the URI specified in target will be used.\n"},"serviceAccountEmail":{"type":"string","description":"Service account email to be used for generating OIDC token.\nThe service account must be within the same project as the queue.\nThe caller must have iam.serviceAccounts.actAs permission for the service account.\n"}},"type":"object","required":["serviceAccountEmail"],"language":{"nodejs":{"requiredOutputs":["audience","serviceAccountEmail"]}}},"gcp:cloudtasks/QueueHttpTargetUriOverride:QueueHttpTargetUriOverride":{"properties":{"host":{"type":"string","description":"Host override.\nWhen specified, replaces the host part of the task URL.\nFor example, if the task URL is \"https://www.google.com\", and host value\nis set to \"example.net\", the overridden URI will be changed to \"https://example.net\".\nHost value cannot be an empty string (INVALID_ARGUMENT).\n"},"pathOverride":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetUriOverridePathOverride:QueueHttpTargetUriOverridePathOverride","description":"URI path.\nWhen specified, replaces the existing path of the task URL.\nSetting the path value to an empty string clears the URI path segment.\nStructure is documented below.\n"},"port":{"type":"string","description":"Port override.\nWhen specified, replaces the port part of the task URI.\nFor instance, for a URI http://www.google.com/foo and port=123, the overridden URI becomes http://www.google.com:123/foo.\nNote that the port value must be a positive integer.\nSetting the port to 0 (Zero) clears the URI port.\n"},"queryOverride":{"$ref":"#/types/gcp:cloudtasks/QueueHttpTargetUriOverrideQueryOverride:QueueHttpTargetUriOverrideQueryOverride","description":"URI query.\nWhen specified, replaces the query part of the task URI. Setting the query value to an empty string clears the URI query segment.\nStructure is documented below.\n"},"scheme":{"type":"string","description":"Scheme override.\nWhen specified, the task URI scheme is replaced by the provided value (HTTP or HTTPS).\nPossible values are: `HTTP`, `HTTPS`.\n"},"uriOverrideEnforceMode":{"type":"string","description":"URI Override Enforce Mode\nWhen specified, determines the Target UriOverride mode. If not specified, it defaults to ALWAYS.\nPossible values are: `ALWAYS`, `IF_NOT_EXISTS`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["scheme","uriOverrideEnforceMode"]}}},"gcp:cloudtasks/QueueHttpTargetUriOverridePathOverride:QueueHttpTargetUriOverridePathOverride":{"properties":{"path":{"type":"string","description":"The URI path (e.g., /users/1234). Default is an empty string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["path"]}}},"gcp:cloudtasks/QueueHttpTargetUriOverrideQueryOverride:QueueHttpTargetUriOverrideQueryOverride":{"properties":{"queryParams":{"type":"string","description":"The query parameters (e.g., qparam1=123\u0026qparam2=456). Default is an empty string.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["queryParams"]}}},"gcp:cloudtasks/QueueIamBindingCondition:QueueIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudtasks/QueueIamMemberCondition:QueueIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:cloudtasks/QueueRateLimits:QueueRateLimits":{"properties":{"maxBurstSize":{"type":"integer","description":"(Output)\nThe max burst size.\nMax burst size limits how fast tasks in queue are processed when many tasks are\nin the queue and the rate is high. This field allows the queue to have a high\nrate so processing starts shortly after a task is enqueued, but still limits\nresource usage when many tasks are enqueued in a short period of time.\n"},"maxConcurrentDispatches":{"type":"integer","description":"The maximum number of concurrent tasks that Cloud Tasks allows to\nbe dispatched for this queue. After this threshold has been\nreached, Cloud Tasks stops dispatching tasks until the number of\nconcurrent requests decreases.\n"},"maxDispatchesPerSecond":{"type":"number","description":"The maximum rate at which tasks are dispatched from this queue.\nIf unspecified when the queue is created, Cloud Tasks will pick the default.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxBurstSize","maxConcurrentDispatches","maxDispatchesPerSecond"]}}},"gcp:cloudtasks/QueueRetryConfig:QueueRetryConfig":{"properties":{"maxAttempts":{"type":"integer","description":"Number of attempts per task.\nCloud Tasks will attempt the task maxAttempts times (that is, if\nthe first attempt fails, then there will be maxAttempts - 1\nretries). Must be \u003e= -1.\nIf unspecified when the queue is created, Cloud Tasks will pick\nthe default.\n-1 indicates unlimited attempts.\n"},"maxBackoff":{"type":"string","description":"A task will be scheduled for retry between minBackoff and\nmaxBackoff duration after it fails, if the queue's RetryConfig\nspecifies that the task should be retried.\n"},"maxDoublings":{"type":"integer","description":"The time between retries will double maxDoublings times.\nA task's retry interval starts at minBackoff, then doubles maxDoublings times,\nthen increases linearly, and finally retries retries at intervals of maxBackoff\nup to maxAttempts times.\n"},"maxRetryDuration":{"type":"string","description":"If positive, maxRetryDuration specifies the time limit for\nretrying a failed task, measured from when the task was first\nattempted. Once maxRetryDuration time has passed and the task has\nbeen attempted maxAttempts times, no further attempts will be\nmade and the task will be deleted.\nIf zero, then the task age is unlimited.\n"},"minBackoff":{"type":"string","description":"A task will be scheduled for retry between minBackoff and\nmaxBackoff duration after it fails, if the queue's RetryConfig\nspecifies that the task should be retried.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxAttempts","maxBackoff","maxDoublings","maxRetryDuration","minBackoff"]}}},"gcp:cloudtasks/QueueStackdriverLoggingConfig:QueueStackdriverLoggingConfig":{"properties":{"samplingRatio":{"type":"number","description":"Specifies the fraction of operations to write to Stackdriver Logging.\nThis field may contain any value between 0.0 and 1.0, inclusive. 0.0 is the\ndefault and means that no operations are logged.\n"}},"type":"object","required":["samplingRatio"]},"gcp:colab/NotebookExecutionCustomEnvironmentSpec:NotebookExecutionCustomEnvironmentSpec":{"properties":{"machineSpec":{"$ref":"#/types/gcp:colab/NotebookExecutionCustomEnvironmentSpecMachineSpec:NotebookExecutionCustomEnvironmentSpecMachineSpec","description":"'The machine configuration of the runtime.'\nStructure is documented below.\n","willReplaceOnChanges":true},"networkSpec":{"$ref":"#/types/gcp:colab/NotebookExecutionCustomEnvironmentSpecNetworkSpec:NotebookExecutionCustomEnvironmentSpecNetworkSpec","description":"The network configuration for the runtime.\nStructure is documented below.\n","willReplaceOnChanges":true},"persistentDiskSpec":{"$ref":"#/types/gcp:colab/NotebookExecutionCustomEnvironmentSpecPersistentDiskSpec:NotebookExecutionCustomEnvironmentSpecPersistentDiskSpec","description":"The configuration for the data disk of the runtime.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/NotebookExecutionCustomEnvironmentSpecMachineSpec:NotebookExecutionCustomEnvironmentSpecMachineSpec":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of accelerators used by the runtime.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"The type of hardware accelerator used by the runtime. If specified, acceleratorCount must also be specified.\n","willReplaceOnChanges":true},"machineType":{"type":"string","description":"The Compute Engine machine type selected for the runtime.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/NotebookExecutionCustomEnvironmentSpecNetworkSpec:NotebookExecutionCustomEnvironmentSpecNetworkSpec":{"properties":{"enableInternetAccess":{"type":"boolean","description":"Enable public internet access for the runtime.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The name of the VPC that this runtime is in.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The name of the subnetwork that this runtime is in.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/NotebookExecutionCustomEnvironmentSpecPersistentDiskSpec:NotebookExecutionCustomEnvironmentSpecPersistentDiskSpec":{"properties":{"diskSizeGb":{"type":"string","description":"The disk size of the runtime in GB. If specified, the diskType must also be specified. The minimum size is 10GB and the maximum is 65536GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The type of the persistent disk.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/NotebookExecutionDataformRepositorySource:NotebookExecutionDataformRepositorySource":{"properties":{"commitSha":{"type":"string","description":"The commit SHA to read repository with. If unset, the file will be read at HEAD.\n","willReplaceOnChanges":true},"dataformRepositoryResourceName":{"type":"string","description":"The resource name of the Dataform Repository.\n","willReplaceOnChanges":true}},"type":"object","required":["dataformRepositoryResourceName"]},"gcp:colab/NotebookExecutionDirectNotebookSource:NotebookExecutionDirectNotebookSource":{"properties":{"content":{"type":"string","description":"The base64-encoded contents of the input notebook file.\n","willReplaceOnChanges":true}},"type":"object","required":["content"]},"gcp:colab/NotebookExecutionGcsNotebookSource:NotebookExecutionGcsNotebookSource":{"properties":{"generation":{"type":"string","description":"The version of the Cloud Storage object to read. If unset, the current version of the object is read. See https://cloud.google.com/storage/docs/metadata#generation-number.\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The Cloud Storage uri pointing to the ipynb file.\n","willReplaceOnChanges":true}},"type":"object","required":["uri"]},"gcp:colab/RuntimeNotebookRuntimeTemplateRef:RuntimeNotebookRuntimeTemplateRef":{"properties":{"notebookRuntimeTemplate":{"type":"string","description":"The resource name of the NotebookRuntimeTemplate based on which a NotebookRuntime will be created.\n","willReplaceOnChanges":true}},"type":"object","required":["notebookRuntimeTemplate"]},"gcp:colab/RuntimeTemplateDataPersistentDiskSpec:RuntimeTemplateDataPersistentDiskSpec":{"properties":{"diskSizeGb":{"type":"string","description":"The disk size of the runtime in GB. If specified, the diskType must also be specified. The minimum size is 10GB and the maximum is 65536GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The type of the persistent disk.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskSizeGb","diskType"]}}},"gcp:colab/RuntimeTemplateEncryptionSpec:RuntimeTemplateEncryptionSpec":{"properties":{"kmsKeyName":{"type":"string","description":"The Cloud KMS encryption key (customer-managed encryption key) used to protect the runtime.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/RuntimeTemplateEucConfig:RuntimeTemplateEucConfig":{"properties":{"eucDisabled":{"type":"boolean","description":"Disable end user credential access for the runtime.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["eucDisabled"]}}},"gcp:colab/RuntimeTemplateIamBindingCondition:RuntimeTemplateIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:colab/RuntimeTemplateIamMemberCondition:RuntimeTemplateIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:colab/RuntimeTemplateIdleShutdownConfig:RuntimeTemplateIdleShutdownConfig":{"properties":{"idleTimeout":{"type":"string","description":"The duration after which the runtime is automatically shut down. An input of 0s disables the idle shutdown feature, and a valid range is [10m, 24h].\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["idleTimeout"]}}},"gcp:colab/RuntimeTemplateMachineSpec:RuntimeTemplateMachineSpec":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of accelerators used by the runtime.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"The type of hardware accelerator used by the runtime. If specified, acceleratorCount must also be specified.\n","willReplaceOnChanges":true},"machineType":{"type":"string","description":"The Compute Engine machine type selected for the runtime.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["acceleratorCount","machineType"]}}},"gcp:colab/RuntimeTemplateNetworkSpec:RuntimeTemplateNetworkSpec":{"properties":{"enableInternetAccess":{"type":"boolean","description":"Enable public internet access for the runtime.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The name of the VPC that this runtime is in.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The name of the subnetwork that this runtime is in.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["network"]}}},"gcp:colab/RuntimeTemplateShieldedVmConfig:RuntimeTemplateShieldedVmConfig":{"properties":{"enableSecureBoot":{"type":"boolean","description":"Enables secure boot for the runtime.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableSecureBoot"]}}},"gcp:colab/RuntimeTemplateSoftwareConfig:RuntimeTemplateSoftwareConfig":{"properties":{"envs":{"type":"array","items":{"$ref":"#/types/gcp:colab/RuntimeTemplateSoftwareConfigEnv:RuntimeTemplateSoftwareConfigEnv"},"description":"Environment variables to be passed to the container.\nStructure is documented below.\n","willReplaceOnChanges":true},"postStartupScriptConfig":{"$ref":"#/types/gcp:colab/RuntimeTemplateSoftwareConfigPostStartupScriptConfig:RuntimeTemplateSoftwareConfigPostStartupScriptConfig","description":"Post startup script config.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/RuntimeTemplateSoftwareConfigEnv:RuntimeTemplateSoftwareConfigEnv":{"properties":{"name":{"type":"string","description":"Name of the environment variable. Must be a valid C identifier.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/RuntimeTemplateSoftwareConfigPostStartupScriptConfig:RuntimeTemplateSoftwareConfigPostStartupScriptConfig":{"properties":{"postStartupScript":{"type":"string","description":"Post startup script to run after runtime is started.\n","willReplaceOnChanges":true},"postStartupScriptBehavior":{"type":"string","description":"Post startup script behavior that defines download and execution behavior.\nPossible values are: `RUN_ONCE`, `RUN_EVERY_START`, `DOWNLOAD_AND_RUN_EVERY_START`.\n","willReplaceOnChanges":true},"postStartupScriptUrl":{"type":"string","description":"Post startup script url to download. Example: https://bucket/script.sh.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:colab/ScheduleCreateNotebookExecutionJobRequest:ScheduleCreateNotebookExecutionJobRequest":{"properties":{"notebookExecutionJob":{"$ref":"#/types/gcp:colab/ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJob:ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJob","description":"The NotebookExecutionJob to create.\nStructure is documented below.\n"}},"type":"object","required":["notebookExecutionJob"]},"gcp:colab/ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJob:ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJob":{"properties":{"dataformRepositorySource":{"$ref":"#/types/gcp:colab/ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobDataformRepositorySource:ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobDataformRepositorySource","description":"The Dataform Repository containing the input notebook.\nStructure is documented below.\n"},"displayName":{"type":"string","description":"Required. The display name of the Notebook Execution.\n"},"executionTimeout":{"type":"string","description":"Max running time of the execution job in seconds (default 86400s / 24 hrs). A duration in seconds with up to nine fractional digits, ending with \"s\". Example: \"3.5s\".\n"},"executionUser":{"type":"string","description":"The user email to run the execution as.\n"},"gcsNotebookSource":{"$ref":"#/types/gcp:colab/ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobGcsNotebookSource:ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobGcsNotebookSource","description":"The Cloud Storage uri for the input notebook.\nStructure is documented below.\n"},"gcsOutputUri":{"type":"string","description":"The Cloud Storage location to upload the result to. Format:`gs://bucket-name`\n"},"notebookRuntimeTemplateResourceName":{"type":"string","description":"The NotebookRuntimeTemplate to source compute configuration from.\n"},"serviceAccount":{"type":"string","description":"The service account to run the execution as.\n"}},"type":"object","required":["displayName","gcsOutputUri","notebookRuntimeTemplateResourceName"]},"gcp:colab/ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobDataformRepositorySource:ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobDataformRepositorySource":{"properties":{"commitSha":{"type":"string","description":"The commit SHA to read repository with. If unset, the file will be read at HEAD.\n"},"dataformRepositoryResourceName":{"type":"string","description":"The resource name of the Dataform Repository.\n"}},"type":"object","required":["dataformRepositoryResourceName"]},"gcp:colab/ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobGcsNotebookSource:ScheduleCreateNotebookExecutionJobRequestNotebookExecutionJobGcsNotebookSource":{"properties":{"generation":{"type":"string","description":"The version of the Cloud Storage object to read. If unset, the current version of the object is read. See https://cloud.google.com/storage/docs/metadata#generation-number.\n"},"uri":{"type":"string","description":"The Cloud Storage uri pointing to the ipynb file. Format: gs://bucket/notebook_file.ipynb\n"}},"type":"object","required":["uri"]},"gcp:composer/EnvironmentConfig:EnvironmentConfig":{"properties":{"airflowUri":{"type":"string","description":"The URI of the Apache Airflow Web UI hosted within this\nenvironment.\n"},"dagGcsPrefix":{"type":"string","description":"The Cloud Storage prefix of the DAGs for this environment.\nAlthough Cloud Storage objects reside in a flat namespace, a\nhierarchical file tree can be simulated using '/'-delimited\nobject name prefixes. DAG objects for this environment\nreside in a simulated directory with this prefix.\n"},"dataRetentionConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigDataRetentionConfig:EnvironmentConfigDataRetentionConfig","description":"The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer\n"},"databaseConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigDatabaseConfig:EnvironmentConfigDatabaseConfig","description":"The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"enablePrivateBuildsOnly":{"type":"boolean","description":"Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.\n"},"enablePrivateEnvironment":{"type":"boolean","description":"Optional. If true, a private Composer environment will be created.\n"},"encryptionConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigEncryptionConfig:EnvironmentConfigEncryptionConfig","description":"The encryption options for the Composer environment and its dependencies.\n"},"environmentSize":{"type":"string","description":"The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n"},"gkeCluster":{"type":"string","description":"The Kubernetes Engine cluster used to run this environment.\n"},"maintenanceWindow":{"$ref":"#/types/gcp:composer/EnvironmentConfigMaintenanceWindow:EnvironmentConfigMaintenanceWindow","description":"The configuration for Cloud Composer maintenance window.\n"},"masterAuthorizedNetworksConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigMasterAuthorizedNetworksConfig:EnvironmentConfigMasterAuthorizedNetworksConfig","description":"Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.\n"},"nodeConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigNodeConfig:EnvironmentConfigNodeConfig","description":"The configuration used for the Kubernetes Engine cluster.\n"},"nodeCount":{"type":"integer","description":"The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"privateEnvironmentConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigPrivateEnvironmentConfig:EnvironmentConfigPrivateEnvironmentConfig","description":"The configuration used for the Private IP Cloud Composer environment.\n","willReplaceOnChanges":true},"recoveryConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigRecoveryConfig:EnvironmentConfigRecoveryConfig","description":"The recovery configuration settings for the Cloud Composer environment\n"},"resilienceMode":{"type":"string","description":"Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-*.*.* and newer.\n"},"softwareConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigSoftwareConfig:EnvironmentConfigSoftwareConfig","description":"The configuration settings for software inside the environment.\n"},"webServerConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigWebServerConfig:EnvironmentConfigWebServerConfig","description":"The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"webServerNetworkAccessControl":{"$ref":"#/types/gcp:composer/EnvironmentConfigWebServerNetworkAccessControl:EnvironmentConfigWebServerNetworkAccessControl","description":"Network-level access control policy for the Airflow web server.\n"},"workloadsConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigWorkloadsConfig:EnvironmentConfigWorkloadsConfig","description":"The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["airflowUri","dagGcsPrefix","dataRetentionConfig","databaseConfig","enablePrivateBuildsOnly","enablePrivateEnvironment","encryptionConfig","environmentSize","gkeCluster","maintenanceWindow","nodeConfig","nodeCount","privateEnvironmentConfig","resilienceMode","softwareConfig","webServerConfig","webServerNetworkAccessControl","workloadsConfig"]}}},"gcp:composer/EnvironmentConfigDataRetentionConfig:EnvironmentConfigDataRetentionConfig":{"properties":{"airflowMetadataRetentionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig:EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig"},"description":"Optional. The policy for airflow metadata database retention.\n"},"taskLogsRetentionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig:EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig"},"description":"Optional. The configuration setting for Task Logs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["airflowMetadataRetentionConfigs"]}}},"gcp:composer/EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig:EnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig":{"properties":{"retentionDays":{"type":"integer","description":"How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.\n"},"retentionMode":{"type":"string","description":"Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["retentionDays","retentionMode"]}}},"gcp:composer/EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig:EnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig":{"properties":{"storageMode":{"type":"string","description":"Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*\n"}},"type":"object"},"gcp:composer/EnvironmentConfigDatabaseConfig:EnvironmentConfigDatabaseConfig":{"properties":{"machineType":{"type":"string","description":"Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.\n"},"zone":{"type":"string","description":"Optional. Cloud SQL database preferred zone.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:composer/EnvironmentConfigEncryptionConfig:EnvironmentConfigEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.\n","willReplaceOnChanges":true}},"type":"object","required":["kmsKeyName"]},"gcp:composer/EnvironmentConfigMaintenanceWindow:EnvironmentConfigMaintenanceWindow":{"properties":{"endTime":{"type":"string","description":"Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.\n"},"recurrence":{"type":"string","description":"Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.\n"},"startTime":{"type":"string","description":"Start time of the first recurrence of the maintenance window.\n"}},"type":"object","required":["endTime","recurrence","startTime"]},"gcp:composer/EnvironmentConfigMasterAuthorizedNetworksConfig:EnvironmentConfigMasterAuthorizedNetworksConfig":{"properties":{"cidrBlocks":{"type":"array","items":{"$ref":"#/types/gcp:composer/EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock:EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock"},"description":"cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.\n"},"enabled":{"type":"boolean","description":"Whether or not master authorized networks is enabled.\n"}},"type":"object","required":["enabled"]},"gcp:composer/EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock:EnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock":{"properties":{"cidrBlock":{"type":"string","description":"cidr_block must be specified in CIDR notation.\n"},"displayName":{"type":"string","description":"display_name is a field for users to identify CIDR blocks.\n"}},"type":"object","required":["cidrBlock"]},"gcp:composer/EnvironmentConfigNodeConfig:EnvironmentConfigNodeConfig":{"properties":{"composerInternalIpv4CidrBlock":{"type":"string","description":"IPv4 cidr range that will be used by Composer internal components.\n","willReplaceOnChanges":true},"composerNetworkAttachment":{"type":"string","description":"PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.\n"},"diskSizeGb":{"type":"integer","description":"The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true},"enableIpMasqAgent":{"type":"boolean","description":"Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent\n","willReplaceOnChanges":true},"ipAllocationPolicy":{"$ref":"#/types/gcp:composer/EnvironmentConfigNodeConfigIpAllocationPolicy:EnvironmentConfigNodeConfigIpAllocationPolicy","description":"Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.\n","willReplaceOnChanges":true},"machineType":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true},"maxPodsPerNode":{"type":"integer","description":"The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the \"default\" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to [\"https://www.googleapis.com/auth/cloud-platform\"]. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the \"default\" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. \"projects/{project}/regions/{region}/subnetworks/{subnetwork}\"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. \"projects/{project}/zones/{zone}\"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["composerInternalIpv4CidrBlock","composerNetworkAttachment","diskSizeGb","enableIpMasqAgent","ipAllocationPolicy","machineType","maxPodsPerNode","network","oauthScopes","serviceAccount","subnetwork","zone"]}}},"gcp:composer/EnvironmentConfigNodeConfigIpAllocationPolicy:EnvironmentConfigNodeConfigIpAllocationPolicy":{"properties":{"clusterIpv4CidrBlock":{"type":"string","description":"The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either\u003cspan pulumi-lang-nodejs=\" clusterSecondaryRangeName \" pulumi-lang-dotnet=\" ClusterSecondaryRangeName \" pulumi-lang-go=\" clusterSecondaryRangeName \" pulumi-lang-python=\" cluster_secondary_range_name \" pulumi-lang-yaml=\" clusterSecondaryRangeName \" pulumi-lang-java=\" clusterSecondaryRangeName \"\u003e cluster_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" clusterIpv4CidrBlock \" pulumi-lang-dotnet=\" ClusterIpv4CidrBlock \" pulumi-lang-go=\" clusterIpv4CidrBlock \" pulumi-lang-python=\" cluster_ipv4_cidr_block \" pulumi-lang-yaml=\" clusterIpv4CidrBlock \" pulumi-lang-java=\" clusterIpv4CidrBlock \"\u003e cluster_ipv4_cidr_block \u003c/span\u003ebut not both.\n","willReplaceOnChanges":true},"clusterSecondaryRangeName":{"type":"string","description":"The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either\u003cspan pulumi-lang-nodejs=\" clusterSecondaryRangeName \" pulumi-lang-dotnet=\" ClusterSecondaryRangeName \" pulumi-lang-go=\" clusterSecondaryRangeName \" pulumi-lang-python=\" cluster_secondary_range_name \" pulumi-lang-yaml=\" clusterSecondaryRangeName \" pulumi-lang-java=\" clusterSecondaryRangeName \"\u003e cluster_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" clusterIpv4CidrBlock \" pulumi-lang-dotnet=\" ClusterIpv4CidrBlock \" pulumi-lang-go=\" clusterIpv4CidrBlock \" pulumi-lang-python=\" cluster_ipv4_cidr_block \" pulumi-lang-yaml=\" clusterIpv4CidrBlock \" pulumi-lang-java=\" clusterIpv4CidrBlock \"\u003e cluster_ipv4_cidr_block \u003c/span\u003ebut not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true.\n","willReplaceOnChanges":true},"servicesIpv4CidrBlock":{"type":"string","description":"The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either\u003cspan pulumi-lang-nodejs=\" servicesSecondaryRangeName \" pulumi-lang-dotnet=\" ServicesSecondaryRangeName \" pulumi-lang-go=\" servicesSecondaryRangeName \" pulumi-lang-python=\" services_secondary_range_name \" pulumi-lang-yaml=\" servicesSecondaryRangeName \" pulumi-lang-java=\" servicesSecondaryRangeName \"\u003e services_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" servicesIpv4CidrBlock \" pulumi-lang-dotnet=\" ServicesIpv4CidrBlock \" pulumi-lang-go=\" servicesIpv4CidrBlock \" pulumi-lang-python=\" services_ipv4_cidr_block \" pulumi-lang-yaml=\" servicesIpv4CidrBlock \" pulumi-lang-java=\" servicesIpv4CidrBlock \"\u003e services_ipv4_cidr_block \u003c/span\u003ebut not both.\n","willReplaceOnChanges":true},"servicesSecondaryRangeName":{"type":"string","description":"The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either\u003cspan pulumi-lang-nodejs=\" servicesSecondaryRangeName \" pulumi-lang-dotnet=\" ServicesSecondaryRangeName \" pulumi-lang-go=\" servicesSecondaryRangeName \" pulumi-lang-python=\" services_secondary_range_name \" pulumi-lang-yaml=\" servicesSecondaryRangeName \" pulumi-lang-java=\" servicesSecondaryRangeName \"\u003e services_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" servicesIpv4CidrBlock \" pulumi-lang-dotnet=\" ServicesIpv4CidrBlock \" pulumi-lang-go=\" servicesIpv4CidrBlock \" pulumi-lang-python=\" services_ipv4_cidr_block \" pulumi-lang-yaml=\" servicesIpv4CidrBlock \" pulumi-lang-java=\" servicesIpv4CidrBlock \"\u003e services_ipv4_cidr_block \u003c/span\u003ebut not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true.\n","willReplaceOnChanges":true},"useIpAliases":{"type":"boolean","description":"Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the\u003cspan pulumi-lang-nodejs=\" ipAllocationPolicy \" pulumi-lang-dotnet=\" IpAllocationPolicy \" pulumi-lang-go=\" ipAllocationPolicy \" pulumi-lang-python=\" ip_allocation_policy \" pulumi-lang-yaml=\" ipAllocationPolicy \" pulumi-lang-java=\" ipAllocationPolicy \"\u003e ip_allocation_policy \u003c/span\u003eblock is present in config. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:composer/EnvironmentConfigPrivateEnvironmentConfig:EnvironmentConfigPrivateEnvironmentConfig":{"properties":{"cloudComposerConnectionSubnetwork":{"type":"string","description":"When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n","willReplaceOnChanges":true},"cloudComposerNetworkIpv4CidrBlock":{"type":"string","description":"The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n","willReplaceOnChanges":true},"cloudSqlIpv4CidrBlock":{"type":"string","description":"The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.\n","willReplaceOnChanges":true},"connectionType":{"type":"string","description":"Mode of internal communication within the Composer environment. Must be one of \"VPC_PEERING\" or \"PRIVATE_SERVICE_CONNECT\".\n","willReplaceOnChanges":true},"enablePrivateEndpoint":{"type":"boolean","description":"If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true},"enablePrivatelyUsedPublicIps":{"type":"boolean","description":"When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.\n","willReplaceOnChanges":true},"masterIpv4CidrBlock":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.\n","willReplaceOnChanges":true},"webServerIpv4CidrBlock":{"type":"string","description":"The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from\u003cspan pulumi-lang-nodejs=\" masterIpv4CidrBlock \" pulumi-lang-dotnet=\" MasterIpv4CidrBlock \" pulumi-lang-go=\" masterIpv4CidrBlock \" pulumi-lang-python=\" master_ipv4_cidr_block \" pulumi-lang-yaml=\" masterIpv4CidrBlock \" pulumi-lang-java=\" masterIpv4CidrBlock \"\u003e master_ipv4_cidr_block \u003c/span\u003eand cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudComposerConnectionSubnetwork","cloudComposerNetworkIpv4CidrBlock","cloudSqlIpv4CidrBlock","connectionType","enablePrivatelyUsedPublicIps","masterIpv4CidrBlock","webServerIpv4CidrBlock"]}}},"gcp:composer/EnvironmentConfigRecoveryConfig:EnvironmentConfigRecoveryConfig":{"properties":{"scheduledSnapshotsConfig":{"$ref":"#/types/gcp:composer/EnvironmentConfigRecoveryConfigScheduledSnapshotsConfig:EnvironmentConfigRecoveryConfigScheduledSnapshotsConfig","description":"The configuration settings for scheduled snapshots.\n"}},"type":"object"},"gcp:composer/EnvironmentConfigRecoveryConfigScheduledSnapshotsConfig:EnvironmentConfigRecoveryConfigScheduledSnapshotsConfig":{"properties":{"enabled":{"type":"boolean","description":"When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.\n"},"snapshotCreationSchedule":{"type":"string","description":"Snapshot schedule, in the unix-cron format.\n"},"snapshotLocation":{"type":"string","description":"the URI of a bucket folder where to save the snapshot.\n"},"timeZone":{"type":"string","description":"A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.\n"}},"type":"object","required":["enabled"]},"gcp:composer/EnvironmentConfigSoftwareConfig:EnvironmentConfigSoftwareConfig":{"properties":{"airflowConfigOverrides":{"type":"object","additionalProperties":{"type":"string"},"description":"Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and cannot contain \"=\" or \";\". Section and property names cannot contain characters: \".\" Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.\n"},"cloudDataLineageIntegration":{"$ref":"#/types/gcp:composer/EnvironmentConfigSoftwareConfigCloudDataLineageIntegration:EnvironmentConfigSoftwareConfigCloudDataLineageIntegration","description":"The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer\n"},"envVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.\n"},"imageVersion":{"type":"string","description":"The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.\n"},"pypiPackages":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. \"numpy\"). Values are the lowercase extras and version specifier (e.g. \"==1.12.0\", \"[devel,gcp_api]\", \"[devel]\u003e=1.8.2, \u003c1.9.2\"). To specify a package without pinning it to a version specifier, use the empty string as the value.\n"},"pythonVersion":{"type":"string","description":"The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.\n","willReplaceOnChanges":true},"schedulerCount":{"type":"integer","description":"The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.\n"},"webServerPluginsMode":{"type":"string","description":"Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudDataLineageIntegration","imageVersion","pythonVersion","schedulerCount","webServerPluginsMode"]}}},"gcp:composer/EnvironmentConfigSoftwareConfigCloudDataLineageIntegration:EnvironmentConfigSoftwareConfigCloudDataLineageIntegration":{"properties":{"enabled":{"type":"boolean","description":"Whether or not Cloud Data Lineage integration is enabled.\n"}},"type":"object","required":["enabled"]},"gcp:composer/EnvironmentConfigWebServerConfig:EnvironmentConfigWebServerConfig":{"properties":{"machineType":{"type":"string","description":"Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.\n"}},"type":"object","required":["machineType"]},"gcp:composer/EnvironmentConfigWebServerNetworkAccessControl:EnvironmentConfigWebServerNetworkAccessControl":{"properties":{"allowedIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:composer/EnvironmentConfigWebServerNetworkAccessControlAllowedIpRange:EnvironmentConfigWebServerNetworkAccessControlAllowedIpRange"},"description":"A collection of allowed IP ranges with descriptions.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowedIpRanges"]}}},"gcp:composer/EnvironmentConfigWebServerNetworkAccessControlAllowedIpRange:EnvironmentConfigWebServerNetworkAccessControlAllowedIpRange":{"properties":{"description":{"type":"string","description":"A description of this ip range.\n"},"value":{"type":"string","description":"IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.\n"}},"type":"object","required":["value"]},"gcp:composer/EnvironmentConfigWorkloadsConfig:EnvironmentConfigWorkloadsConfig":{"properties":{"dagProcessor":{"$ref":"#/types/gcp:composer/EnvironmentConfigWorkloadsConfigDagProcessor:EnvironmentConfigWorkloadsConfigDagProcessor","description":"Configuration for resources used by DAG processor.\n"},"scheduler":{"$ref":"#/types/gcp:composer/EnvironmentConfigWorkloadsConfigScheduler:EnvironmentConfigWorkloadsConfigScheduler","description":"Configuration for resources used by Airflow schedulers.\n"},"triggerer":{"$ref":"#/types/gcp:composer/EnvironmentConfigWorkloadsConfigTriggerer:EnvironmentConfigWorkloadsConfigTriggerer","description":"Configuration for resources used by Airflow triggerers.\n"},"webServer":{"$ref":"#/types/gcp:composer/EnvironmentConfigWorkloadsConfigWebServer:EnvironmentConfigWorkloadsConfigWebServer","description":"Configuration for resources used by Airflow web server.\n"},"worker":{"$ref":"#/types/gcp:composer/EnvironmentConfigWorkloadsConfigWorker:EnvironmentConfigWorkloadsConfigWorker","description":"Configuration for resources used by Airflow workers.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dagProcessor","scheduler","triggerer","webServer","worker"]}}},"gcp:composer/EnvironmentConfigWorkloadsConfigDagProcessor:EnvironmentConfigWorkloadsConfigDagProcessor":{"properties":{"count":{"type":"integer","description":"Number of DAG processors.\n"},"cpu":{"type":"number","description":"CPU request and limit for DAG processor.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for DAG processor.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for DAG processor.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["count","cpu","memoryGb","storageGb"]}}},"gcp:composer/EnvironmentConfigWorkloadsConfigScheduler:EnvironmentConfigWorkloadsConfigScheduler":{"properties":{"count":{"type":"integer","description":"The number of schedulers.\n"},"cpu":{"type":"number","description":"CPU request and limit for a single Airflow scheduler replica\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow scheduler replica.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for a single Airflow scheduler replica.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["count","cpu","memoryGb","storageGb"]}}},"gcp:composer/EnvironmentConfigWorkloadsConfigTriggerer:EnvironmentConfigWorkloadsConfigTriggerer":{"properties":{"count":{"type":"integer","description":"The number of triggerers.\n"},"cpu":{"type":"number","description":"CPU request and limit for a single Airflow triggerer replica.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow triggerer replica.\n"}},"type":"object","required":["count","cpu","memoryGb"]},"gcp:composer/EnvironmentConfigWorkloadsConfigWebServer:EnvironmentConfigWorkloadsConfigWebServer":{"properties":{"cpu":{"type":"number","description":"CPU request and limit for Airflow web server.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for Airflow web server.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for Airflow web server.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpu","memoryGb","storageGb"]}}},"gcp:composer/EnvironmentConfigWorkloadsConfigWorker:EnvironmentConfigWorkloadsConfigWorker":{"properties":{"cpu":{"type":"number","description":"CPU request and limit for a single Airflow worker replica.\n"},"maxCount":{"type":"integer","description":"Maximum number of workers for autoscaling.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow worker replica.\n"},"minCount":{"type":"integer","description":"Minimum number of workers for autoscaling.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for a single Airflow worker replica.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpu","maxCount","memoryGb","minCount","storageGb"]}}},"gcp:composer/EnvironmentStorageConfig:EnvironmentStorageConfig":{"properties":{"bucket":{"type":"string","description":"Optional. Name of an existing Cloud Storage bucket to be used by the environment.\n","willReplaceOnChanges":true}},"type":"object","required":["bucket"]},"gcp:composer/getEnvironmentConfig:getEnvironmentConfig":{"properties":{"airflowUri":{"type":"string","description":"The URI of the Apache Airflow Web UI hosted within the\nenvironment.\n"},"dagGcsPrefix":{"type":"string","description":"The Cloud Storage prefix of the DAGs for the environment.\n"},"dataRetentionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigDataRetentionConfig:getEnvironmentConfigDataRetentionConfig"},"description":"The configuration setting for Airflow data retention mechanism. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4. or newer\n"},"databaseConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigDatabaseConfig:getEnvironmentConfigDatabaseConfig"},"description":"The configuration of Cloud SQL instance that is used by the Apache Airflow software. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"enablePrivateBuildsOnly":{"type":"boolean","description":"Optional. If true, builds performed during operations that install Python packages have only private connectivity to Google services. If false, the builds also have access to the internet.\n"},"enablePrivateEnvironment":{"type":"boolean","description":"Optional. If true, a private Composer environment will be created.\n"},"encryptionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigEncryptionConfig:getEnvironmentConfigEncryptionConfig"},"description":"The encryption options for the Composer environment and its dependencies.\n"},"environmentSize":{"type":"string","description":"The size of the Cloud Composer environment. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n"},"gkeCluster":{"type":"string","description":"The Kubernetes Engine cluster used to run the environment.\n"},"maintenanceWindows":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigMaintenanceWindow:getEnvironmentConfigMaintenanceWindow"},"description":"The configuration for Cloud Composer maintenance window.\n"},"masterAuthorizedNetworksConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigMasterAuthorizedNetworksConfig:getEnvironmentConfigMasterAuthorizedNetworksConfig"},"description":"Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.\n"},"nodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigNodeConfig:getEnvironmentConfigNodeConfig"},"description":"The configuration used for the Kubernetes Engine cluster.\n"},"nodeCount":{"type":"integer","description":"The number of nodes in the Kubernetes Engine cluster that will be used to run this environment. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"privateEnvironmentConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigPrivateEnvironmentConfig:getEnvironmentConfigPrivateEnvironmentConfig"},"description":"The configuration used for the Private IP Cloud Composer environment.\n"},"recoveryConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigRecoveryConfig:getEnvironmentConfigRecoveryConfig"},"description":"The recovery configuration settings for the Cloud Composer environment\n"},"resilienceMode":{"type":"string","description":"Whether high resilience is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.1.15-airflow-*.*.* and newer.\n"},"softwareConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigSoftwareConfig:getEnvironmentConfigSoftwareConfig"},"description":"The configuration settings for software inside the environment.\n"},"webServerConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWebServerConfig:getEnvironmentConfigWebServerConfig"},"description":"The configuration settings for the Airflow web server App Engine instance. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"webServerNetworkAccessControls":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWebServerNetworkAccessControl:getEnvironmentConfigWebServerNetworkAccessControl"},"description":"Network-level access control policy for the Airflow web server.\n"},"workloadsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWorkloadsConfig:getEnvironmentConfigWorkloadsConfig"},"description":"The workloads configuration settings for the GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n"}},"type":"object","required":["airflowUri","dagGcsPrefix","dataRetentionConfigs","databaseConfigs","enablePrivateBuildsOnly","enablePrivateEnvironment","encryptionConfigs","environmentSize","gkeCluster","maintenanceWindows","masterAuthorizedNetworksConfigs","nodeConfigs","nodeCount","privateEnvironmentConfigs","recoveryConfigs","resilienceMode","softwareConfigs","webServerConfigs","webServerNetworkAccessControls","workloadsConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigDataRetentionConfig:getEnvironmentConfigDataRetentionConfig":{"properties":{"airflowMetadataRetentionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig:getEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig"},"description":"Optional. The policy for airflow metadata database retention.\n"},"taskLogsRetentionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig:getEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig"},"description":"Optional. The configuration setting for Task Logs.\n"}},"type":"object","required":["airflowMetadataRetentionConfigs","taskLogsRetentionConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig:getEnvironmentConfigDataRetentionConfigAirflowMetadataRetentionConfig":{"properties":{"retentionDays":{"type":"integer","description":"How many days data should be retained for. This field is supported for Cloud Composer environments in composer 3 and newer.\n"},"retentionMode":{"type":"string","description":"Whether database retention is enabled or not. This field is supported for Cloud Composer environments in composer 3 and newer.\n"}},"type":"object","required":["retentionDays","retentionMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig:getEnvironmentConfigDataRetentionConfigTaskLogsRetentionConfig":{"properties":{"storageMode":{"type":"string","description":"Whether logs in cloud logging only is enabled or not. This field is supported for Cloud Composer environments in versions composer-2.0.32-airflow-2.1.4 and newer but not in composer-3*\n"}},"type":"object","required":["storageMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigDatabaseConfig:getEnvironmentConfigDatabaseConfig":{"properties":{"machineType":{"type":"string","description":"Optional. Cloud SQL machine type used by Airflow database. It has to be one of: db-n1-standard-2, db-n1-standard-4, db-n1-standard-8 or db-n1-standard-16. If not specified, db-n1-standard-2 will be used.\n"},"zone":{"type":"string","description":"Optional. Cloud SQL database preferred zone.\n"}},"type":"object","required":["machineType","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigEncryptionConfig:getEnvironmentConfigEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"Optional. Customer-managed Encryption Key available through Google's Key Management Service. Cannot be updated.\n"}},"type":"object","required":["kmsKeyName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigMaintenanceWindow:getEnvironmentConfigMaintenanceWindow":{"properties":{"endTime":{"type":"string","description":"Maintenance window end time. It is used only to calculate the duration of the maintenance window. The value for end-time must be in the future, relative to 'start_time'.\n"},"recurrence":{"type":"string","description":"Maintenance window recurrence. Format is a subset of RFC-5545 (https://tools.ietf.org/html/rfc5545) 'RRULE'. The only allowed values for 'FREQ' field are 'FREQ=DAILY' and 'FREQ=WEEKLY;BYDAY=...'. Example values: 'FREQ=WEEKLY;BYDAY=TU,WE', 'FREQ=DAILY'.\n"},"startTime":{"type":"string","description":"Start time of the first recurrence of the maintenance window.\n"}},"type":"object","required":["endTime","recurrence","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigMasterAuthorizedNetworksConfig:getEnvironmentConfigMasterAuthorizedNetworksConfig":{"properties":{"cidrBlocks":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock:getEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock"},"description":"cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.\n"},"enabled":{"type":"boolean","description":"Whether or not master authorized networks is enabled.\n"}},"type":"object","required":["cidrBlocks","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock:getEnvironmentConfigMasterAuthorizedNetworksConfigCidrBlock":{"properties":{"cidrBlock":{"type":"string","description":"cidr_block must be specified in CIDR notation.\n"},"displayName":{"type":"string","description":"display_name is a field for users to identify CIDR blocks.\n"}},"type":"object","required":["cidrBlock","displayName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigNodeConfig:getEnvironmentConfigNodeConfig":{"properties":{"composerInternalIpv4CidrBlock":{"type":"string","description":"IPv4 cidr range that will be used by Composer internal components.\n"},"composerNetworkAttachment":{"type":"string","description":"PSC (Private Service Connect) Network entry point. Customers can pre-create the Network Attachment and point Cloud Composer environment to use. It is possible to share network attachment among many environments, provided enough IP addresses are available.\n"},"diskSizeGb":{"type":"integer","description":"The disk size in GB used for node VMs. Minimum size is 20GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"enableIpMasqAgent":{"type":"boolean","description":"Deploys 'ip-masq-agent' daemon set in the GKE cluster and defines nonMasqueradeCIDRs equals to pod IP range so IP masquerading is used for all destination addresses, except between pods traffic. See: https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent\n"},"ipAllocationPolicies":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigNodeConfigIpAllocationPolicy:getEnvironmentConfigNodeConfigIpAllocationPolicy"},"description":"Configuration for controlling how IPs are allocated in the GKE cluster. Cannot be updated.\n"},"machineType":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"maxPodsPerNode":{"type":"integer","description":"The maximum pods per node in the GKE cluster allocated during environment creation. Lowering this value reduces IP address consumption by the Cloud Composer Kubernetes cluster. This value can only be set during environment creation, and only if the environment is VPC-Native. The range of possible values is 8-110, and the default is 32. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"network":{"type":"string","description":"The Compute Engine machine type used for cluster instances, specified as a name or relative resource name. For example: \"projects/{project}/zones/{zone}/machineTypes/{machineType}\". Must belong to the enclosing environment's project and region/zone. The network must belong to the environment's project. If unspecified, the \"default\" network ID in the environment's project is used. If a Custom Subnet Network is provided, subnetwork must also be provided.\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available on all node VMs. Cannot be updated. If empty, defaults to [\"https://www.googleapis.com/auth/cloud-platform\"]. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"serviceAccount":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs. If a service account is not specified, the \"default\" Compute Engine service account is used. Cannot be updated. If given, note that the service account must have roles/composer.worker for any GCP resources created under the Cloud Composer Environment.\n"},"subnetwork":{"type":"string","description":"The Compute Engine subnetwork to be used for machine communications, specified as a self-link, relative resource name (e.g. \"projects/{project}/regions/{region}/subnetworks/{subnetwork}\"), or by name. If subnetwork is provided, network must also be provided and the subnetwork must belong to the enclosing environment's project and region.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all node VMs. Tags are used to identify valid sources or targets for network firewalls. Each tag within the list must comply with RFC1035. Cannot be updated.\n"},"zone":{"type":"string","description":"The Compute Engine zone in which to deploy the VMs running the Apache Airflow software, specified as the zone name or relative resource name (e.g. \"projects/{project}/zones/{zone}\"). Must belong to the enclosing environment's project and region. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"}},"type":"object","required":["composerInternalIpv4CidrBlock","composerNetworkAttachment","diskSizeGb","enableIpMasqAgent","ipAllocationPolicies","machineType","maxPodsPerNode","network","oauthScopes","serviceAccount","subnetwork","tags","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigNodeConfigIpAllocationPolicy:getEnvironmentConfigNodeConfigIpAllocationPolicy":{"properties":{"clusterIpv4CidrBlock":{"type":"string","description":"The IP address range used to allocate IP addresses to pods in the cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either\u003cspan pulumi-lang-nodejs=\" clusterSecondaryRangeName \" pulumi-lang-dotnet=\" ClusterSecondaryRangeName \" pulumi-lang-go=\" clusterSecondaryRangeName \" pulumi-lang-python=\" cluster_secondary_range_name \" pulumi-lang-yaml=\" clusterSecondaryRangeName \" pulumi-lang-java=\" clusterSecondaryRangeName \"\u003e cluster_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" clusterIpv4CidrBlock \" pulumi-lang-dotnet=\" ClusterIpv4CidrBlock \" pulumi-lang-go=\" clusterIpv4CidrBlock \" pulumi-lang-python=\" cluster_ipv4_cidr_block \" pulumi-lang-yaml=\" clusterIpv4CidrBlock \" pulumi-lang-java=\" clusterIpv4CidrBlock \"\u003e cluster_ipv4_cidr_block \u003c/span\u003ebut not both.\n"},"clusterSecondaryRangeName":{"type":"string","description":"The name of the cluster's secondary range used to allocate IP addresses to pods. Specify either\u003cspan pulumi-lang-nodejs=\" clusterSecondaryRangeName \" pulumi-lang-dotnet=\" ClusterSecondaryRangeName \" pulumi-lang-go=\" clusterSecondaryRangeName \" pulumi-lang-python=\" cluster_secondary_range_name \" pulumi-lang-yaml=\" clusterSecondaryRangeName \" pulumi-lang-java=\" clusterSecondaryRangeName \"\u003e cluster_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" clusterIpv4CidrBlock \" pulumi-lang-dotnet=\" ClusterIpv4CidrBlock \" pulumi-lang-go=\" clusterIpv4CidrBlock \" pulumi-lang-python=\" cluster_ipv4_cidr_block \" pulumi-lang-yaml=\" clusterIpv4CidrBlock \" pulumi-lang-java=\" clusterIpv4CidrBlock \"\u003e cluster_ipv4_cidr_block \u003c/span\u003ebut not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true.\n"},"servicesIpv4CidrBlock":{"type":"string","description":"The IP address range used to allocate IP addresses in this cluster. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true. Set to blank to have GKE choose a range with the default size. Set to /netmask (e.g. /14) to have GKE choose a range with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. Specify either\u003cspan pulumi-lang-nodejs=\" servicesSecondaryRangeName \" pulumi-lang-dotnet=\" ServicesSecondaryRangeName \" pulumi-lang-go=\" servicesSecondaryRangeName \" pulumi-lang-python=\" services_secondary_range_name \" pulumi-lang-yaml=\" servicesSecondaryRangeName \" pulumi-lang-java=\" servicesSecondaryRangeName \"\u003e services_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" servicesIpv4CidrBlock \" pulumi-lang-dotnet=\" ServicesIpv4CidrBlock \" pulumi-lang-go=\" servicesIpv4CidrBlock \" pulumi-lang-python=\" services_ipv4_cidr_block \" pulumi-lang-yaml=\" servicesIpv4CidrBlock \" pulumi-lang-java=\" servicesIpv4CidrBlock \"\u003e services_ipv4_cidr_block \u003c/span\u003ebut not both.\n"},"servicesSecondaryRangeName":{"type":"string","description":"The name of the services' secondary range used to allocate IP addresses to the cluster. Specify either\u003cspan pulumi-lang-nodejs=\" servicesSecondaryRangeName \" pulumi-lang-dotnet=\" ServicesSecondaryRangeName \" pulumi-lang-go=\" servicesSecondaryRangeName \" pulumi-lang-python=\" services_secondary_range_name \" pulumi-lang-yaml=\" servicesSecondaryRangeName \" pulumi-lang-java=\" servicesSecondaryRangeName \"\u003e services_secondary_range_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" servicesIpv4CidrBlock \" pulumi-lang-dotnet=\" ServicesIpv4CidrBlock \" pulumi-lang-go=\" servicesIpv4CidrBlock \" pulumi-lang-python=\" services_ipv4_cidr_block \" pulumi-lang-yaml=\" servicesIpv4CidrBlock \" pulumi-lang-java=\" servicesIpv4CidrBlock \"\u003e services_ipv4_cidr_block \u003c/span\u003ebut not both. For Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*, this field is applicable only when\u003cspan pulumi-lang-nodejs=\" useIpAliases \" pulumi-lang-dotnet=\" UseIpAliases \" pulumi-lang-go=\" useIpAliases \" pulumi-lang-python=\" use_ip_aliases \" pulumi-lang-yaml=\" useIpAliases \" pulumi-lang-java=\" useIpAliases \"\u003e use_ip_aliases \u003c/span\u003eis true.\n"},"useIpAliases":{"type":"boolean","description":"Whether or not to enable Alias IPs in the GKE cluster. If true, a VPC-native cluster is created. Defaults to true if the\u003cspan pulumi-lang-nodejs=\" ipAllocationPolicy \" pulumi-lang-dotnet=\" IpAllocationPolicy \" pulumi-lang-go=\" ipAllocationPolicy \" pulumi-lang-python=\" ip_allocation_policy \" pulumi-lang-yaml=\" ipAllocationPolicy \" pulumi-lang-java=\" ipAllocationPolicy \"\u003e ip_allocation_policy \u003c/span\u003eblock is present in config. This field is only supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use VPC-native GKE clusters.\n"}},"type":"object","required":["clusterIpv4CidrBlock","clusterSecondaryRangeName","servicesIpv4CidrBlock","servicesSecondaryRangeName","useIpAliases"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigPrivateEnvironmentConfig:getEnvironmentConfigPrivateEnvironmentConfig":{"properties":{"cloudComposerConnectionSubnetwork":{"type":"string","description":"When specified, the environment will use Private Service Connect instead of VPC peerings to connect to Cloud SQL in the Tenant Project, and the PSC endpoint in the Customer Project will use an IP address from this subnetwork. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n"},"cloudComposerNetworkIpv4CidrBlock":{"type":"string","description":"The CIDR block from which IP range for Cloud Composer Network in tenant project will be reserved. Needs to be disjoint from private_cluster_config.master_ipv4_cidr_block and cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.\n"},"cloudSqlIpv4CidrBlock":{"type":"string","description":"The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from web_server_ipv4_cidr_block.\n"},"connectionType":{"type":"string","description":"Mode of internal communication within the Composer environment. Must be one of \"VPC_PEERING\" or \"PRIVATE_SERVICE_CONNECT\".\n"},"enablePrivateEndpoint":{"type":"boolean","description":"If true, access to the public endpoint of the GKE cluster is denied. If this field is set to true, ip_allocation_policy.use_ip_aliases must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"},"enablePrivatelyUsedPublicIps":{"type":"boolean","description":"When enabled, IPs from public (non-RFC1918) ranges can be used for ip_allocation_policy.cluster_ipv4_cidr_block and ip_allocation_policy.service_ipv4_cidr_block.\n"},"masterIpv4CidrBlock":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range is used for assigning internal IP addresses to the cluster master or set of masters and to the internal load balancer virtual IP. This range must not overlap with any other ranges in use within the cluster's network. If left blank, the default value of '172.16.0.0/28' is used.\n"},"webServerIpv4CidrBlock":{"type":"string","description":"The CIDR block from which IP range for web server will be reserved. Needs to be disjoint from\u003cspan pulumi-lang-nodejs=\" masterIpv4CidrBlock \" pulumi-lang-dotnet=\" MasterIpv4CidrBlock \" pulumi-lang-go=\" masterIpv4CidrBlock \" pulumi-lang-python=\" master_ipv4_cidr_block \" pulumi-lang-yaml=\" masterIpv4CidrBlock \" pulumi-lang-java=\" masterIpv4CidrBlock \"\u003e master_ipv4_cidr_block \u003c/span\u003eand cloud_sql_ipv4_cidr_block. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.\n"}},"type":"object","required":["cloudComposerConnectionSubnetwork","cloudComposerNetworkIpv4CidrBlock","cloudSqlIpv4CidrBlock","connectionType","enablePrivateEndpoint","enablePrivatelyUsedPublicIps","masterIpv4CidrBlock","webServerIpv4CidrBlock"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigRecoveryConfig:getEnvironmentConfigRecoveryConfig":{"properties":{"scheduledSnapshotsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig:getEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig"},"description":"The configuration settings for scheduled snapshots.\n"}},"type":"object","required":["scheduledSnapshotsConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig:getEnvironmentConfigRecoveryConfigScheduledSnapshotsConfig":{"properties":{"enabled":{"type":"boolean","description":"When enabled, Cloud Composer periodically saves snapshots of your environment to a Cloud Storage bucket.\n"},"snapshotCreationSchedule":{"type":"string","description":"Snapshot schedule, in the unix-cron format.\n"},"snapshotLocation":{"type":"string","description":"the URI of a bucket folder where to save the snapshot.\n"},"timeZone":{"type":"string","description":"A time zone for the schedule. This value is a time offset and does not take into account daylight saving time changes. Valid values are from UTC-12 to UTC+12. Examples: UTC, UTC-01, UTC+03.\n"}},"type":"object","required":["enabled","snapshotCreationSchedule","snapshotLocation","timeZone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigSoftwareConfig:getEnvironmentConfigSoftwareConfig":{"properties":{"airflowConfigOverrides":{"type":"object","additionalProperties":{"type":"string"},"description":"Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and cannot contain \"=\" or \";\". Section and property names cannot contain characters: \".\" Apache Airflow configuration property names must be written in snake_case. Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are blacklisted, and cannot be overridden.\n"},"cloudDataLineageIntegrations":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigSoftwareConfigCloudDataLineageIntegration:getEnvironmentConfigSoftwareConfigCloudDataLineageIntegration"},"description":"The configuration for Cloud Data Lineage integration. Supported for Cloud Composer environments in versions composer-2.1.2-airflow-*.*.* and newer\n"},"envVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional environment variables to provide to the Apache Airflow scheduler, worker, and webserver processes. Environment variable names must match the regular expression [a-zA-Z_][a-zA-Z0-9_]*. They cannot specify Apache Airflow software configuration overrides (they cannot match the regular expression AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+), and they cannot match any of the following reserved names: AIRFLOW_HOME C_FORCE_ROOT CONTAINER_NAME DAGS_FOLDER GCP_PROJECT GCS_BUCKET GKE_CLUSTER_NAME SQL_DATABASE SQL_INSTANCE SQL_PASSWORD SQL_PROJECT SQL_REGION SQL_USER.\n"},"imageVersion":{"type":"string","description":"The version of the software running in the environment. This encapsulates both the version of Cloud Composer functionality and the version of Apache Airflow. It must match the regular expression composer-([0-9]+(\\.[0-9]+\\.[0-9]+(-preview\\.[0-9]+)?)?|latest)-airflow-([0-9]+(\\.[0-9]+(\\.[0-9]+)?)?). The Cloud Composer portion of the image version is a full semantic version, or an alias in the form of major version number or 'latest'. The Apache Airflow portion of the image version is a full semantic version that points to one of the supported Apache Airflow versions, or an alias in the form of only major or major.minor versions specified. See documentation for more details and version list.\n"},"pypiPackages":{"type":"object","additionalProperties":{"type":"string"},"description":"Custom Python Package Index (PyPI) packages to be installed in the environment. Keys refer to the lowercase package name (e.g. \"numpy\"). Values are the lowercase extras and version specifier (e.g. \"==1.12.0\", \"[devel,gcp_api]\", \"[devel]\u003e=1.8.2, \u003c1.9.2\"). To specify a package without pinning it to a version specifier, use the empty string as the value.\n"},"pythonVersion":{"type":"string","description":"The major version of Python used to run the Apache Airflow scheduler, worker, and webserver processes. Can be set to '2' or '3'. If not specified, the default is '2'. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*. Environments in newer versions always use Python major version 3.\n"},"schedulerCount":{"type":"integer","description":"The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.\n"},"webServerPluginsMode":{"type":"string","description":"Should be either 'ENABLED' or 'DISABLED'. Defaults to 'ENABLED'. Used in Composer 3.\n"}},"type":"object","required":["airflowConfigOverrides","cloudDataLineageIntegrations","envVariables","imageVersion","pypiPackages","pythonVersion","schedulerCount","webServerPluginsMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigSoftwareConfigCloudDataLineageIntegration:getEnvironmentConfigSoftwareConfigCloudDataLineageIntegration":{"properties":{"enabled":{"type":"boolean","description":"Whether or not Cloud Data Lineage integration is enabled.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWebServerConfig:getEnvironmentConfigWebServerConfig":{"properties":{"machineType":{"type":"string","description":"Optional. Machine type on which Airflow web server is running. It has to be one of: composer-n1-webserver-2, composer-n1-webserver-4 or composer-n1-webserver-8. If not specified, composer-n1-webserver-2 will be used. Value custom is returned only in response, if Airflow web server parameters were manually changed to a non-standard values.\n"}},"type":"object","required":["machineType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWebServerNetworkAccessControl:getEnvironmentConfigWebServerNetworkAccessControl":{"properties":{"allowedIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWebServerNetworkAccessControlAllowedIpRange:getEnvironmentConfigWebServerNetworkAccessControlAllowedIpRange"},"description":"A collection of allowed IP ranges with descriptions.\n"}},"type":"object","required":["allowedIpRanges"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWebServerNetworkAccessControlAllowedIpRange:getEnvironmentConfigWebServerNetworkAccessControlAllowedIpRange":{"properties":{"description":{"type":"string","description":"A description of this ip range.\n"},"value":{"type":"string","description":"IP address or range, defined using CIDR notation, of requests that this rule applies to. Examples: 192.168.1.1 or 192.168.0.0/16 or 2001:db8::/32 or 2001:0db8:0000:0042:0000:8a2e:0370:7334. IP range prefixes should be properly truncated. For example, 1.2.3.4/24 should be truncated to 1.2.3.0/24. Similarly, for IPv6, 2001:db8::1/32 should be truncated to 2001:db8::/32.\n"}},"type":"object","required":["description","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWorkloadsConfig:getEnvironmentConfigWorkloadsConfig":{"properties":{"dagProcessors":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWorkloadsConfigDagProcessor:getEnvironmentConfigWorkloadsConfigDagProcessor"},"description":"Configuration for resources used by DAG processor.\n"},"schedulers":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWorkloadsConfigScheduler:getEnvironmentConfigWorkloadsConfigScheduler"},"description":"Configuration for resources used by Airflow schedulers.\n"},"triggerers":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWorkloadsConfigTriggerer:getEnvironmentConfigWorkloadsConfigTriggerer"},"description":"Configuration for resources used by Airflow triggerers.\n"},"webServers":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWorkloadsConfigWebServer:getEnvironmentConfigWorkloadsConfigWebServer"},"description":"Configuration for resources used by Airflow web server.\n"},"workers":{"type":"array","items":{"$ref":"#/types/gcp:composer/getEnvironmentConfigWorkloadsConfigWorker:getEnvironmentConfigWorkloadsConfigWorker"},"description":"Configuration for resources used by Airflow workers.\n"}},"type":"object","required":["dagProcessors","schedulers","triggerers","webServers","workers"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWorkloadsConfigDagProcessor:getEnvironmentConfigWorkloadsConfigDagProcessor":{"properties":{"count":{"type":"integer","description":"Number of DAG processors.\n"},"cpu":{"type":"number","description":"CPU request and limit for DAG processor.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for DAG processor.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for DAG processor.\n"}},"type":"object","required":["count","cpu","memoryGb","storageGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWorkloadsConfigScheduler:getEnvironmentConfigWorkloadsConfigScheduler":{"properties":{"count":{"type":"integer","description":"The number of schedulers.\n"},"cpu":{"type":"number","description":"CPU request and limit for a single Airflow scheduler replica\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow scheduler replica.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for a single Airflow scheduler replica.\n"}},"type":"object","required":["count","cpu","memoryGb","storageGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWorkloadsConfigTriggerer:getEnvironmentConfigWorkloadsConfigTriggerer":{"properties":{"count":{"type":"integer","description":"The number of triggerers.\n"},"cpu":{"type":"number","description":"CPU request and limit for a single Airflow triggerer replica.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow triggerer replica.\n"}},"type":"object","required":["count","cpu","memoryGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWorkloadsConfigWebServer:getEnvironmentConfigWorkloadsConfigWebServer":{"properties":{"cpu":{"type":"number","description":"CPU request and limit for Airflow web server.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for Airflow web server.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for Airflow web server.\n"}},"type":"object","required":["cpu","memoryGb","storageGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentConfigWorkloadsConfigWorker:getEnvironmentConfigWorkloadsConfigWorker":{"properties":{"cpu":{"type":"number","description":"CPU request and limit for a single Airflow worker replica.\n"},"maxCount":{"type":"integer","description":"Maximum number of workers for autoscaling.\n"},"memoryGb":{"type":"number","description":"Memory (GB) request and limit for a single Airflow worker replica.\n"},"minCount":{"type":"integer","description":"Minimum number of workers for autoscaling.\n"},"storageGb":{"type":"number","description":"Storage (GB) request and limit for a single Airflow worker replica.\n"}},"type":"object","required":["cpu","maxCount","memoryGb","minCount","storageGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getEnvironmentStorageConfig:getEnvironmentStorageConfig":{"properties":{"bucket":{"type":"string","description":"Optional. Name of an existing Cloud Storage bucket to be used by the environment.\n"}},"type":"object","required":["bucket"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:composer/getImageVersionsImageVersion:getImageVersionsImageVersion":{"properties":{"imageVersionId":{"type":"string","description":"The string identifier of the image version, in the form: \"composer-x.y.z-airflow-a.b.c\"\n"},"supportedPythonVersions":{"type":"array","items":{"type":"string"},"description":"Supported python versions for this image version\n"}},"type":"object","required":["imageVersionId","supportedPythonVersions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/AutoscalerAutoscalingPolicy:AutoscalerAutoscalingPolicy":{"properties":{"cooldownPeriod":{"type":"integer","description":"The number of seconds that the autoscaler should wait before it\nstarts collecting information from a new instance. This prevents\nthe autoscaler from collecting information when the instance is\ninitializing, during which the collected usage would not be\nreliable. The default time autoscaler waits is 60 seconds.\nVirtual machine initialization times might vary because of\nnumerous factors. We recommend that you test how long an\ninstance may take to initialize. To do this, create an instance\nand time the startup process.\n"},"cpuUtilization":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyCpuUtilization:AutoscalerAutoscalingPolicyCpuUtilization","description":"Defines the CPU utilization policy that allows the autoscaler to\nscale based on the average CPU utilization of a managed instance\ngroup.\nStructure is documented below.\n"},"loadBalancingUtilization":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyLoadBalancingUtilization:AutoscalerAutoscalingPolicyLoadBalancingUtilization","description":"Configuration parameters of autoscaling based on a load balancer.\nStructure is documented below.\n"},"maxReplicas":{"type":"integer","description":"The maximum number of instances that the autoscaler can scale up\nto. This is required when creating or updating an autoscaler. The\nmaximum number of replicas should not be lower than minimal number\nof replicas.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyMetric:AutoscalerAutoscalingPolicyMetric"},"description":"Configuration parameters of autoscaling based on a custom metric.\nStructure is documented below.\n"},"minReplicas":{"type":"integer","description":"The minimum number of replicas that the autoscaler can scale down\nto. This cannot be less than 0. If not provided, autoscaler will\nchoose a default value depending on maximum number of instances\nallowed.\n"},"mode":{"type":"string","description":"Defines operating mode for this policy.\n"},"scaleDownControl":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyScaleDownControl:AutoscalerAutoscalingPolicyScaleDownControl","description":"(Optional, Beta)\nDefines scale down controls to reduce the risk of response latency\nand outages due to abrupt scale-in events\nStructure is documented below.\n"},"scaleInControl":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyScaleInControl:AutoscalerAutoscalingPolicyScaleInControl","description":"Defines scale in controls to reduce the risk of response latency\nand outages due to abrupt scale-in events\nStructure is documented below.\n"},"scalingSchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyScalingSchedule:AutoscalerAutoscalingPolicyScalingSchedule"},"description":"Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler and they can overlap.\nStructure is documented below.\n"}},"type":"object","required":["maxReplicas","minReplicas"],"language":{"nodejs":{"requiredOutputs":["cpuUtilization","maxReplicas","minReplicas","scaleDownControl"]}}},"gcp:compute/AutoscalerAutoscalingPolicyCpuUtilization:AutoscalerAutoscalingPolicyCpuUtilization":{"properties":{"predictiveMethod":{"type":"string","description":"Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:\n- NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.\n- OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.\n"},"target":{"type":"number","description":"The target CPU utilization that the autoscaler should maintain.\nMust be a float value in the range (0, 1]. If not specified, the\ndefault is 0.6.\nIf the CPU level is below the target utilization, the autoscaler\nscales down the number of instances until it reaches the minimum\nnumber of instances you specified or until the average CPU of\nyour instances reaches the target utilization.\nIf the average CPU is above the target utilization, the autoscaler\nscales up until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.\n"}},"type":"object","required":["target"]},"gcp:compute/AutoscalerAutoscalingPolicyLoadBalancingUtilization:AutoscalerAutoscalingPolicyLoadBalancingUtilization":{"properties":{"target":{"type":"number","description":"Fraction of backend capacity utilization (set in HTTP(s) load\nbalancing configuration) that autoscaler should maintain. Must\nbe a positive float value. If not defined, the default is 0.8.\n"}},"type":"object","required":["target"]},"gcp:compute/AutoscalerAutoscalingPolicyMetric:AutoscalerAutoscalingPolicyMetric":{"properties":{"filter":{"type":"string","description":"A filter string to be used as the filter string for\na Stackdriver Monitoring TimeSeries.list API call.\nThis filter is used to select a specific TimeSeries for\nthe purpose of autoscaling and to determine whether the metric\nis exporting per-instance or per-group data.\nYou can only use the AND operator for joining selectors.\nYou can only use direct equality comparison operator (=) without\nany functions for each selector.\nYou can specify the metric in both the filter string and in the\nmetric field. However, if specified in both places, the metric must\nbe identical.\nThe monitored resource type determines what kind of values are\nexpected for the metric. If it is a gce_instance, the autoscaler\nexpects the metric to include a separate TimeSeries for each\ninstance in a group. In such a case, you cannot filter on resource\nlabels.\nIf the resource type is any other value, the autoscaler expects\nthis metric to contain values that apply to the entire autoscaled\ninstance group and resource label filtering can be performed to\npoint autoscaler at the correct TimeSeries to scale upon.\nThis is called a per-group metric for the purpose of autoscaling.\nIf not specified, the type defaults to gce_instance.\nYou should provide a filter that is selective enough to pick just\none TimeSeries for the autoscaled group or for each of the instances\n(if you are using\u003cspan pulumi-lang-nodejs=\" gceInstance \" pulumi-lang-dotnet=\" GceInstance \" pulumi-lang-go=\" gceInstance \" pulumi-lang-python=\" gce_instance \" pulumi-lang-yaml=\" gceInstance \" pulumi-lang-java=\" gceInstance \"\u003e gce_instance \u003c/span\u003eresource type). If multiple\nTimeSeries are returned upon the query execution, the autoscaler\nwill sum their respective values to obtain its scaling value.\n"},"name":{"type":"string","description":"The identifier (type) of the Stackdriver Monitoring metric.\nThe metric cannot have negative values.\nThe metric must have a value type of INT64 or DOUBLE.\n"},"singleInstanceAssignment":{"type":"number","description":"If scaling is based on a per-group metric value that represents the\ntotal amount of work to be done or resource usage, set this value to\nan amount assigned for a single instance of the scaled group.\nThe autoscaler will keep the number of instances proportional to the\nvalue of this metric, the metric itself should not change value due\nto group resizing.\nFor example, a good metric to use with the target is\n`pubsub.googleapis.com/subscription/num_undelivered_messages`\nor a custom metric exporting the total number of requests coming to\nyour instances.\nA bad example would be a metric exporting an average or median\nlatency, since this value can't include a chunk assignable to a\nsingle instance, it could be better used with\u003cspan pulumi-lang-nodejs=\" utilizationTarget\n\" pulumi-lang-dotnet=\" UtilizationTarget\n\" pulumi-lang-go=\" utilizationTarget\n\" pulumi-lang-python=\" utilization_target\n\" pulumi-lang-yaml=\" utilizationTarget\n\" pulumi-lang-java=\" utilizationTarget\n\"\u003e utilization_target\n\u003c/span\u003einstead.\n"},"target":{"type":"number","description":"The target value of the metric that autoscaler should\nmaintain. This must be a positive value. A utilization\nmetric scales number of virtual machines handling requests\nto increase or decrease proportionally to the metric.\nFor example, a good metric to use as a utilizationTarget is\nwww.googleapis.com/compute/instance/network/received_bytes_count.\nThe autoscaler will work to keep this value constant for each\nof the instances.\n"},"type":{"type":"string","description":"Defines how target utilization value is expressed for a\nStackdriver Monitoring metric.\nPossible values are: `GAUGE`, `DELTA_PER_SECOND`, `DELTA_PER_MINUTE`.\n"}},"type":"object","required":["name"]},"gcp:compute/AutoscalerAutoscalingPolicyScaleDownControl:AutoscalerAutoscalingPolicyScaleDownControl":{"properties":{"maxScaledDownReplicas":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas:AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas","description":"A nested object resource.\nStructure is documented below.\n"},"timeWindowSec":{"type":"integer","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.\n"}},"type":"object"},"gcp:compute/AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas:AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas":{"properties":{"fixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.\n"},"percent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.\n"}},"type":"object"},"gcp:compute/AutoscalerAutoscalingPolicyScaleInControl:AutoscalerAutoscalingPolicyScaleInControl":{"properties":{"maxScaledInReplicas":{"$ref":"#/types/gcp:compute/AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas:AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas","description":"A nested object resource.\nStructure is documented below.\n"},"timeWindowSec":{"type":"integer","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.\n"}},"type":"object"},"gcp:compute/AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas:AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas":{"properties":{"fixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.\n"},"percent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.\n"}},"type":"object"},"gcp:compute/AutoscalerAutoscalingPolicyScalingSchedule:AutoscalerAutoscalingPolicyScalingSchedule":{"properties":{"description":{"type":"string","description":"A description of a scaling schedule.\n"},"disabled":{"type":"boolean","description":"A boolean value that specifies if a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect.\n"},"durationSec":{"type":"integer","description":"The duration of time intervals (in seconds) for which this scaling schedule will be running. The minimum allowed value is 300.\n"},"minRequiredReplicas":{"type":"integer","description":"Minimum number of VM instances that autoscaler will recommend in time intervals starting according to schedule.\n"},"name":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"schedule":{"type":"string","description":"The start timestamps of time intervals when this scaling schedule should provide a scaling signal. This field uses the extended cron format (with an optional year field).\n"},"timeZone":{"type":"string","description":"The time zone to be used when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.\n"}},"type":"object","required":["durationSec","minRequiredReplicas","name","schedule"]},"gcp:compute/BackendBucketCdnPolicy:BackendBucketCdnPolicy":{"properties":{"bypassCacheOnRequestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/BackendBucketCdnPolicyBypassCacheOnRequestHeader:BackendBucketCdnPolicyBypassCacheOnRequestHeader"},"description":"Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.\nStructure is documented below.\n"},"cacheKeyPolicy":{"$ref":"#/types/gcp:compute/BackendBucketCdnPolicyCacheKeyPolicy:BackendBucketCdnPolicyCacheKeyPolicy","description":"The CacheKeyPolicy for this CdnPolicy.\nStructure is documented below.\n"},"cacheMode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC\nPossible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`.\n"},"clientTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin. When the\n\u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e is set to \"USE_ORIGIN_HEADERS\", you must omit this field.\n"},"defaultTtl":{"type":"integer","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age). When the \u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e\nis set to \"USE_ORIGIN_HEADERS\", you must omit this field.\n"},"maxTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin. When the\n\u003cspan pulumi-lang-nodejs=\"`cacheMode`\" pulumi-lang-dotnet=\"`CacheMode`\" pulumi-lang-go=\"`cacheMode`\" pulumi-lang-python=\"`cache_mode`\" pulumi-lang-yaml=\"`cacheMode`\" pulumi-lang-java=\"`cacheMode`\"\u003e`cache_mode`\u003c/span\u003e is set to \"USE_ORIGIN_HEADERS\", you must omit this field.\n"},"negativeCaching":{"type":"boolean","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.\n"},"negativeCachingPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/BackendBucketCdnPolicyNegativeCachingPolicy:BackendBucketCdnPolicyNegativeCachingPolicy"},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.\nStructure is documented below.\n"},"requestCoalescing":{"type":"boolean","description":"If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.\n"},"serveWhileStale":{"type":"integer","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.\n"},"signedUrlCacheMaxAgeSec":{"type":"integer","description":"Maximum number of seconds the response to a signed URL request will\nbe considered fresh. After this time period,\nthe response will be revalidated before being served.\nWhen serving responses to signed URL requests,\nCloud CDN will internally behave as though\nall responses from this backend had a \"Cache-Control: public,\nmax-age=[TTL]\" header, regardless of any existing Cache-Control\nheader. The actual headers served in responses will not be altered.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cacheMode","clientTtl","defaultTtl","maxTtl","negativeCaching","serveWhileStale"]}}},"gcp:compute/BackendBucketCdnPolicyBypassCacheOnRequestHeader:BackendBucketCdnPolicyBypassCacheOnRequestHeader":{"properties":{"headerName":{"type":"string","description":"The header field name to match on when bypassing cache. Values are case-insensitive.\n"}},"type":"object"},"gcp:compute/BackendBucketCdnPolicyCacheKeyPolicy:BackendBucketCdnPolicyCacheKeyPolicy":{"properties":{"includeHttpHeaders":{"type":"array","items":{"type":"string"},"description":"Allows HTTP request headers (by name) to be used in the\ncache key.\n"},"queryStringWhitelists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to include in cache keys.\nDefault parameters are always included. '\u0026' and '=' will\nbe percent encoded and not treated as delimiters.\n"}},"type":"object"},"gcp:compute/BackendBucketCdnPolicyNegativeCachingPolicy:BackendBucketCdnPolicyNegativeCachingPolicy":{"properties":{"code":{"type":"integer","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.\n"},"ttl":{"type":"integer","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.\n"}},"type":"object"},"gcp:compute/BackendBucketIamBindingCondition:BackendBucketIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/BackendBucketIamMemberCondition:BackendBucketIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/BackendBucketParams:BackendBucketParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the backend bucket. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/BackendServiceBackend:BackendServiceBackend":{"properties":{"balancingMode":{"type":"string","description":"Specifies the balancing mode for this backend.\nFor global HTTP(S) or TCP/SSL load balancing, the default is\nUTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),\nCUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).\nSee the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)\nfor an explanation of load balancing modes.\nDefault value is `UTILIZATION`.\nPossible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`, `IN_FLIGHT`.\n"},"capacityScaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\nDefault value is 1, which means the group will serve up to 100%\nof its configured capacity (depending on balancingMode). A\nsetting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].\n"},"customMetrics":{"type":"array","items":{"$ref":"#/types/gcp:compute/BackendServiceBackendCustomMetric:BackendServiceBackendCustomMetric"},"description":"The set of custom metrics that are used for \u003ccode\u003eCUSTOM_METRICS\u003c/code\u003e BalancingMode.\nStructure is documented below.\n"},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.\n"},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.\n"},"maxConnections":{"type":"integer","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.\n"},"maxConnectionsPerEndpoint":{"type":"integer","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\nFor CONNECTION mode, either\nmaxConnections or maxConnectionsPerEndpoint must be set.\n"},"maxConnectionsPerInstance":{"type":"integer","description":"The max number of simultaneous connections that a single\nbackend instance can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.\n"},"maxInFlightRequests":{"type":"integer","description":"(Optional, Beta)\nDefines a maximum number of in-flight requests for the whole NEG\nor instance group. Not available if backend's balancingMode is RATE\nor CONNECTION.\n"},"maxInFlightRequestsPerEndpoint":{"type":"integer","description":"(Optional, Beta)\nDefines a maximum number of in-flight requests for a single endpoint.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxInFlightRequestsPerInstance":{"type":"integer","description":"(Optional, Beta)\nDefines a maximum number of in-flight requests for a single VM.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxRate":{"type":"integer","description":"The max requests per second (RPS) of the group.\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. For RATE mode, either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.\n"},"maxRatePerEndpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set.\n"},"maxRatePerInstance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set.\n"},"maxUtilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].\n"},"preference":{"type":"string","description":"This field indicates whether this backend should be fully utilized before sending traffic to backends\nwith default preference. This field cannot be set when loadBalancingScheme is set to 'EXTERNAL'. The possible values are:\n- PREFERRED: Backends with this preference level will be filled up to their capacity limits first,\nbased on RTT.\n- DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and\ntraffic would be assigned based on the load balancing algorithm you use. This is the default\nPossible values are: `PREFERRED`, `DEFAULT`.\n"},"trafficDuration":{"type":"string","description":"(Optional, Beta)\nThis field specifies how long a connection should be kept alive for:\n- LONG: Most of the requests are expected to take more than multiple\nseconds to finish.\n- SHORT: Most requests are expected to finish with a sub-second latency.\nPossible values are: `LONG`, `SHORT`.\n"}},"type":"object","required":["group"],"language":{"nodejs":{"requiredOutputs":["group","maxConnections","maxConnectionsPerEndpoint","maxConnectionsPerInstance","maxInFlightRequests","maxInFlightRequestsPerEndpoint","maxInFlightRequestsPerInstance","maxRate","maxRatePerEndpoint","maxRatePerInstance","maxUtilization"]}}},"gcp:compute/BackendServiceBackendCustomMetric:BackendServiceBackendCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is not used for load balancing.\n"},"maxUtilization":{"type":"number","description":"Optional parameter to define a target utilization for the Custom Metrics\nbalancing mode. The valid range is \u003ccode\u003e[0.0, 1.0]\u003c/code\u003e.\n"},"name":{"type":"string","description":"Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression a-z? which\nmeans the first character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to \u003ccode\u003eEXTERNAL_MANAGED\u003c/code\u003e,\n\u003ccode\u003eINTERNAL_MANAGED\u003c/code\u003e \u003ccode\u003eINTERNAL_SELF_MANAGED\u003c/code\u003e.\n"}},"type":"object","required":["dryRun","name"]},"gcp:compute/BackendServiceCdnPolicy:BackendServiceCdnPolicy":{"properties":{"bypassCacheOnRequestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/BackendServiceCdnPolicyBypassCacheOnRequestHeader:BackendServiceCdnPolicyBypassCacheOnRequestHeader"},"description":"Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.\nThe cache is bypassed for all cdnPolicy.cacheMode settings.\nStructure is documented below.\n"},"cacheKeyPolicy":{"$ref":"#/types/gcp:compute/BackendServiceCdnPolicyCacheKeyPolicy:BackendServiceCdnPolicyCacheKeyPolicy","description":"The CacheKeyPolicy for this CdnPolicy.\nStructure is documented below.\n"},"cacheMode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC\nPossible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`.\n"},"clientTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"defaultTtl":{"type":"integer","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).\n"},"maxTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"negativeCaching":{"type":"boolean","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.\n"},"negativeCachingPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/BackendServiceCdnPolicyNegativeCachingPolicy:BackendServiceCdnPolicyNegativeCachingPolicy"},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.\nStructure is documented below.\n"},"requestCoalescing":{"type":"boolean","description":"If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests\nto the origin.\n"},"serveWhileStale":{"type":"integer","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.\n"},"signedUrlCacheMaxAgeSec":{"type":"integer","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cacheMode","clientTtl","defaultTtl","maxTtl","negativeCaching","requestCoalescing","serveWhileStale"]}}},"gcp:compute/BackendServiceCdnPolicyBypassCacheOnRequestHeader:BackendServiceCdnPolicyBypassCacheOnRequestHeader":{"properties":{"headerName":{"type":"string","description":"The header field name to match on when bypassing cache. Values are case-insensitive.\n"}},"type":"object","required":["headerName"]},"gcp:compute/BackendServiceCdnPolicyCacheKeyPolicy:BackendServiceCdnPolicyCacheKeyPolicy":{"properties":{"includeHost":{"type":"boolean","description":"If true requests to different hosts will be cached separately.\n"},"includeHttpHeaders":{"type":"array","items":{"type":"string"},"description":"Allows HTTP request headers (by name) to be used in the\ncache key.\n"},"includeNamedCookies":{"type":"array","items":{"type":"string"},"description":"Names of cookies to include in cache keys.\n"},"includeProtocol":{"type":"boolean","description":"If true, http and https requests will be cached separately.\n"},"includeQueryString":{"type":"boolean","description":"If true, include query string parameters in the cache key\naccording to\u003cspan pulumi-lang-nodejs=\" queryStringWhitelist \" pulumi-lang-dotnet=\" QueryStringWhitelist \" pulumi-lang-go=\" queryStringWhitelist \" pulumi-lang-python=\" query_string_whitelist \" pulumi-lang-yaml=\" queryStringWhitelist \" pulumi-lang-java=\" queryStringWhitelist \"\u003e query_string_whitelist \u003c/span\u003eand\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\nIf false, the query string will be excluded from the cache\nkey entirely.\n"},"queryStringBlacklists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to exclude in cache keys.\nAll other parameters will be included. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"},"queryStringWhitelists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to include in cache keys.\nAll other parameters will be excluded. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"}},"type":"object"},"gcp:compute/BackendServiceCdnPolicyNegativeCachingPolicy:BackendServiceCdnPolicyNegativeCachingPolicy":{"properties":{"code":{"type":"integer","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.\n"},"ttl":{"type":"integer","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.\n"}},"type":"object"},"gcp:compute/BackendServiceCircuitBreakers:BackendServiceCircuitBreakers":{"properties":{"connectTimeout":{"$ref":"#/types/gcp:compute/BackendServiceCircuitBreakersConnectTimeout:BackendServiceCircuitBreakersConnectTimeout","description":"(Optional, Beta)\nThe timeout for new network connections to hosts.\nStructure is documented below.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.\n"},"maxPendingRequests":{"type":"integer","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequests":{"type":"integer","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequestsPerConnection":{"type":"integer","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.\n"},"maxRetries":{"type":"integer","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.\n"}},"type":"object"},"gcp:compute/BackendServiceCircuitBreakersConnectTimeout:BackendServiceCircuitBreakersConnectTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/BackendServiceConsistentHash:BackendServiceConsistentHash":{"properties":{"httpCookie":{"$ref":"#/types/gcp:compute/BackendServiceConsistentHashHttpCookie:BackendServiceConsistentHashHttpCookie","description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.\nStructure is documented below.\n"},"httpHeaderName":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.\n"},"minimumRingSize":{"type":"integer","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.\n"}},"type":"object"},"gcp:compute/BackendServiceConsistentHashHttpCookie:BackendServiceConsistentHashHttpCookie":{"properties":{"name":{"type":"string","description":"Name of the cookie.\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttl":{"$ref":"#/types/gcp:compute/BackendServiceConsistentHashHttpCookieTtl:BackendServiceConsistentHashHttpCookieTtl","description":"Lifetime of the cookie.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/BackendServiceConsistentHashHttpCookieTtl:BackendServiceConsistentHashHttpCookieTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/BackendServiceCustomMetric:BackendServiceCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is not used for load balancing.\n"},"name":{"type":"string","description":"Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression a-z? which\nmeans the first character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to \u003ccode\u003eEXTERNAL_MANAGED\u003c/code\u003e,\n\u003ccode\u003eINTERNAL_MANAGED\u003c/code\u003e \u003ccode\u003eINTERNAL_SELF_MANAGED\u003c/code\u003e.\n"}},"type":"object","required":["dryRun","name"]},"gcp:compute/BackendServiceDynamicForwarding:BackendServiceDynamicForwarding":{"properties":{"ipPortSelection":{"$ref":"#/types/gcp:compute/BackendServiceDynamicForwardingIpPortSelection:BackendServiceDynamicForwardingIpPortSelection","description":"(Optional, Beta)\nIP:PORT based dynamic forwarding configuration.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/BackendServiceDynamicForwardingIpPortSelection:BackendServiceDynamicForwardingIpPortSelection":{"properties":{"enabled":{"type":"boolean","description":"(Optional, Beta)\nA boolean flag enabling IP:PORT based dynamic forwarding.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/BackendServiceIamBindingCondition:BackendServiceIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/BackendServiceIamMemberCondition:BackendServiceIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/BackendServiceIap:BackendServiceIap":{"properties":{"enabled":{"type":"boolean","description":"Whether the serving infrastructure will authenticate and authorize all incoming requests.\n"},"oauth2ClientId":{"type":"string","description":"OAuth2 Client ID for IAP\n"},"oauth2ClientSecret":{"type":"string","description":"OAuth2 Client Secret for IAP\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"oauth2ClientSecretSha256":{"type":"string","description":"(Output)\nOAuth2 Client Secret SHA-256 for IAP\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","oauth2ClientSecretSha256"]}}},"gcp:compute/BackendServiceLocalityLbPolicy:BackendServiceLocalityLbPolicy":{"properties":{"customPolicy":{"$ref":"#/types/gcp:compute/BackendServiceLocalityLbPolicyCustomPolicy:BackendServiceLocalityLbPolicyCustomPolicy","description":"The configuration for a custom policy implemented by the user and\ndeployed with the client.\nStructure is documented below.\n"},"policy":{"$ref":"#/types/gcp:compute/BackendServiceLocalityLbPolicyPolicy:BackendServiceLocalityLbPolicyPolicy","description":"The configuration for a built-in load balancing policy.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/BackendServiceLocalityLbPolicyCustomPolicy:BackendServiceLocalityLbPolicyCustomPolicy":{"properties":{"data":{"type":"string","description":"An optional, arbitrary JSON object with configuration data, understood\nby a locally installed custom policy implementation.\n"},"name":{"type":"string","description":"Identifies the custom policy.\nThe value should match the type the custom implementation is registered\nwith on the gRPC clients. It should follow protocol buffer\nmessage naming conventions and include the full path (e.g.\nmyorg.CustomLbPolicy). The maximum length is 256 characters.\nNote that specifying the same custom policy more than once for a\nbackend is not a valid configuration and will be rejected.\n"}},"type":"object","required":["name"]},"gcp:compute/BackendServiceLocalityLbPolicyPolicy:BackendServiceLocalityLbPolicyPolicy":{"properties":{"name":{"type":"string","description":"The name of a locality load balancer policy to be used. The value\nshould be one of the predefined ones as supported by localityLbPolicy,\nalthough at the moment only ROUND_ROBIN is supported.\nThis field should only be populated when the customPolicy field is not\nused.\nNote that specifying the same policy more than once for a backend is\nnot a valid configuration and will be rejected.\nThe possible values are:\n* `ROUND_ROBIN`: This is a simple policy in which each healthy backend\nis selected in round robin order.\n* `LEAST_REQUEST`: An O(1) algorithm which selects two random healthy\nhosts and picks the host which has fewer active requests.\n* `RING_HASH`: The ring/modulo hash load balancer implements consistent\nhashing to backends. The algorithm has the property that the\naddition/removal of a host from a set of N hosts only affects\n1/N of the requests.\n* `RANDOM`: The load balancer selects a random healthy host.\n* `ORIGINAL_DESTINATION`: Backend host is selected based on the client\nconnection metadata, i.e., connections are opened\nto the same address as the destination address of\nthe incoming connection before the connection\nwas redirected to the load balancer.\n* `MAGLEV`: used as a drop in replacement for the ring hash load balancer.\nMaglev is not as stable as ring hash but has faster table lookup\nbuild times and host selection times. For more information about\nMaglev, refer to https://ai.google/research/pubs/pub44824\nPossible values are: `ROUND_ROBIN`, `LEAST_REQUEST`, `RING_HASH`, `RANDOM`, `ORIGINAL_DESTINATION`, `MAGLEV`.\n"}},"type":"object","required":["name"]},"gcp:compute/BackendServiceLogConfig:BackendServiceLogConfig":{"properties":{"enable":{"type":"boolean","description":"Whether to enable logging for the load balancer traffic served by this backend service.\n"},"optionalFields":{"type":"array","items":{"type":"string"},"description":"This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\"\nwas set to CUSTOM. Contains a list of optional fields you want to include in the logs.\nFor example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace\nFor example: orca_load_report, tls.protocol\n"},"optionalMode":{"type":"string","description":"Specifies the optional logging mode for the load balancer traffic.\nSupported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.\nPossible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.\n"},"sampleRate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["optionalMode"]}}},"gcp:compute/BackendServiceMaxStreamDuration:BackendServiceMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution.\nDurations less than one second are represented with a 0 seconds field and a positive nanos field.\nMust be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. (int64 format)\n"}},"type":"object","required":["seconds"]},"gcp:compute/BackendServiceNetworkPassThroughLbTrafficPolicy:BackendServiceNetworkPassThroughLbTrafficPolicy":{"properties":{"zonalAffinity":{"$ref":"#/types/gcp:compute/BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity","description":"When configured, new connections are load balanced across healthy backend endpoints in the local zone.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity":{"properties":{"spillover":{"type":"string","description":"(Optional, Beta)\nThis field indicates whether zonal affinity is enabled or not.\nDefault value is `ZONAL_AFFINITY_DISABLED`.\nPossible values are: `ZONAL_AFFINITY_DISABLED`, `ZONAL_AFFINITY_SPILL_CROSS_ZONE`, `ZONAL_AFFINITY_STAY_WITHIN_ZONE`.\n"},"spilloverRatio":{"type":"number","description":"(Optional, Beta)\nThe value of the field must be in [0, 1]. When the ratio of the count of healthy backend endpoints in a zone\nto the count of backend endpoints in that same zone is equal to or above this threshold, the load balancer\ndistributes new connections to all healthy endpoints in the local zone only. When the ratio of the count\nof healthy backend endpoints in a zone to the count of backend endpoints in that same zone is below this\nthreshold, the load balancer distributes all new connections to all healthy endpoints across all zones.\n"}},"type":"object"},"gcp:compute/BackendServiceOutlierDetection:BackendServiceOutlierDetection":{"properties":{"baseEjectionTime":{"$ref":"#/types/gcp:compute/BackendServiceOutlierDetectionBaseEjectionTime:BackendServiceOutlierDetectionBaseEjectionTime","description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.\nStructure is documented below.\n"},"consecutiveErrors":{"type":"integer","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.\n"},"consecutiveGatewayFailure":{"type":"integer","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.\n"},"enforcingConsecutiveErrors":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.\n"},"enforcingConsecutiveGatewayFailure":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.\n"},"enforcingSuccessRate":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.\n"},"interval":{"$ref":"#/types/gcp:compute/BackendServiceOutlierDetectionInterval:BackendServiceOutlierDetectionInterval","description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.\nStructure is documented below.\n"},"maxEjectionPercent":{"type":"integer","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.\n"},"successRateMinimumHosts":{"type":"integer","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.\n"},"successRateRequestVolume":{"type":"integer","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.\n"},"successRateStdevFactor":{"type":"integer","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.\n"}},"type":"object"},"gcp:compute/BackendServiceOutlierDetectionBaseEjectionTime:BackendServiceOutlierDetectionBaseEjectionTime":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive\n\u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/BackendServiceOutlierDetectionInterval:BackendServiceOutlierDetectionInterval":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive\n\u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/BackendServiceParams:BackendServiceParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the backend service. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/BackendServiceSecuritySettings:BackendServiceSecuritySettings":{"properties":{"awsV4Authentication":{"$ref":"#/types/gcp:compute/BackendServiceSecuritySettingsAwsV4Authentication:BackendServiceSecuritySettingsAwsV4Authentication","description":"The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication.\nAllowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedSecuritySettingsAwsV4Authentication\"\" pulumi-lang-dotnet=\"\"NestedSecuritySettingsAwsV4Authentication\"\" pulumi-lang-go=\"\"nestedSecuritySettingsAwsV4Authentication\"\" pulumi-lang-python=\"\"nested_security_settings_aws_v4_authentication\"\" pulumi-lang-yaml=\"\"nestedSecuritySettingsAwsV4Authentication\"\" pulumi-lang-java=\"\"nestedSecuritySettingsAwsV4Authentication\"\"\u003e\"nested_security_settings_aws_v4_authentication\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`awsV4Authentication`\" pulumi-lang-dotnet=\"`AwsV4Authentication`\" pulumi-lang-go=\"`awsV4Authentication`\" pulumi-lang-python=\"`aws_v4_authentication`\" pulumi-lang-yaml=\"`awsV4Authentication`\" pulumi-lang-java=\"`awsV4Authentication`\"\u003e`aws_v4_authentication`\u003c/span\u003e block supports:\n"},"clientTlsPolicy":{"type":"string","description":"ClientTlsPolicy is a resource that specifies how a client should authenticate\nconnections to backends of a service. This resource itself does not affect\nconfiguration unless it is attached to a backend service resource.\n"},"subjectAltNames":{"type":"array","items":{"type":"string"},"description":"A list of alternate names to verify the subject identity in the certificate.\nIf specified, the client will verify that the server certificate's subject\nalt name matches one of the specified values.\n"}},"type":"object"},"gcp:compute/BackendServiceSecuritySettingsAwsV4Authentication:BackendServiceSecuritySettingsAwsV4Authentication":{"properties":{"accessKey":{"type":"string","description":"The access key used for s3 bucket authentication.\nRequired for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request.\n","secret":true},"accessKeyId":{"type":"string","description":"The identifier of an access key used for s3 bucket authentication.\n"},"accessKeyVersion":{"type":"string","description":"The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.\n"},"originRegion":{"type":"string","description":"The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin.\nFor example, \"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.\n"}},"type":"object"},"gcp:compute/BackendServiceStrongSessionAffinityCookie:BackendServiceStrongSessionAffinityCookie":{"properties":{"name":{"type":"string","description":"Name of the cookie.\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttl":{"$ref":"#/types/gcp:compute/BackendServiceStrongSessionAffinityCookieTtl:BackendServiceStrongSessionAffinityCookieTtl","description":"Lifetime of the cookie.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/BackendServiceStrongSessionAffinityCookieTtl:BackendServiceStrongSessionAffinityCookieTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/BackendServiceTlsSettings:BackendServiceTlsSettings":{"properties":{"authenticationConfig":{"type":"string","description":"Reference to the BackendAuthenticationConfig resource from the networksecurity.googleapis.com namespace.\nCan be used in authenticating TLS connections to the backend, as specified by the authenticationMode field.\nCan only be specified if authenticationMode is not NONE.\n"},"sni":{"type":"string","description":"Server Name Indication - see RFC3546 section 3.1. If set, the load balancer sends this string as the SNI hostname in the\nTLS connection to the backend, and requires that this string match a Subject Alternative Name (SAN) in the backend's\nserver certificate. With a Regional Internet NEG backend, if the SNI is specified here, the load balancer uses it\nregardless of whether the Regional Internet NEG is specified with FQDN or IP address and port.\n"},"subjectAltNames":{"type":"array","items":{"$ref":"#/types/gcp:compute/BackendServiceTlsSettingsSubjectAltName:BackendServiceTlsSettingsSubjectAltName"},"description":"A list of Subject Alternative Names (SANs) that the Load Balancer verifies during a TLS handshake with the backend.\nWhen the server presents its X.509 certificate to the Load Balancer, the Load Balancer inspects the certificate's SAN field,\nand requires that at least one SAN match one of the subjectAltNames in the list. This field is limited to 5 entries.\nWhen both sni and subjectAltNames are specified, the load balancer matches the backend certificate's SAN only to\nsubjectAltNames.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/BackendServiceTlsSettingsSubjectAltName:BackendServiceTlsSettingsSubjectAltName":{"properties":{"dnsName":{"type":"string","description":"The SAN specified as a DNS Name.\n"},"uniformResourceIdentifier":{"type":"string","description":"The SAN specified as a URI.\n"}},"type":"object"},"gcp:compute/DiskAsyncPrimaryDisk:DiskAsyncPrimaryDisk":{"properties":{"disk":{"type":"string","description":"Primary disk for asynchronous disk replication.\n","willReplaceOnChanges":true}},"type":"object","required":["disk"]},"gcp:compute/DiskAsyncReplicationSecondaryDisk:DiskAsyncReplicationSecondaryDisk":{"properties":{"disk":{"type":"string","description":"The secondary disk.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"Output-only. Status of replication on the secondary disk.\n\n- - -\n"}},"type":"object","required":["disk"],"language":{"nodejs":{"requiredOutputs":["disk","state"]}}},"gcp:compute/DiskDiskEncryptionKey:DiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n(`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have\n`roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/DiskGuestOsFeature:DiskGuestOsFeature":{"properties":{"type":{"type":"string","description":"The type of supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/DiskIamBindingCondition:DiskIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/DiskIamMemberCondition:DiskIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/DiskParams:DiskParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the disk. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/DiskSourceImageEncryptionKey:DiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n(`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have\n`roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/DiskSourceSnapshotEncryptionKey:DiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n(`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have\n`roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/ExternalVpnGatewayInterface:ExternalVpnGatewayInterface":{"properties":{"id":{"type":"integer","description":"The numeric ID for this interface. Allowed values are based on the redundancy type\nof this external VPN gateway\n* `0 - SINGLE_IP_INTERNALLY_REDUNDANT`\n* `0, 1 - TWO_IPS_REDUNDANCY`\n* `0, 1, 2, 3 - FOUR_IPS_REDUNDANCY`\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"IP address of the interface in the external VPN gateway.\nOnly IPv4 is supported. This IP address can be either from\nyour on-premise gateway or another Cloud provider's VPN gateway,\nit cannot be an IP address from Google Compute Engine.\n","willReplaceOnChanges":true},"ipv6Address":{"type":"string","description":"IPv6 address of the interface in the external VPN gateway. This IPv6\naddress can be either from your on-premise gateway or another Cloud\nprovider's VPN gateway, it cannot be an IP address from Google Compute\nEngine. Must specify an IPv6 address (not IPV4-mapped) using any format\ndescribed in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format\nis RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/ExternalVpnGatewayParams:ExternalVpnGatewayParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the ExternalVpnGateway. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/FirewallAllow:FirewallAllow":{"properties":{"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [22], [80, 443], and\n[\"12345-12349\"].\n"},"protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp, udp,\nicmp, esp, ah, sctp, ipip, all), or the IP protocol number.\n"}},"type":"object","required":["protocol"]},"gcp:compute/FirewallDeny:FirewallDeny":{"properties":{"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [22], [80, 443], and\n[\"12345-12349\"].\n"},"protocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is\nrequired when creating a firewall rule. This value can either be\none of the following well known protocol strings (tcp, udp,\nicmp, esp, ah, sctp, ipip, all), or the IP protocol number.\n"}},"type":"object","required":["protocol"]},"gcp:compute/FirewallLogConfig:FirewallLogConfig":{"properties":{"metadata":{"type":"string","description":"This field denotes whether to include or exclude metadata for firewall logs.\nPossible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`.\n"}},"type":"object","required":["metadata"]},"gcp:compute/FirewallParams:FirewallParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the firewall. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n"}},"type":"object"},"gcp:compute/FirewallPolicyRuleMatch:FirewallPolicyRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.\n"},"destNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic destination.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyRuleMatchLayer4Config:FirewallPolicyRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.\n"},"srcNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic source.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"srcNetworks":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nNetworks of the traffic source. It can be either a full or partial url.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyRuleMatchSrcSecureTag:FirewallPolicyRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-dotnet=\"\"NestedMatchLayer4Configs\"\" pulumi-lang-go=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-python=\"\"nested_match_layer4_configs\"\" pulumi-lang-yaml=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-java=\"\"nestedMatchLayer4Configs\"\"\u003e\"nested_match_layer4_configs\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Configs`\" pulumi-lang-dotnet=\"`Layer4Configs`\" pulumi-lang-go=\"`layer4Configs`\" pulumi-lang-python=\"`layer4_configs`\" pulumi-lang-yaml=\"`layer4Configs`\" pulumi-lang-java=\"`layer4Configs`\"\u003e`layer4_configs`\u003c/span\u003e block supports:\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/FirewallPolicyRuleMatchLayer4Config:FirewallPolicyRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.\nThis value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/FirewallPolicyRuleMatchSrcSecureTag:FirewallPolicyRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/FirewallPolicyRuleTargetSecureTag:FirewallPolicyRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/FirewallPolicyWithRulesPredefinedRule:FirewallPolicyWithRulesPredefinedRule":{"properties":{"action":{"type":"string","description":"(Output)\nThe Action to perform when the client connection triggers the rule. Can currently be either\n\"allow\", \"deny\", \u003cspan pulumi-lang-nodejs=\"\"applySecurityProfileGroup\"\" pulumi-lang-dotnet=\"\"ApplySecurityProfileGroup\"\" pulumi-lang-go=\"\"applySecurityProfileGroup\"\" pulumi-lang-python=\"\"apply_security_profile_group\"\" pulumi-lang-yaml=\"\"applySecurityProfileGroup\"\" pulumi-lang-java=\"\"applySecurityProfileGroup\"\"\u003e\"apply_security_profile_group\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"gotoNext\"\" pulumi-lang-dotnet=\"\"GotoNext\"\" pulumi-lang-go=\"\"gotoNext\"\" pulumi-lang-python=\"\"goto_next\"\" pulumi-lang-yaml=\"\"gotoNext\"\" pulumi-lang-java=\"\"gotoNext\"\"\u003e\"goto_next\"\u003c/span\u003e.\n"},"description":{"type":"string","description":"An optional description of this resource.\n"},"direction":{"type":"string","description":"(Output)\nThe direction in which this rule applies. If unspecified an INGRESS rule is created.\n"},"disabled":{"type":"boolean","description":"(Output)\nDenotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.\n"},"enableLogging":{"type":"boolean","description":"(Output)\nDenotes whether to enable logging for a particular rule.\nIf logging is enabled, logs will be exported to the\nconfigured export destination in Stackdriver.\n"},"matches":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesPredefinedRuleMatch:FirewallPolicyWithRulesPredefinedRuleMatch"},"description":"(Output)\nA match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"(Output)\nAn integer indicating the priority of a rule in the list. The priority must be a value\nbetween 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.\n"},"ruleName":{"type":"string","description":"(Output)\nAn optional name for the rule. This field is not a unique identifier\nand can be updated.\n"},"securityProfileGroup":{"type":"string","description":"(Output)\nA fully-qualified URL of a SecurityProfile resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is 'apply_security_profile_group'.\n"},"targetResources":{"type":"array","items":{"type":"string"},"description":"(Output)\nA list of network resource URLs to which this rule applies.\nThis field allows you to control which network's VMs get\nthis rule. If this field is left blank, all VMs\nwithin the organization will receive the rule.\n"},"targetSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesPredefinedRuleTargetSecureTag:FirewallPolicyWithRulesPredefinedRuleTargetSecureTag"},"description":"(Output)\nA list of secure tags that controls which instances the firewall rule\napplies to. If \u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the\u003cspan pulumi-lang-nodejs=\" targetSecureTag \" pulumi-lang-dotnet=\" TargetSecureTag \" pulumi-lang-go=\" targetSecureTag \" pulumi-lang-python=\" target_secure_tag \" pulumi-lang-yaml=\" targetSecureTag \" pulumi-lang-java=\" targetSecureTag \"\u003e target_secure_tag \u003c/span\u003eare in\nINEFFECTIVE state, then this rule will be ignored.\n\u003ccode\u003etargetSecureTag\u003c/code\u003e may not be set at the same time as\n\u003ccode\u003etargetServiceAccounts\u003c/code\u003e.\nIf neither \u003ccode\u003etargetServiceAccounts\u003c/code\u003e nor\n\u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target secure tags allowed is 256.\nStructure is documented below.\n"},"targetServiceAccounts":{"type":"array","items":{"type":"string"},"description":"(Output)\nA list of service accounts indicating the sets of\ninstances that are applied with this rule.\n"},"tlsInspect":{"type":"boolean","description":"(Output)\nBoolean flag indicating if the traffic should be TLS decrypted.\nIt can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["action","description","direction","disabled","enableLogging","matches","priority","ruleName","securityProfileGroup","targetResources","targetSecureTags","targetServiceAccounts","tlsInspect"]}}},"gcp:compute/FirewallPolicyWithRulesPredefinedRuleMatch:FirewallPolicyWithRulesPredefinedRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of destination region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config:FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag:FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the \u003ccode\u003esrcSecureTag\u003c/code\u003e are INEFFECTIVE,\nand there is no \u003ccode\u003esrcIpRange\u003c/code\u003e, this rule will be ignored.\nMaximum number of source tag values allowed is 256.\nStructure is documented below.\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["destAddressGroups","destFqdns","destIpRanges","destRegionCodes","destThreatIntelligences","layer4Configs","srcAddressGroups","srcFqdns","srcIpRanges","srcRegionCodes","srcSecureTags","srcThreatIntelligences"]}}},"gcp:compute/FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config:FirewallPolicyWithRulesPredefinedRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"(Output)\nThe IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"(Output)\nAn optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipProtocol","ports"]}}},"gcp:compute/FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag:FirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedRuleMatchLayer4Config\"\" pulumi-lang-go=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-python=\"\"nested_rule_match_layer4_config\"\" pulumi-lang-yaml=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-java=\"\"nestedRuleMatchLayer4Config\"\"\u003e\"nested_rule_match_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","state"]}}},"gcp:compute/FirewallPolicyWithRulesPredefinedRuleTargetSecureTag:FirewallPolicyWithRulesPredefinedRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","state"]}}},"gcp:compute/FirewallPolicyWithRulesRule:FirewallPolicyWithRulesRule":{"properties":{"action":{"type":"string","description":"The Action to perform when the client connection triggers the rule. Can currently be either\n\"allow\", \"deny\", \u003cspan pulumi-lang-nodejs=\"\"applySecurityProfileGroup\"\" pulumi-lang-dotnet=\"\"ApplySecurityProfileGroup\"\" pulumi-lang-go=\"\"applySecurityProfileGroup\"\" pulumi-lang-python=\"\"apply_security_profile_group\"\" pulumi-lang-yaml=\"\"applySecurityProfileGroup\"\" pulumi-lang-java=\"\"applySecurityProfileGroup\"\"\u003e\"apply_security_profile_group\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"gotoNext\"\" pulumi-lang-dotnet=\"\"GotoNext\"\" pulumi-lang-go=\"\"gotoNext\"\" pulumi-lang-python=\"\"goto_next\"\" pulumi-lang-yaml=\"\"gotoNext\"\" pulumi-lang-java=\"\"gotoNext\"\"\u003e\"goto_next\"\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description of the rule.\n"},"direction":{"type":"string","description":"The direction in which this rule applies. If unspecified an INGRESS rule is created.\nPossible values are: `INGRESS`, `EGRESS`.\n"},"disabled":{"type":"boolean","description":"Denotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.\n"},"enableLogging":{"type":"boolean","description":"Denotes whether to enable logging for a particular rule.\nIf logging is enabled, logs will be exported to the\nconfigured export destination in Stackdriver.\n"},"match":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesRuleMatch:FirewallPolicyWithRulesRuleMatch","description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"An integer indicating the priority of a rule in the list. The priority must be a value\nbetween 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.\n"},"ruleName":{"type":"string","description":"An optional name for the rule. This field is not a unique identifier\nand can be updated.\n"},"securityProfileGroup":{"type":"string","description":"A fully-qualified URL of a SecurityProfile resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is 'apply_security_profile_group'.\n"},"targetResources":{"type":"array","items":{"type":"string"},"description":"A list of network resource URLs to which this rule applies.\nThis field allows you to control which network's VMs get\nthis rule. If this field is left blank, all VMs\nwithin the organization will receive the rule.\n"},"targetSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesRuleTargetSecureTag:FirewallPolicyWithRulesRuleTargetSecureTag"},"description":"A list of secure tags that controls which instances the firewall rule\napplies to. If \u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the\u003cspan pulumi-lang-nodejs=\" targetSecureTag \" pulumi-lang-dotnet=\" TargetSecureTag \" pulumi-lang-go=\" targetSecureTag \" pulumi-lang-python=\" target_secure_tag \" pulumi-lang-yaml=\" targetSecureTag \" pulumi-lang-java=\" targetSecureTag \"\u003e target_secure_tag \u003c/span\u003eare in\nINEFFECTIVE state, then this rule will be ignored.\n\u003ccode\u003etargetSecureTag\u003c/code\u003e may not be set at the same time as\n\u003ccode\u003etargetServiceAccounts\u003c/code\u003e.\nIf neither \u003ccode\u003etargetServiceAccounts\u003c/code\u003e nor\n\u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target secure tags allowed is 256.\nStructure is documented below.\n"},"targetServiceAccounts":{"type":"array","items":{"type":"string"},"description":"A list of service accounts indicating the sets of\ninstances that are applied with this rule.\n"},"tlsInspect":{"type":"boolean","description":"Boolean flag indicating if the traffic should be TLS decrypted.\nIt can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.\n"}},"type":"object","required":["action","match","priority"]},"gcp:compute/FirewallPolicyWithRulesRuleMatch:FirewallPolicyWithRulesRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"destNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic destination.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of destination region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesRuleMatchLayer4Config:FirewallPolicyWithRulesRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"},"srcNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic source.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"srcNetworks":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nNetworks of the traffic source. It can be either a full or partial url.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/FirewallPolicyWithRulesRuleMatchSrcSecureTag:FirewallPolicyWithRulesRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the \u003ccode\u003esrcSecureTag\u003c/code\u003e are INEFFECTIVE,\nand there is no \u003ccode\u003esrcIpRange\u003c/code\u003e, this rule will be ignored.\nMaximum number of source tag values allowed is 256.\nStructure is documented below.\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/FirewallPolicyWithRulesRuleMatchLayer4Config:FirewallPolicyWithRulesRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"(Output)\nThe IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"(Output)\nAn optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/FirewallPolicyWithRulesRuleMatchSrcSecureTag:FirewallPolicyWithRulesRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedRuleMatchLayer4Config\"\" pulumi-lang-go=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-python=\"\"nested_rule_match_layer4_config\"\" pulumi-lang-yaml=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-java=\"\"nestedRuleMatchLayer4Config\"\"\u003e\"nested_rule_match_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/FirewallPolicyWithRulesRuleTargetSecureTag:FirewallPolicyWithRulesRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/ForwardingRuleServiceDirectoryRegistrations:ForwardingRuleServiceDirectoryRegistrations":{"properties":{"namespace":{"type":"string","description":"Service Directory namespace to register the forwarding rule under.\n","willReplaceOnChanges":true},"service":{"type":"string","description":"Service Directory service to register the forwarding rule under.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["namespace"]}}},"gcp:compute/FutureReservationAggregateReservation:FutureReservationAggregateReservation":{"properties":{"reservedResources":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationAggregateReservationReservedResource:FutureReservationAggregateReservationReservedResource"},"description":"futureReservations.list of reserved resources (CPUs, memory, accelerators).\nStructure is documented below.\n","willReplaceOnChanges":true},"vmFamily":{"type":"string","description":"The VM family that all instances scheduled against this reservation must belong to.\nPossible values are: `VM_FAMILY_CLOUD_TPU_DEVICE_CT3`, `VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L`, `VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP`, `VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT6E`, `VM_FAMILY_CLOUD_TPU_POD_SLICE_CT3P`, `VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P`, `VM_FAMILY_CLOUD_TPU_POD_SLICE_CT5P`.\n","willReplaceOnChanges":true},"workloadType":{"type":"string","description":"The workload type of the instances that will target this reservation.\nPossible values are: `BATCH`, `SERVING`, `UNSPECIFIED`.\n","willReplaceOnChanges":true}},"type":"object","required":["reservedResources"]},"gcp:compute/FutureReservationAggregateReservationReservedResource:FutureReservationAggregateReservationReservedResource":{"properties":{"accelerator":{"$ref":"#/types/gcp:compute/FutureReservationAggregateReservationReservedResourceAccelerator:FutureReservationAggregateReservationReservedResourceAccelerator","description":"Properties of accelerator resources in this reservation.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/FutureReservationAggregateReservationReservedResourceAccelerator:FutureReservationAggregateReservationReservedResourceAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"Number of accelerators of specified type.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"Full or partial URL to accelerator type. e.g. \"projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l\"\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/FutureReservationAutoCreatedReservationsDuration:FutureReservationAutoCreatedReservationsDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object"},"gcp:compute/FutureReservationCommitmentInfo:FutureReservationCommitmentInfo":{"properties":{"commitmentName":{"type":"string","description":"name of the commitment where capacity is being delivered to.\n"},"commitmentPlan":{"type":"string","description":"Indicates if a Commitment needs to be created as part of FR delivery. If this field is not present, then no commitment needs to be created.\nPossible values are: `INVALID`, `THIRTY_SIX_MONTH`, `TWELVE_MONTH`.\n"},"previousCommitmentTerms":{"type":"string","description":"Only applicable if FR is delivering to the same reservation. If set, all parent commitments will be extended to match the end date of the plan for this commitment.\nPossible values are: `EXTEND`.\n"}},"type":"object"},"gcp:compute/FutureReservationShareSettings:FutureReservationShareSettings":{"properties":{"projectMaps":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationShareSettingsProjectMap:FutureReservationShareSettingsProjectMap"},"description":"A map of project id and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS.\nStructure is documented below.\n"},"projects":{"type":"array","items":{"type":"string"},"description":"list of Project names to specify consumer projects for this shared-reservation. This is only valid when shareType's value is SPECIFIC_PROJECTS.\n"},"shareType":{"type":"string","description":"Type of sharing for this future reservation.\nPossible values are: `LOCAL`, `SPECIFIC_PROJECTS`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["shareType"]}}},"gcp:compute/FutureReservationShareSettingsProjectMap:FutureReservationShareSettingsProjectMap":{"properties":{"id":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"projectId":{"type":"string","description":"The project ID, should be same as the key of this project config in the parent map.\n"}},"type":"object","required":["id"]},"gcp:compute/FutureReservationSpecificSkuProperties:FutureReservationSpecificSkuProperties":{"properties":{"instanceProperties":{"$ref":"#/types/gcp:compute/FutureReservationSpecificSkuPropertiesInstanceProperties:FutureReservationSpecificSkuPropertiesInstanceProperties","description":"Properties of the SKU instances being reserved.\nStructure is documented below.\n"},"sourceInstanceTemplate":{"type":"string","description":"The instance template that will be used to populate the ReservedInstanceProperties of the future reservation\n"},"totalCount":{"type":"string","description":"Total number of instances for which capacity assurance is requested at a future time period.\n"}},"type":"object"},"gcp:compute/FutureReservationSpecificSkuPropertiesInstanceProperties:FutureReservationSpecificSkuPropertiesInstanceProperties":{"properties":{"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationSpecificSkuPropertiesInstancePropertiesGuestAccelerator:FutureReservationSpecificSkuPropertiesInstancePropertiesGuestAccelerator"},"description":"Specifies accelerator type and count.\nStructure is documented below.\n"},"localSsds":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationSpecificSkuPropertiesInstancePropertiesLocalSsd:FutureReservationSpecificSkuPropertiesInstancePropertiesLocalSsd"},"description":"Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.\nStructure is documented below.\n"},"locationHint":{"type":"string","description":"An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.\n"},"machineType":{"type":"string","description":"Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.\n"},"maintenanceFreezeDurationHours":{"type":"integer","description":"Specifies the number of hours after reservation creation where instances using the reservation won't be scheduled for maintenance.\n"},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\nPossible values are: `PERIODIC`.\n"},"minCpuPlatform":{"type":"string","description":"Minimum cpu platform the reservation.\n"}},"type":"object"},"gcp:compute/FutureReservationSpecificSkuPropertiesInstancePropertiesGuestAccelerator:FutureReservationSpecificSkuPropertiesInstancePropertiesGuestAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n"},"acceleratorType":{"type":"string","description":"Full or partial URL of the accelerator type resource to attach to this instance.\n"}},"type":"object"},"gcp:compute/FutureReservationSpecificSkuPropertiesInstancePropertiesLocalSsd:FutureReservationSpecificSkuPropertiesInstancePropertiesLocalSsd":{"properties":{"diskSizeGb":{"type":"string","description":"Specifies the size of the disk in base-2 GB.\n"},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.\nPossible values are: `SCSI`, `NVME`.\n"}},"type":"object"},"gcp:compute/FutureReservationStatus:FutureReservationStatus":{"properties":{"amendmentStatus":{"type":"string","description":"The current status of the requested amendment.\nPossible values are: .\n"},"autoCreatedReservations":{"type":"array","items":{"type":"string"},"description":"Fully qualified urls of the automatically created reservations at startTime.\n"},"fulfilledCount":{"type":"string","description":"This count indicates the fulfilled capacity so far. This is set during \"PROVISIONING\" state. This count also includes capacity delivered as part of existing matching reservations.\n"},"lastKnownGoodState":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodState:FutureReservationStatusLastKnownGoodState","description":"This field represents the future reservation before an amendment was requested. If the amendment is declined, the Future Reservation will be reverted to the last known good state. The last known good state is not set when updating a future reservation whose Procurement Status is DRAFTING.\nStructure is documented below.\n"},"lockTime":{"type":"string","description":"The lock time of the FutureReservation before an amendment was requested.\n"},"procurementStatus":{"type":"string","description":"The status of the last known good state for the Future Reservation\nPossible values are: .\n"},"specificSkuProperties":{"$ref":"#/types/gcp:compute/FutureReservationStatusSpecificSkuProperties:FutureReservationStatusSpecificSkuProperties","description":"Future Reservation configuration to indicate instance properties and total count.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodState:FutureReservationStatusLastKnownGoodState":{"properties":{"description":{"type":"string","description":"An optional description of this resource.\n"},"existingMatchingUsageInfo":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateExistingMatchingUsageInfo:FutureReservationStatusLastKnownGoodStateExistingMatchingUsageInfo","description":"Represents the matching usage for the future reservation before an amendment was requested.\nStructure is documented below.\n"},"futureReservationSpecs":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecs:FutureReservationStatusLastKnownGoodStateFutureReservationSpecs","description":"The previous instance-related properties of the Future Reservation.\nStructure is documented below.\n"},"lockTime":{"type":"string","description":"The lock time of the FutureReservation before an amendment was requested.\n"},"namePrefix":{"type":"string","description":"Name prefix for the reservations to be created at the time of delivery. The name prefix must comply with RFC1035. Maximum allowed length for name prefix is 20. Automatically created reservations name format will be -date-####.\n"},"procurementStatus":{"type":"string","description":"The status of the last known good state for the Future Reservation\nPossible values are: .\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateExistingMatchingUsageInfo:FutureReservationStatusLastKnownGoodStateExistingMatchingUsageInfo":{"properties":{"count":{"type":"string","description":"Count representing minimum(FR totalCount, matching_reserved_capacity+matching_unreserved_instances).\n"},"timeStamp":{"type":"string","description":"Timestamp when the matching usage was calculated.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecs:FutureReservationStatusLastKnownGoodStateFutureReservationSpecs":{"properties":{"shareSettings":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettings:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettings","description":"Settings for sharing the future reservation\nStructure is documented below.\n"},"specificSkuProperties":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuProperties:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuProperties","description":"Future Reservation configuration to indicate instance properties and total count.\nStructure is documented below.\n"},"timeWindow":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindow:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindow","description":"Time window for this Future Reservation.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettings:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettings":{"properties":{"projectMaps":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettingsProjectMap:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettingsProjectMap"},"description":"A map of project id and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS.\nStructure is documented below.\n"},"projects":{"type":"array","items":{"type":"string"},"description":"list of Project names to specify consumer projects for this shared-reservation. This is only valid when shareType's value is SPECIFIC_PROJECTS.\n"},"shareType":{"type":"string","description":"Type of sharing for this future reservation.\nPossible values are: `LOCAL`, `SPECIFIC_PROJECTS`.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettingsProjectMap:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsShareSettingsProjectMap":{"properties":{"project":{"type":"string","description":"The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n"},"projectId":{"type":"string","description":"The project ID, should be same as the key of this project config in the parent map.\n"}},"type":"object","required":["project"]},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuProperties:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuProperties":{"properties":{"instanceProperties":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstanceProperties:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstanceProperties","description":"Properties of the SKU instances being reserved.\nStructure is documented below.\n"},"sourceInstanceTemplate":{"type":"string","description":"The instance template that will be used to populate the ReservedInstanceProperties of the future reservation\n"},"totalCount":{"type":"string","description":"Total number of instances for which capacity assurance is requested at a future time period.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstanceProperties:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstanceProperties":{"properties":{"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesGuestAccelerator:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesGuestAccelerator"},"description":"Specifies accelerator type and count.\nStructure is documented below.\n"},"localSsds":{"type":"array","items":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesLocalSsd:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesLocalSsd"},"description":"Specifies amount of local ssd to reserve with each instance. The type of disk is local-ssd.\nStructure is documented below.\n"},"locationHint":{"type":"string","description":"An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.\n"},"machineType":{"type":"string","description":"Specifies type of machine (name only) which has fixed number of vCPUs and fixed amount of memory. This also includes specifying custom machine type following custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.\n"},"maintenanceFreezeDurationHours":{"type":"integer","description":"Specifies the number of hours after reservation creation where instances using the reservation won't be scheduled for maintenance.\n"},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\nPossible values are: `PERIODIC`.\n"},"minCpuPlatform":{"type":"string","description":"Minimum cpu platform the reservation.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesGuestAccelerator:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesGuestAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n"},"acceleratorType":{"type":"string","description":"Full or partial URL of the accelerator type resource to attach to this instance.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesLocalSsd:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsSpecificSkuPropertiesInstancePropertiesLocalSsd":{"properties":{"diskSizeGb":{"type":"string","description":"Specifies the size of the disk in base-2 GB.\n"},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk, which is either SCSI or NVME. The default is SCSI.\nPossible values are: `SCSI`, `NVME`.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindow:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindow":{"properties":{"duration":{"$ref":"#/types/gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindowDuration:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindowDuration","description":"Duration of the future reservation\nStructure is documented below.\n"},"endTime":{"type":"string","description":"End time of the future reservation in RFC3339 format.\n"},"startTime":{"type":"string","description":"Start time of the future reservation in RFC3339 format.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindowDuration:FutureReservationStatusLastKnownGoodStateFutureReservationSpecsTimeWindowDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object"},"gcp:compute/FutureReservationStatusSpecificSkuProperties:FutureReservationStatusSpecificSkuProperties":{"properties":{"sourceInstanceTemplateId":{"type":"string","description":"ID of the instance template used to populate the Future Reservation properties.\n"}},"type":"object"},"gcp:compute/FutureReservationTimeWindow:FutureReservationTimeWindow":{"properties":{"duration":{"$ref":"#/types/gcp:compute/FutureReservationTimeWindowDuration:FutureReservationTimeWindowDuration","description":"Duration of the future reservation\nStructure is documented below.\n"},"endTime":{"type":"string","description":"End time of the future reservation in RFC3339 format.\n"},"startTime":{"type":"string","description":"Start time of the future reservation in RFC3339 format.\n"}},"type":"object","required":["startTime"]},"gcp:compute/FutureReservationTimeWindowDuration:FutureReservationTimeWindowDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object"},"gcp:compute/GlobalForwardingRuleMetadataFilter:GlobalForwardingRuleMetadataFilter":{"properties":{"filterLabels":{"type":"array","items":{"$ref":"#/types/gcp:compute/GlobalForwardingRuleMetadataFilterFilterLabel:GlobalForwardingRuleMetadataFilterFilterLabel"},"description":"The list of label value pairs that must match labels in the\nprovided metadata based on filterMatchCriteria\nThis list must not be empty and can have at the most 64 entries.\nStructure is documented below.\n","willReplaceOnChanges":true},"filterMatchCriteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of\nfilterLabels contribute towards the overall metadataFilter match.\nMATCH_ANY - At least one of the filterLabels must have a matching\nlabel in the provided metadata.\nMATCH_ALL - All filterLabels must have matching labels in the\nprovided metadata.\nPossible values are: `MATCH_ANY`, `MATCH_ALL`.\n","willReplaceOnChanges":true}},"type":"object","required":["filterLabels","filterMatchCriteria"]},"gcp:compute/GlobalForwardingRuleMetadataFilterFilterLabel:GlobalForwardingRuleMetadataFilterFilterLabel":{"properties":{"name":{"type":"string","description":"Name of the metadata label. The length must be between\n1 and 1024 characters, inclusive.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The value that the label must match. The value has a maximum\nlength of 1024 characters.\n","willReplaceOnChanges":true}},"type":"object","required":["name","value"]},"gcp:compute/GlobalForwardingRuleServiceDirectoryRegistrations:GlobalForwardingRuleServiceDirectoryRegistrations":{"properties":{"namespace":{"type":"string","description":"Service Directory namespace to register the forwarding rule under.\n","willReplaceOnChanges":true},"serviceDirectoryRegion":{"type":"string","description":"[Optional] Service Directory region to register this global forwarding rule under.\nDefault to \"us-central1\". Only used for PSC for Google APIs. All PSC for\nGoogle APIs Forwarding Rules on the same network should use the same Service\nDirectory region.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["namespace"]}}},"gcp:compute/HaVpnGatewayParams:HaVpnGatewayParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the HaVpnGateway. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/HaVpnGatewayVpnInterface:HaVpnGatewayVpnInterface":{"properties":{"id":{"type":"integer","description":"The numeric ID of this VPN gateway interface.\n","willReplaceOnChanges":true},"interconnectAttachment":{"type":"string","description":"URL of the interconnect attachment resource. When the value\nof this field is present, the VPN Gateway will be used for\nIPsec-encrypted Cloud Interconnect; all Egress or Ingress\ntraffic for this VPN Gateway interface will go through the\nspecified interconnect attachment resource.\nNot currently available publicly.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"(Output)\nThe external IP address for this VPN gateway interface.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipAddress"]}}},"gcp:compute/HealthCheckGrpcHealthCheck:HealthCheckGrpcHealthCheck":{"properties":{"grpcServiceName":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n- Empty serviceName means the overall status of all services at the backend.\n- Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.\n"},"port":{"type":"integer","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if\u003cspan pulumi-lang-nodejs=\" portSpecification \" pulumi-lang-dotnet=\" PortSpecification \" pulumi-lang-go=\" portSpecification \" pulumi-lang-python=\" port_specification \" pulumi-lang-yaml=\" portSpecification \" pulumi-lang-java=\" portSpecification \"\u003e port_specification \u003c/span\u003eis USE_FIXED_PORT. Valid values are 1 through 65535.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, gRPC health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"}},"type":"object"},"gcp:compute/HealthCheckGrpcTlsHealthCheck:HealthCheckGrpcTlsHealthCheck":{"properties":{"grpcServiceName":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n- Empty serviceName means the overall status of all services at the backend.\n- Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.\n"},"port":{"type":"integer","description":"The port number for the health check request.\nMust be specified if\u003cspan pulumi-lang-nodejs=\" portSpecification \" pulumi-lang-dotnet=\" PortSpecification \" pulumi-lang-go=\" portSpecification \" pulumi-lang-python=\" port_specification \" pulumi-lang-yaml=\" portSpecification \" pulumi-lang-java=\" portSpecification \"\u003e port_specification \u003c/span\u003eis USE_FIXED_PORT. Valid values are 1 through 65535.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: Not supported for GRPC with TLS health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, gRPC with TLS health check follows behavior specified in the \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e field.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"}},"type":"object"},"gcp:compute/HealthCheckHttp2HealthCheck:HealthCheckHttp2HealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"requestPath":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/HealthCheckHttpHealthCheck:HealthCheckHttpHealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, HTTP health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"requestPath":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/HealthCheckHttpsHealthCheck:HealthCheckHttpsHealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, HTTPS health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"requestPath":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/HealthCheckLogConfig:HealthCheckLogConfig":{"properties":{"enable":{"type":"boolean","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.\n"}},"type":"object"},"gcp:compute/HealthCheckSslHealthCheck:HealthCheckSslHealthCheck":{"properties":{"port":{"type":"integer","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, HTTP2 health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/HealthCheckTcpHealthCheck:HealthCheckTcpHealthCheck":{"properties":{"port":{"type":"integer","description":"The TCP port number for the TCP health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, TCP health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/ImageGuestOsFeature:ImageGuestOsFeature":{"properties":{"type":{"type":"string","description":"The type of supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options.\nPossible values are: `MULTI_IP_SUBNET`, `SECURE_BOOT`, `SEV_CAPABLE`, `UEFI_COMPATIBLE`, `VIRTIO_SCSI_MULTIQUEUE`, `WINDOWS`, `GVNIC`, `IDPF`, `SEV_LIVE_MIGRATABLE`, `SEV_SNP_CAPABLE`, `SUSPEND_RESUME_COMPATIBLE`, `TDX_CAPABLE`, `SEV_LIVE_MIGRATABLE_V2`.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/ImageIamBindingCondition:ImageIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** This provider considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/ImageIamMemberCondition:ImageIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** This provider considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/ImageImageEncryptionKey:ImageImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud\nKMS.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the\ngiven KMS key. If absent, the Compute Engine default service\naccount is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/ImageRawDisk:ImageRawDisk":{"properties":{"containerType":{"type":"string","description":"The format used to encode and transmit the block device, which\nshould be TAR. This is just a container and transmission format\nand not a runtime format. Provided by the client when the disk\nimage is created.\nDefault value is `TAR`.\nPossible values are: `TAR`.\n","willReplaceOnChanges":true},"sha1":{"type":"string","description":"An optional SHA1 checksum of the disk image before unpackaging.\nThis is provided by the client when the disk image is created.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"The full Google Cloud Storage URL where disk storage is stored\nYou must provide either this property or the sourceDisk property\nbut not both.\n","willReplaceOnChanges":true}},"type":"object","required":["source"]},"gcp:compute/ImageShieldedInstanceInitialState:ImageShieldedInstanceInitialState":{"properties":{"dbs":{"type":"array","items":{"$ref":"#/types/gcp:compute/ImageShieldedInstanceInitialStateDb:ImageShieldedInstanceInitialStateDb"},"description":"The Key Database (db).\nStructure is documented below.\n","willReplaceOnChanges":true},"dbxs":{"type":"array","items":{"$ref":"#/types/gcp:compute/ImageShieldedInstanceInitialStateDbx:ImageShieldedInstanceInitialStateDbx"},"description":"The forbidden key database (dbx).\nStructure is documented below.\n","willReplaceOnChanges":true},"keks":{"type":"array","items":{"$ref":"#/types/gcp:compute/ImageShieldedInstanceInitialStateKek:ImageShieldedInstanceInitialStateKek"},"description":"The Key Exchange Key (KEK).\nStructure is documented below.\n","willReplaceOnChanges":true},"pk":{"$ref":"#/types/gcp:compute/ImageShieldedInstanceInitialStatePk:ImageShieldedInstanceInitialStatePk","description":"The Platform Key (PK).\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/ImageShieldedInstanceInitialStateDb:ImageShieldedInstanceInitialStateDb":{"properties":{"content":{"type":"string","description":"The raw content in the secure keys file.\nA base64-encoded string.\n","willReplaceOnChanges":true},"fileType":{"type":"string","description":"The file type of source file.\n","willReplaceOnChanges":true}},"type":"object","required":["content"]},"gcp:compute/ImageShieldedInstanceInitialStateDbx:ImageShieldedInstanceInitialStateDbx":{"properties":{"content":{"type":"string","description":"The raw content in the secure keys file.\nA base64-encoded string.\n","willReplaceOnChanges":true},"fileType":{"type":"string","description":"The file type of source file.\n","willReplaceOnChanges":true}},"type":"object","required":["content"]},"gcp:compute/ImageShieldedInstanceInitialStateKek:ImageShieldedInstanceInitialStateKek":{"properties":{"content":{"type":"string","description":"The raw content in the secure keys file.\nA base64-encoded string.\n","willReplaceOnChanges":true},"fileType":{"type":"string","description":"The file type of source file.\n","willReplaceOnChanges":true}},"type":"object","required":["content"]},"gcp:compute/ImageShieldedInstanceInitialStatePk:ImageShieldedInstanceInitialStatePk":{"properties":{"content":{"type":"string","description":"The raw content in the secure keys file.\nA base64-encoded string.\n","willReplaceOnChanges":true},"fileType":{"type":"string","description":"The file type of source file.\n","willReplaceOnChanges":true}},"type":"object","required":["content"]},"gcp:compute/ImageSourceDiskEncryptionKey:ImageSourceDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to decrypt this resource. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n(`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have\n`roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the\ngiven KMS key. If absent, the Compute Engine default service\naccount is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/ImageSourceImageEncryptionKey:ImageSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to decrypt this resource. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n(`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have\n`roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the\ngiven KMS key. If absent, the Compute Engine default service\naccount is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/ImageSourceSnapshotEncryptionKey:ImageSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to decrypt this resource. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n(`service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com`) must have\n`roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the\ngiven KMS key. If absent, the Compute Engine default service\naccount is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceAdvancedMachineFeatures:InstanceAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Defines whether the instance should have nested virtualization  enabled. Defaults to false.\n"},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking for instance creation.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"[The PMU](https://cloud.google.com/compute/docs/pmu-overview) is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are `STANDARD`, `ENHANCED`, and `ARCHITECTURAL`.\n"},"threadsPerCore":{"type":"integer","description":"The 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"},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Supported modes are currently either `ALL_CORE_MAX` or unset (default).\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 \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRsa`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRsa`\" pulumi-lang-go=\"`diskEncryptionKeyRsa`\" pulumi-lang-python=\"`disk_encryption_key_rsa`\" pulumi-lang-yaml=\"`diskEncryptionKeyRsa`\" pulumi-lang-java=\"`diskEncryptionKeyRsa`\"\u003e`disk_encryption_key_rsa`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRaw`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRaw`\" pulumi-lang-go=\"`diskEncryptionKeyRaw`\" pulumi-lang-python=\"`disk_encryption_key_raw`\" pulumi-lang-yaml=\"`diskEncryptionKeyRaw`\" pulumi-lang-java=\"`diskEncryptionKeyRaw`\"\u003e`disk_encryption_key_raw`\u003c/span\u003e\nmay be set.\n","secret":true},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to encrypt this disk. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRsa`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRsa`\" pulumi-lang-go=\"`diskEncryptionKeyRsa`\" pulumi-lang-python=\"`disk_encryption_key_rsa`\" pulumi-lang-yaml=\"`diskEncryptionKeyRsa`\" pulumi-lang-java=\"`diskEncryptionKeyRsa`\"\u003e`disk_encryption_key_rsa`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRaw`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRaw`\" pulumi-lang-go=\"`diskEncryptionKeyRaw`\" pulumi-lang-python=\"`disk_encryption_key_raw`\" pulumi-lang-yaml=\"`diskEncryptionKeyRaw`\" pulumi-lang-java=\"`diskEncryptionKeyRaw`\"\u003e`disk_encryption_key_raw`\u003c/span\u003e\nmay be set.\n","secret":true},"diskEncryptionKeySha256":{"type":"string","description":"The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n","willReplaceOnChanges":true},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is\nstored in Google Cloud KMS to encrypt this disk. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRsa`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRsa`\" pulumi-lang-go=\"`diskEncryptionKeyRsa`\" pulumi-lang-python=\"`disk_encryption_key_rsa`\" pulumi-lang-yaml=\"`diskEncryptionKeyRsa`\" pulumi-lang-java=\"`diskEncryptionKeyRsa`\"\u003e`disk_encryption_key_rsa`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRaw`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRaw`\" pulumi-lang-go=\"`diskEncryptionKeyRaw`\" pulumi-lang-python=\"`disk_encryption_key_raw`\" pulumi-lang-yaml=\"`diskEncryptionKeyRaw`\" pulumi-lang-java=\"`diskEncryptionKeyRaw`\"\u003e`disk_encryption_key_raw`\u003c/span\u003e\nmay 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\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof 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"},"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 \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRsa`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRsa`\" pulumi-lang-go=\"`diskEncryptionKeyRsa`\" pulumi-lang-python=\"`disk_encryption_key_rsa`\" pulumi-lang-yaml=\"`diskEncryptionKeyRsa`\" pulumi-lang-java=\"`diskEncryptionKeyRsa`\"\u003e`disk_encryption_key_rsa`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRaw`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRaw`\" pulumi-lang-go=\"`diskEncryptionKeyRaw`\" pulumi-lang-python=\"`disk_encryption_key_raw`\" pulumi-lang-yaml=\"`diskEncryptionKeyRaw`\" pulumi-lang-java=\"`diskEncryptionKeyRaw`\"\u003e`disk_encryption_key_raw`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to encrypt this disk. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRsa`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRsa`\" pulumi-lang-go=\"`diskEncryptionKeyRsa`\" pulumi-lang-python=\"`disk_encryption_key_rsa`\" pulumi-lang-yaml=\"`diskEncryptionKeyRsa`\" pulumi-lang-java=\"`diskEncryptionKeyRsa`\"\u003e`disk_encryption_key_rsa`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRaw`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRaw`\" pulumi-lang-go=\"`diskEncryptionKeyRaw`\" pulumi-lang-python=\"`disk_encryption_key_raw`\" pulumi-lang-yaml=\"`diskEncryptionKeyRaw`\" pulumi-lang-java=\"`diskEncryptionKeyRaw`\"\u003e`disk_encryption_key_raw`\u003c/span\u003e\n","secret":true,"willReplaceOnChanges":true},"diskEncryptionKeySha256":{"type":"string","description":"The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"forceAttach":{"type":"boolean","description":"boolean field that determines whether to force attach the regional\ndisk even if it's currently attached to another instance. If you try to force attach a zonal\ndisk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options.\n","willReplaceOnChanges":true},"initializeParams":{"$ref":"#/types/gcp:compute/InstanceBootDiskInitializeParams:InstanceBootDiskInitializeParams","description":"Parameters for a new disk that will be created\nalongside the new instance. Either \u003cspan pulumi-lang-nodejs=\"`initializeParams`\" pulumi-lang-dotnet=\"`InitializeParams`\" pulumi-lang-go=\"`initializeParams`\" pulumi-lang-python=\"`initialize_params`\" pulumi-lang-yaml=\"`initializeParams`\" pulumi-lang-java=\"`initializeParams`\"\u003e`initialize_params`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e must be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with\u003cspan pulumi-lang-nodejs=\" attachedDisk \" pulumi-lang-dotnet=\" AttachedDisk \" pulumi-lang-go=\" attachedDisk \" pulumi-lang-python=\" attached_disk \" pulumi-lang-yaml=\" attachedDisk \" pulumi-lang-java=\" attachedDisk \"\u003e attached_disk \u003c/span\u003eand only used for specific cases, please don't specify this field without advice from Google.)\n"},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is\nstored in Google Cloud KMS to encrypt this disk. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e,\n\u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRsa`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRsa`\" pulumi-lang-go=\"`diskEncryptionKeyRsa`\" pulumi-lang-python=\"`disk_encryption_key_rsa`\" pulumi-lang-yaml=\"`diskEncryptionKeyRsa`\" pulumi-lang-java=\"`diskEncryptionKeyRsa`\"\u003e`disk_encryption_key_rsa`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskEncryptionKeyRaw`\" pulumi-lang-dotnet=\"`DiskEncryptionKeyRaw`\" pulumi-lang-go=\"`diskEncryptionKeyRaw`\" pulumi-lang-python=\"`disk_encryption_key_raw`\" pulumi-lang-yaml=\"`diskEncryptionKeyRaw`\" pulumi-lang-java=\"`diskEncryptionKeyRaw`\"\u003e`disk_encryption_key_raw`\u003c/span\u003e\nmay 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\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the existing disk (such as those managed by\n\u003cspan pulumi-lang-nodejs=\"`gcp.compute.Disk`\" pulumi-lang-dotnet=\"`gcp.compute.Disk`\" pulumi-lang-go=\"`compute.Disk`\" pulumi-lang-python=\"`compute.Disk`\" pulumi-lang-yaml=\"`gcp.compute.Disk`\" pulumi-lang-java=\"`gcp.compute.Disk`\"\u003e`gcp.compute.Disk`\u003c/span\u003e) or disk image. To create an instance from a snapshot, first create a\n\u003cspan pulumi-lang-nodejs=\"`gcp.compute.Disk`\" pulumi-lang-dotnet=\"`gcp.compute.Disk`\" pulumi-lang-go=\"`compute.Disk`\" pulumi-lang-python=\"`compute.Disk`\" pulumi-lang-yaml=\"`gcp.compute.Disk`\" pulumi-lang-java=\"`gcp.compute.Disk`\"\u003e`gcp.compute.Disk`\u003c/span\u003e from a snapshot and reference it here.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["deviceName","diskEncryptionKeySha256","guestOsFeatures","initializeParams","kmsKeySelfLink","source"]}}},"gcp:compute/InstanceBootDiskInitializeParams:InstanceBootDiskInitializeParams":{"properties":{"architecture":{"type":"string","description":"The architecture of the attached disk. Valid values are `ARM64` or \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e.\n","willReplaceOnChanges":true},"enableConfidentialCompute":{"type":"boolean","description":"Whether this disk is using confidential compute mode.\nNote: Only supported on hyperdisk skus,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKey \" pulumi-lang-dotnet=\" DiskEncryptionKey \" pulumi-lang-go=\" diskEncryptionKey \" pulumi-lang-python=\" disk_encryption_key \" pulumi-lang-yaml=\" diskEncryptionKey \" pulumi-lang-java=\" diskEncryptionKey \"\u003e disk_encryption_key \u003c/span\u003eis required when setting to true.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The image from which to initialize this disk. This can be\none of: the image's \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e, `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\u003cspan pulumi-lang-nodejs=\"[gcp.compute.Image \" pulumi-lang-dotnet=\"[gcp.compute.Image \" pulumi-lang-go=\"[compute.Image \" pulumi-lang-python=\"[compute.Image \" pulumi-lang-yaml=\"[gcp.compute.Image \" pulumi-lang-java=\"[gcp.compute.Image \"\u003e[gcp.compute.Image \u003c/span\u003edata source](https://www.terraform.io/docs/providers/google/d/compute_image.html).\nFor instance, the image `centos-6-v20180104` includes its family name `centos-6`.\nThese images can be referred by family name here.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key/value label pairs assigned to the disk. This\nfield is only applicable for persistent disks.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk.\nThis sets the number of I/O operations per second that the disk can handle.\nFor more details,see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\nNote: Updating currently is only supported for hyperdisk skus via disk update\napi/gcloud without the need to delete and recreate the disk, hyperdisk allows\nfor an update of IOPS every 4 hours. To update your hyperdisk more frequently,\nyou'll need to manually delete and recreate it.\n","willReplaceOnChanges":true},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk.\nThis sets the number of throughput mb per second that the disk can handle.\nFor more details,see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\nNote: Updating currently is only supported for hyperdisk skus via disk update\napi/gcloud without the need to delete and recreate the disk, hyperdisk allows\nfor an update of throughput every 4 hours. To update your hyperdisk more\nfrequently, you'll need to manually delete and recreate it.\n","willReplaceOnChanges":true},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A tag is a key-value pair that can be attached to a Google Cloud resource. You can use tags to conditionally allow or deny policies based on whether a resource has a specific tag. This value is not returned by the API. In Terraform, this value cannot be updated and changing it will recreate the resource.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"string","description":"A list of\u003cspan pulumi-lang-nodejs=\" selfLinks \" pulumi-lang-dotnet=\" SelfLinks \" pulumi-lang-go=\" selfLinks \" pulumi-lang-python=\" self_links \" pulumi-lang-yaml=\" selfLinks \" pulumi-lang-java=\" selfLinks \"\u003e self_links \u003c/span\u003eof resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate, so any external values are not set until the user specifies this field. Currently a max of 1 resource policy is supported.\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},"snapshot":{"type":"string","description":"The snapshot from which to initialize this disk. To create a disk with a snapshot that you created, specify the snapshot name in the following format: `global/snapshots/my-backup`\n","willReplaceOnChanges":true},"sourceImageEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceBootDiskInitializeParamsSourceImageEncryptionKey:InstanceBootDiskInitializeParamsSourceImageEncryptionKey","description":"Encryption key used to decrypt the given image. Structure is documented below.\n"},"sourceSnapshotEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey:InstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey","description":"Encryption key used to decrypt the given snapshot. Structure is documented below.\n"},"storagePool":{"type":"string","description":"The URL or the name of the storage pool in which the new disk is created.\nFor example:\n* https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}\n* /projects/{project}/zones/{zone}/storagePools/{storagePool}\n* /zones/{zone}/storagePools/{storagePool}\n* /{storagePool}\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["architecture","image","labels","provisionedIops","provisionedThroughput","resourcePolicies","size","snapshot","type"]}}},"gcp:compute/InstanceBootDiskInitializeParamsSourceImageEncryptionKey:InstanceBootDiskInitializeParamsSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","sha256"]}}},"gcp:compute/InstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey:InstanceBootDiskInitializeParamsSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is\nstored in Google Cloud KMS to decrypt the given image. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"rawKey":{"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 decrypt the given snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to decrypt the given snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","sha256"]}}},"gcp:compute/InstanceConfidentialInstanceConfig:InstanceConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the confidential computing technology the instance uses. SEV is an AMD feature. TDX is an Intel feature. One of the following values is required: `SEV`, `SEV_SNP`, `TDX`. \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e can be set to MIGRATE if \u003cspan pulumi-lang-nodejs=\"`confidentialInstanceType`\" pulumi-lang-dotnet=\"`ConfidentialInstanceType`\" pulumi-lang-go=\"`confidentialInstanceType`\" pulumi-lang-python=\"`confidential_instance_type`\" pulumi-lang-yaml=\"`confidentialInstanceType`\" pulumi-lang-java=\"`confidentialInstanceType`\"\u003e`confidential_instance_type`\u003c/span\u003e is set to `SEV` and \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e is set to `\"AMD Milan\"`. Otherwise, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM. If `SEV_SNP`, currently \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e has to be set to `\"AMD Milan\"` or this will fail to create the VM.\n"},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e can be set to MIGRATE if \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e is set to `\"AMD Milan\"`. Otherwise, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM.\n"}},"type":"object"},"gcp:compute/InstanceFromMachineImageAdvancedMachineFeatures:InstanceFromMachineImageAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether to enable nested virtualization or not.\n"},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking for the instance.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are \"STANDARD\", \"ENHANCED\", and \"ARCHITECTURAL\".\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Currently supported modes is \"ALL_CORE_MAX\".\n"},"visibleCoreCount":{"type":"integer","description":"The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance\\'s nominal CPU count and the underlying platform\\'s SMT width.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableNestedVirtualization","enableUefiNetworking","performanceMonitoringUnit","threadsPerCore","turboMode","visibleCoreCount"]}}},"gcp:compute/InstanceFromMachineImageAttachedDisk:InstanceFromMachineImageAttachedDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/\n"},"diskEncryptionKeyRaw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n","secret":true},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n","secret":true},"diskEncryptionKeySha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used\n"},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n","willReplaceOnChanges":true},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n"},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".\n"},"source":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the disk attached to this instance.\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredOutputs":["deviceName","diskEncryptionKeyRaw","diskEncryptionKeyRsa","diskEncryptionKeySha256","diskEncryptionServiceAccount","forceAttach","kmsKeySelfLink","mode","source"]}}},"gcp:compute/InstanceFromMachineImageBootDisk:InstanceFromMachineImageBootDisk":{"properties":{"autoDelete":{"type":"boolean","description":"Whether the disk will be auto-deleted when the instance is deleted.\n"},"deviceName":{"type":"string","description":"Name with which attached disk will be accessible under /dev/disk/by-id/\n","willReplaceOnChanges":true},"diskEncryptionKeyRaw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"diskEncryptionKeySha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used\n","willReplaceOnChanges":true},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images.\n","willReplaceOnChanges":true},"initializeParams":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageBootDiskInitializeParams:InstanceFromMachineImageBootDiskInitializeParams","description":"Parameters with which a disk was created alongside the instance.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with\u003cspan pulumi-lang-nodejs=\" attachedDisk \" pulumi-lang-dotnet=\" AttachedDisk \" pulumi-lang-go=\" attachedDisk \" pulumi-lang-python=\" attached_disk \" pulumi-lang-yaml=\" attachedDisk \" pulumi-lang-java=\" attachedDisk \"\u003e attached_disk \u003c/span\u003eand only used for specific cases, please don't specify this field without advice from Google.)\n"},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".\n","willReplaceOnChanges":true},"source":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the disk attached to this instance.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoDelete","deviceName","diskEncryptionKeyRaw","diskEncryptionKeyRsa","diskEncryptionKeySha256","diskEncryptionServiceAccount","forceAttach","guestOsFeatures","initializeParams","interface","kmsKeySelfLink","mode","source"]}}},"gcp:compute/InstanceFromMachineImageBootDiskInitializeParams:InstanceFromMachineImageBootDiskInitializeParams":{"properties":{"architecture":{"type":"string","description":"The architecture of the disk. One of \"X86_64\" or \"ARM64\".\n","willReplaceOnChanges":true},"enableConfidentialCompute":{"type":"boolean","description":"A flag to enable confidential compute mode on boot disk\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The image from which this disk was initialised.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key/value label pairs assigned to the disk.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.\n","willReplaceOnChanges":true},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.\n","willReplaceOnChanges":true},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"string","description":"A list of\u003cspan pulumi-lang-nodejs=\" selfLinks \" pulumi-lang-dotnet=\" SelfLinks \" pulumi-lang-go=\" selfLinks \" pulumi-lang-python=\" self_links \" pulumi-lang-yaml=\" selfLinks \" pulumi-lang-java=\" selfLinks \"\u003e self_links \u003c/span\u003eof resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the image in gigabytes.\n","willReplaceOnChanges":true},"snapshot":{"type":"string","description":"The snapshot from which this disk was initialised.\n","willReplaceOnChanges":true},"sourceImageEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageBootDiskInitializeParamsSourceImageEncryptionKey:InstanceFromMachineImageBootDiskInitializeParamsSourceImageEncryptionKey","description":"The encryption key used to decrypt the source image.\n"},"sourceSnapshotEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageBootDiskInitializeParamsSourceSnapshotEncryptionKey:InstanceFromMachineImageBootDiskInitializeParamsSourceSnapshotEncryptionKey","description":"The encryption key used to decrypt the source snapshot.\n"},"storagePool":{"type":"string","description":"The URL of the storage pool in which the new disk is created\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["architecture","enableConfidentialCompute","image","labels","provisionedIops","provisionedThroughput","resourceManagerTags","resourcePolicies","size","snapshot","sourceImageEncryptionKey","sourceSnapshotEncryptionKey","storagePool","type"]}}},"gcp:compute/InstanceFromMachineImageBootDiskInitializeParamsSourceImageEncryptionKey:InstanceFromMachineImageBootDiskInitializeParamsSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the encryption key used to encrypt this disk.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"]}}},"gcp:compute/InstanceFromMachineImageBootDiskInitializeParamsSourceSnapshotEncryptionKey:InstanceFromMachineImageBootDiskInitializeParamsSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the encryption key used to encrypt this disk.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"]}}},"gcp:compute/InstanceFromMachineImageConfidentialInstanceConfig:InstanceFromMachineImageConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"The confidential computing technology the instance uses.\n\t\t\t\t\t\t\t\tSEV is an AMD feature. TDX is an Intel feature. One of the following\n\t\t\t\t\t\t\t\tvalues is required: SEV, SEV_SNP, TDX. If SEV_SNP,\u003cspan pulumi-lang-nodejs=\" minCpuPlatform \" pulumi-lang-dotnet=\" MinCpuPlatform \" pulumi-lang-go=\" minCpuPlatform \" pulumi-lang-python=\" min_cpu_platform \" pulumi-lang-yaml=\" minCpuPlatform \" pulumi-lang-java=\" minCpuPlatform \"\u003e min_cpu_platform \u003c/span\u003e=\n\t\t\t\t\t\t\t\t\"AMD Milan\" is currently required.\n"},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled. Field will be deprecated in a future release\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["confidentialInstanceType","enableConfidentialCompute"]}}},"gcp:compute/InstanceFromMachineImageGuestAccelerator:InstanceFromMachineImageGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource exposed to this instance. E.g. nvidia-tesla-k80.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"]},"gcp:compute/InstanceFromMachineImageInstanceEncryptionKey:InstanceFromMachineImageInstanceEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the customer's encryption key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","kmsKeyServiceAccount","sha256"]}}},"gcp:compute/InstanceFromMachineImageNetworkInterface:InstanceFromMachineImageNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageNetworkInterfaceAccessConfig:InstanceFromMachineImageNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet.\n"},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageNetworkInterfaceAliasIpRange:InstanceFromMachineImageNetworkInterfaceAliasIpRange"},"description":"An array of alias IP ranges for this network interface.\n"},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n"},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageNetworkInterfaceIpv6AccessConfig:InstanceFromMachineImageNetworkInterfaceIpv6AccessConfig"},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n"},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n"},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"},"macAddress":{"type":"string","description":"MAC address assigned to this network interface.\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\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network attached to this interface.\n"},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.\n","willReplaceOnChanges":true},"networkIp":{"type":"string","description":"The private IP address assigned to the instance.\n"},"nicType":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET, IDPF, MRDMA, and IRDMA\n","willReplaceOnChanges":true},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"queueCount":{"type":"integer","description":"The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.\n","willReplaceOnChanges":true},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"},"stackType":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.\n"},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the subnetwork attached to this interface.\n"},"subnetworkProject":{"type":"string","description":"The project in which the subnetwork belongs.\n"},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["accessConfigs","aliasIpRanges","igmpQuery","internalIpv6PrefixLength","ipv6AccessConfigs","ipv6AccessType","ipv6Address","macAddress","name","network","networkAttachment","networkIp","nicType","parentNicName","queueCount","securityPolicy","stackType","subnetwork","subnetworkProject","vlan"]}}},"gcp:compute/InstanceFromMachineImageNetworkInterfaceAccessConfig:InstanceFromMachineImageNetworkInterfaceAccessConfig":{"properties":{"natIp":{"type":"string","description":"The IP address that is be 1:1 mapped to the instance's network ip.\n"},"networkTier":{"type":"string","description":"The networking tier used for configuring this instance. One of PREMIUM or STANDARD.\n"},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["natIp","networkTier","publicPtrDomainName","securityPolicy"]}}},"gcp:compute/InstanceFromMachineImageNetworkInterfaceAliasIpRange:InstanceFromMachineImageNetworkInterfaceAliasIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"The IP CIDR range represented by this alias IP range.\n"},"subnetworkRangeName":{"type":"string","description":"The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range.\n"}},"type":"object","required":["ipCidrRange"],"language":{"nodejs":{"requiredOutputs":["ipCidrRange","subnetworkRangeName"]}}},"gcp:compute/InstanceFromMachineImageNetworkInterfaceIpv6AccessConfig:InstanceFromMachineImageNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6\n"},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","required":["networkTier"],"language":{"nodejs":{"requiredOutputs":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName","securityPolicy"]}}},"gcp:compute/InstanceFromMachineImageNetworkPerformanceConfig:InstanceFromMachineImageNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier to enable. Possible values:TIER_1, DEFAULT\n","willReplaceOnChanges":true}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:compute/InstanceFromMachineImageParams:InstanceFromMachineImageParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["resourceManagerTags"]}}},"gcp:compute/InstanceFromMachineImageReservationAffinity:InstanceFromMachineImageReservationAffinity":{"properties":{"specificReservation":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageReservationAffinitySpecificReservation:InstanceFromMachineImageReservationAffinitySpecificReservation","description":"Specifies the label selector for the reservation to use.\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"],"language":{"nodejs":{"requiredOutputs":["specificReservation","type"]}}},"gcp:compute/InstanceFromMachineImageReservationAffinitySpecificReservation:InstanceFromMachineImageReservationAffinitySpecificReservation":{"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/InstanceFromMachineImageScheduling:InstanceFromMachineImageScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).\n"},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain, which this instance should be scheduled on.\n"},"gracefulShutdown":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageSchedulingGracefulShutdown:InstanceFromMachineImageSchedulingGracefulShutdown","description":"Settings for the instance to perform a graceful shutdown.\n"},"hostErrorTimeoutSeconds":{"type":"integer","description":"Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.\n"},"instanceTerminationAction":{"type":"string","description":"Specifies the action GCE should take when SPOT VM is preempted.\n"},"localSsdRecoveryTimeout":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout:InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout","description":"Specifies the maximum amount of time a Local Ssd Vm should wait while\n  recovery of the Local Ssd state is attempted. Its value should be in\n  between 0 and 168 hours with hour granularity and the default value being 1\n  hour.\n","willReplaceOnChanges":true},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\n"},"maxRunDuration":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageSchedulingMaxRunDuration:InstanceFromMachineImageSchedulingMaxRunDuration","description":"The timeout for new network connections to hosts.\n","willReplaceOnChanges":true},"minNodeCpus":{"type":"integer"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageSchedulingNodeAffinity:InstanceFromMachineImageSchedulingNodeAffinity"},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.\n"},"onHostMaintenance":{"type":"string","description":"Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,\n"},"onInstanceStopAction":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageSchedulingOnInstanceStopAction:InstanceFromMachineImageSchedulingOnInstanceStopAction","description":"Defines the behaviour for instances with the instance_termination_action.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Whether the instance is preemptible.\n","willReplaceOnChanges":true},"provisioningModel":{"type":"string","description":"Whether the instance is spot. If this is set as SPOT.\n","willReplaceOnChanges":true},"skipGuestOsShutdown":{"type":"boolean","description":"Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated,\nin RFC3339 text format. If specified, the instance termination action\nwill be performed at the termination time.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["automaticRestart","availabilityDomain","gracefulShutdown","hostErrorTimeoutSeconds","instanceTerminationAction","localSsdRecoveryTimeout","maintenanceInterval","maxRunDuration","minNodeCpus","nodeAffinities","onHostMaintenance","onInstanceStopAction","preemptible","provisioningModel","skipGuestOsShutdown","terminationTime"]}}},"gcp:compute/InstanceFromMachineImageSchedulingGracefulShutdown:InstanceFromMachineImageSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n"},"maxDuration":{"$ref":"#/types/gcp:compute/InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration:InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration","description":"The time allotted for the instance to gracefully shut down.\n\t\t\t\t\t\t\t\t\t\tIf the graceful shutdown isn't complete after this time, then the instance\n\t\t\t\t\t\t\t\t\t\ttransitions to the STOPPING state.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","maxDuration"]}}},"gcp:compute/InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration:InstanceFromMachineImageSchedulingGracefulShutdownMaxDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolution. Durations less than one second are represented\n\t\t\t\t\t\t\t\t\t\t\t\t\twith a 0 seconds field and a positive nanos field. Must\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\n\t\t\t\t\t\t\t\t\t\t\t\t\tThe value must be between 1 and 3600, which is 3,600 seconds (one hour).\n"}},"type":"object","required":["seconds"],"language":{"nodejs":{"requiredOutputs":["nanos","seconds"]}}},"gcp:compute/InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout:InstanceFromMachineImageSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"],"language":{"nodejs":{"requiredOutputs":["nanos","seconds"]}}},"gcp:compute/InstanceFromMachineImageSchedulingMaxRunDuration:InstanceFromMachineImageSchedulingMaxRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"],"language":{"nodejs":{"requiredOutputs":["nanos","seconds"]}}},"gcp:compute/InstanceFromMachineImageSchedulingNodeAffinity:InstanceFromMachineImageSchedulingNodeAffinity":{"properties":{"key":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["key","operator","values"]},"gcp:compute/InstanceFromMachineImageSchedulingOnInstanceStopAction:InstanceFromMachineImageSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"If true, the contents of any attached Local SSD disks will be discarded.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["discardLocalSsd"]}}},"gcp:compute/InstanceFromMachineImageScratchDisk:InstanceFromMachineImageScratchDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/\n"},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME.\n"},"size":{"type":"integer","description":"The size of the disk in gigabytes. One of 375 or 3000.\n","willReplaceOnChanges":true}},"type":"object","required":["interface"],"language":{"nodejs":{"requiredOutputs":["deviceName","interface","size"]}}},"gcp:compute/InstanceFromMachineImageServiceAccount:InstanceFromMachineImageServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"A list of service scopes.\n"}},"type":"object","required":["scopes"],"language":{"nodejs":{"requiredOutputs":["email","scopes"]}}},"gcp:compute/InstanceFromMachineImageShieldedInstanceConfig:InstanceFromMachineImageShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Whether integrity monitoring is enabled for the instance.\n"},"enableSecureBoot":{"type":"boolean","description":"Whether secure boot is enabled for the instance.\n"},"enableVtpm":{"type":"boolean","description":"Whether the instance uses vTPM.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableIntegrityMonitoring","enableSecureBoot","enableVtpm"]}}},"gcp:compute/InstanceFromMachineImageSourceMachineImageEncryptionKey:InstanceFromMachineImageSourceMachineImageEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","willReplaceOnChanges":true},"rawKey":{"type":"string","secret":true},"rsaEncryptedKey":{"type":"string","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/InstanceFromTemplateAdvancedMachineFeatures:InstanceFromTemplateAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether to enable nested virtualization or not.\n"},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking for the instance.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are \"STANDARD\", \"ENHANCED\", and \"ARCHITECTURAL\".\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Currently supported modes is \"ALL_CORE_MAX\".\n"},"visibleCoreCount":{"type":"integer","description":"The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance\\'s nominal CPU count and the underlying platform\\'s SMT width.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableNestedVirtualization","enableUefiNetworking","performanceMonitoringUnit","threadsPerCore","turboMode","visibleCoreCount"]}}},"gcp:compute/InstanceFromTemplateAttachedDisk:InstanceFromTemplateAttachedDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/\n"},"diskEncryptionKeyRaw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n","secret":true},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n","secret":true},"diskEncryptionKeySha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used\n"},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n","willReplaceOnChanges":true},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n"},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".\n"},"source":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the disk attached to this instance.\n"}},"type":"object","required":["source"],"language":{"nodejs":{"requiredOutputs":["deviceName","diskEncryptionKeyRaw","diskEncryptionKeyRsa","diskEncryptionKeySha256","diskEncryptionServiceAccount","forceAttach","kmsKeySelfLink","mode","source"]}}},"gcp:compute/InstanceFromTemplateBootDisk:InstanceFromTemplateBootDisk":{"properties":{"autoDelete":{"type":"boolean","description":"Whether the disk will be auto-deleted when the instance is deleted.\n"},"deviceName":{"type":"string","description":"Name with which attached disk will be accessible under /dev/disk/by-id/\n","willReplaceOnChanges":true},"diskEncryptionKeyRaw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"diskEncryptionKeySha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied encryption key that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used\n","willReplaceOnChanges":true},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images.\n","willReplaceOnChanges":true},"initializeParams":{"$ref":"#/types/gcp:compute/InstanceFromTemplateBootDiskInitializeParams:InstanceFromTemplateBootDiskInitializeParams","description":"Parameters with which a disk was created alongside the instance.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME. (This field is shared with\u003cspan pulumi-lang-nodejs=\" attachedDisk \" pulumi-lang-dotnet=\" AttachedDisk \" pulumi-lang-go=\" attachedDisk \" pulumi-lang-python=\" attached_disk \" pulumi-lang-yaml=\" attachedDisk \" pulumi-lang-java=\" attachedDisk \"\u003e attached_disk \u003c/span\u003eand only used for specific cases, please don't specify this field without advice from Google.)\n"},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Read/write mode for the disk. One of \"READ_ONLY\" or \"READ_WRITE\".\n","willReplaceOnChanges":true},"source":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the disk attached to this instance.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoDelete","deviceName","diskEncryptionKeyRaw","diskEncryptionKeyRsa","diskEncryptionKeySha256","diskEncryptionServiceAccount","forceAttach","guestOsFeatures","initializeParams","interface","kmsKeySelfLink","mode","source"]}}},"gcp:compute/InstanceFromTemplateBootDiskInitializeParams:InstanceFromTemplateBootDiskInitializeParams":{"properties":{"architecture":{"type":"string","description":"The architecture of the disk. One of \"X86_64\" or \"ARM64\".\n","willReplaceOnChanges":true},"enableConfidentialCompute":{"type":"boolean","description":"A flag to enable confidential compute mode on boot disk\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The image from which this disk was initialised.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key/value label pairs assigned to the disk.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.\n","willReplaceOnChanges":true},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.\n","willReplaceOnChanges":true},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"string","description":"A list of\u003cspan pulumi-lang-nodejs=\" selfLinks \" pulumi-lang-dotnet=\" SelfLinks \" pulumi-lang-go=\" selfLinks \" pulumi-lang-python=\" self_links \" pulumi-lang-yaml=\" selfLinks \" pulumi-lang-java=\" selfLinks \"\u003e self_links \u003c/span\u003eof resource policies to attach to the instance's boot disk. Modifying this list will cause the instance to recreate. Currently a max of 1 resource policy is supported.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the image in gigabytes.\n","willReplaceOnChanges":true},"snapshot":{"type":"string","description":"The snapshot from which this disk was initialised.\n","willReplaceOnChanges":true},"sourceImageEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey:InstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey","description":"The encryption key used to decrypt the source image.\n"},"sourceSnapshotEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey:InstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey","description":"The encryption key used to decrypt the source snapshot.\n"},"storagePool":{"type":"string","description":"The URL of the storage pool in which the new disk is created\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["architecture","enableConfidentialCompute","image","labels","provisionedIops","provisionedThroughput","resourceManagerTags","resourcePolicies","size","snapshot","sourceImageEncryptionKey","sourceSnapshotEncryptionKey","storagePool","type"]}}},"gcp:compute/InstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey:InstanceFromTemplateBootDiskInitializeParamsSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the encryption key used to encrypt this disk.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"]}}},"gcp:compute/InstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey:InstanceFromTemplateBootDiskInitializeParamsSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the encryption key used to encrypt this disk.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"]}}},"gcp:compute/InstanceFromTemplateConfidentialInstanceConfig:InstanceFromTemplateConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"The confidential computing technology the instance uses.\n\t\t\t\t\t\t\t\tSEV is an AMD feature. TDX is an Intel feature. One of the following\n\t\t\t\t\t\t\t\tvalues is required: SEV, SEV_SNP, TDX. If SEV_SNP,\u003cspan pulumi-lang-nodejs=\" minCpuPlatform \" pulumi-lang-dotnet=\" MinCpuPlatform \" pulumi-lang-go=\" minCpuPlatform \" pulumi-lang-python=\" min_cpu_platform \" pulumi-lang-yaml=\" minCpuPlatform \" pulumi-lang-java=\" minCpuPlatform \"\u003e min_cpu_platform \u003c/span\u003e=\n\t\t\t\t\t\t\t\t\"AMD Milan\" is currently required.\n"},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled. Field will be deprecated in a future release\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["confidentialInstanceType","enableConfidentialCompute"]}}},"gcp:compute/InstanceFromTemplateGuestAccelerator:InstanceFromTemplateGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource exposed to this instance. E.g. nvidia-tesla-k80.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"]},"gcp:compute/InstanceFromTemplateInstanceEncryptionKey:InstanceFromTemplateInstanceEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the customer's encryption key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","kmsKeyServiceAccount","sha256"]}}},"gcp:compute/InstanceFromTemplateNetworkInterface:InstanceFromTemplateNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromTemplateNetworkInterfaceAccessConfig:InstanceFromTemplateNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this instance can be accessed via the Internet.\n"},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromTemplateNetworkInterfaceAliasIpRange:InstanceFromTemplateNetworkInterfaceAliasIpRange"},"description":"An array of alias IP ranges for this network interface.\n"},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n"},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromTemplateNetworkInterfaceIpv6AccessConfig:InstanceFromTemplateNetworkInterfaceIpv6AccessConfig"},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n"},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n"},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"},"macAddress":{"type":"string","description":"MAC address assigned to this network interface.\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\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network attached to this interface.\n"},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.\n","willReplaceOnChanges":true},"networkIp":{"type":"string","description":"The private IP address assigned to the instance.\n"},"nicType":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET, IDPF, MRDMA, and IRDMA\n","willReplaceOnChanges":true},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"queueCount":{"type":"integer","description":"The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.\n","willReplaceOnChanges":true},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"},"stackType":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.\n"},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the subnetwork attached to this interface.\n"},"subnetworkProject":{"type":"string","description":"The project in which the subnetwork belongs.\n"},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["accessConfigs","aliasIpRanges","igmpQuery","internalIpv6PrefixLength","ipv6AccessConfigs","ipv6AccessType","ipv6Address","macAddress","name","network","networkAttachment","networkIp","nicType","parentNicName","queueCount","securityPolicy","stackType","subnetwork","subnetworkProject","vlan"]}}},"gcp:compute/InstanceFromTemplateNetworkInterfaceAccessConfig:InstanceFromTemplateNetworkInterfaceAccessConfig":{"properties":{"natIp":{"type":"string","description":"The IP address that is be 1:1 mapped to the instance's network ip.\n"},"networkTier":{"type":"string","description":"The networking tier used for configuring this instance. One of PREMIUM or STANDARD.\n"},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["natIp","networkTier","publicPtrDomainName","securityPolicy"]}}},"gcp:compute/InstanceFromTemplateNetworkInterfaceAliasIpRange:InstanceFromTemplateNetworkInterfaceAliasIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"The IP CIDR range represented by this alias IP range.\n"},"subnetworkRangeName":{"type":"string","description":"The subnetwork secondary range name specifying the secondary range from which to allocate the IP CIDR range for this alias IP range.\n"}},"type":"object","required":["ipCidrRange"],"language":{"nodejs":{"requiredOutputs":["ipCidrRange","subnetworkRangeName"]}}},"gcp:compute/InstanceFromTemplateNetworkInterfaceIpv6AccessConfig:InstanceFromTemplateNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6\n"},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","required":["networkTier"],"language":{"nodejs":{"requiredOutputs":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName","securityPolicy"]}}},"gcp:compute/InstanceFromTemplateNetworkPerformanceConfig:InstanceFromTemplateNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier to enable. Possible values:TIER_1, DEFAULT\n","willReplaceOnChanges":true}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:compute/InstanceFromTemplateParams:InstanceFromTemplateParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["resourceManagerTags"]}}},"gcp:compute/InstanceFromTemplateReservationAffinity:InstanceFromTemplateReservationAffinity":{"properties":{"specificReservation":{"$ref":"#/types/gcp:compute/InstanceFromTemplateReservationAffinitySpecificReservation:InstanceFromTemplateReservationAffinitySpecificReservation","description":"Specifies the label selector for the reservation to use.\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"],"language":{"nodejs":{"requiredOutputs":["specificReservation","type"]}}},"gcp:compute/InstanceFromTemplateReservationAffinitySpecificReservation:InstanceFromTemplateReservationAffinitySpecificReservation":{"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/InstanceFromTemplateScheduling:InstanceFromTemplateScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).\n"},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain, which this instance should be scheduled on.\n"},"gracefulShutdown":{"$ref":"#/types/gcp:compute/InstanceFromTemplateSchedulingGracefulShutdown:InstanceFromTemplateSchedulingGracefulShutdown","description":"Settings for the instance to perform a graceful shutdown.\n"},"hostErrorTimeoutSeconds":{"type":"integer","description":"Specify the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.\n"},"instanceTerminationAction":{"type":"string","description":"Specifies the action GCE should take when SPOT VM is preempted.\n"},"localSsdRecoveryTimeout":{"$ref":"#/types/gcp:compute/InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout:InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout","description":"Specifies the maximum amount of time a Local Ssd Vm should wait while\n  recovery of the Local Ssd state is attempted. Its value should be in\n  between 0 and 168 hours with hour granularity and the default value being 1\n  hour.\n","willReplaceOnChanges":true},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\n"},"maxRunDuration":{"$ref":"#/types/gcp:compute/InstanceFromTemplateSchedulingMaxRunDuration:InstanceFromTemplateSchedulingMaxRunDuration","description":"The timeout for new network connections to hosts.\n","willReplaceOnChanges":true},"minNodeCpus":{"type":"integer"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceFromTemplateSchedulingNodeAffinity:InstanceFromTemplateSchedulingNodeAffinity"},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.\n"},"onHostMaintenance":{"type":"string","description":"Describes maintenance behavior for the instance. One of MIGRATE or TERMINATE,\n"},"onInstanceStopAction":{"$ref":"#/types/gcp:compute/InstanceFromTemplateSchedulingOnInstanceStopAction:InstanceFromTemplateSchedulingOnInstanceStopAction","description":"Defines the behaviour for instances with the instance_termination_action.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Whether the instance is preemptible.\n","willReplaceOnChanges":true},"provisioningModel":{"type":"string","description":"Whether the instance is spot. If this is set as SPOT.\n","willReplaceOnChanges":true},"skipGuestOsShutdown":{"type":"boolean","description":"Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated,\nin RFC3339 text format. If specified, the instance termination action\nwill be performed at the termination time.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["automaticRestart","availabilityDomain","gracefulShutdown","hostErrorTimeoutSeconds","instanceTerminationAction","localSsdRecoveryTimeout","maintenanceInterval","maxRunDuration","minNodeCpus","nodeAffinities","onHostMaintenance","onInstanceStopAction","preemptible","provisioningModel","skipGuestOsShutdown","terminationTime"]}}},"gcp:compute/InstanceFromTemplateSchedulingGracefulShutdown:InstanceFromTemplateSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n"},"maxDuration":{"$ref":"#/types/gcp:compute/InstanceFromTemplateSchedulingGracefulShutdownMaxDuration:InstanceFromTemplateSchedulingGracefulShutdownMaxDuration","description":"The time allotted for the instance to gracefully shut down.\n\t\t\t\t\t\t\t\t\t\tIf the graceful shutdown isn't complete after this time, then the instance\n\t\t\t\t\t\t\t\t\t\ttransitions to the STOPPING state.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","maxDuration"]}}},"gcp:compute/InstanceFromTemplateSchedulingGracefulShutdownMaxDuration:InstanceFromTemplateSchedulingGracefulShutdownMaxDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolution. Durations less than one second are represented\n\t\t\t\t\t\t\t\t\t\t\t\t\twith a 0 seconds field and a positive nanos field. Must\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\n\t\t\t\t\t\t\t\t\t\t\t\t\tThe value must be between 1 and 3600, which is 3,600 seconds (one hour).\n"}},"type":"object","required":["seconds"],"language":{"nodejs":{"requiredOutputs":["nanos","seconds"]}}},"gcp:compute/InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout:InstanceFromTemplateSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"],"language":{"nodejs":{"requiredOutputs":["nanos","seconds"]}}},"gcp:compute/InstanceFromTemplateSchedulingMaxRunDuration:InstanceFromTemplateSchedulingMaxRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"],"language":{"nodejs":{"requiredOutputs":["nanos","seconds"]}}},"gcp:compute/InstanceFromTemplateSchedulingNodeAffinity:InstanceFromTemplateSchedulingNodeAffinity":{"properties":{"key":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["key","operator","values"]},"gcp:compute/InstanceFromTemplateSchedulingOnInstanceStopAction:InstanceFromTemplateSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"If true, the contents of any attached Local SSD disks will be discarded.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["discardLocalSsd"]}}},"gcp:compute/InstanceFromTemplateScratchDisk:InstanceFromTemplateScratchDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/\n"},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of SCSI or NVME.\n"},"size":{"type":"integer","description":"The size of the disk in gigabytes. One of 375 or 3000.\n","willReplaceOnChanges":true}},"type":"object","required":["interface"],"language":{"nodejs":{"requiredOutputs":["deviceName","interface","size"]}}},"gcp:compute/InstanceFromTemplateServiceAccount:InstanceFromTemplateServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"A list of service scopes.\n"}},"type":"object","required":["scopes"],"language":{"nodejs":{"requiredOutputs":["email","scopes"]}}},"gcp:compute/InstanceFromTemplateShieldedInstanceConfig:InstanceFromTemplateShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Whether integrity monitoring is enabled for the instance.\n"},"enableSecureBoot":{"type":"boolean","description":"Whether secure boot is enabled for the instance.\n"},"enableVtpm":{"type":"boolean","description":"Whether the instance uses vTPM.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableIntegrityMonitoring","enableSecureBoot","enableVtpm"]}}},"gcp:compute/InstanceGroupManagerAllInstancesConfig:InstanceGroupManagerAllInstancesConfig":{"properties":{"labels":{"type":"object","additionalProperties":{"type":"string"},"description":", The label key-value pairs that you want to patch onto the instance.\n\n- - -\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":", The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata).\n"}},"type":"object"},"gcp:compute/InstanceGroupManagerAutoHealingPolicies:InstanceGroupManagerAutoHealingPolicies":{"properties":{"healthCheck":{"type":"string","description":"The health check resource that signals autohealing.\n"},"initialDelaySec":{"type":"integer","description":"The number of seconds that the managed instance group waits before\nit applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.\n"}},"type":"object","required":["healthCheck","initialDelaySec"]},"gcp:compute/InstanceGroupManagerInstanceLifecyclePolicy:InstanceGroupManagerInstanceLifecyclePolicy":{"properties":{"defaultActionOnFailure":{"type":"string","description":", Specifies the action that a MIG performs on a failed VM. If the value of the \u003cspan pulumi-lang-nodejs=\"`onFailedHealthCheck`\" pulumi-lang-dotnet=\"`OnFailedHealthCheck`\" pulumi-lang-go=\"`onFailedHealthCheck`\" pulumi-lang-python=\"`on_failed_health_check`\" pulumi-lang-yaml=\"`onFailedHealthCheck`\" pulumi-lang-java=\"`onFailedHealthCheck`\"\u003e`on_failed_health_check`\u003c/span\u003e field is `DEFAULT_ACTION`, then the same action also applies to the VMs on which your application fails a health check. Valid options are: `DO_NOTHING`, `REPAIR`. If `DO_NOTHING`, then MIG does not repair a failed VM. If `REPAIR` (default), then MIG automatically repairs a failed VM by recreating it. For more information, see about repairing VMs in a MIG.\n"},"forceUpdateOnRepair":{"type":"string","description":", Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type.\n"},"onFailedHealthCheck":{"type":"string","description":", Specifies the action that a MIG performs on an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid options are: `DEFAULT_ACTION`, `DO_NOTHING`, `REPAIR`. If `DEFAULT_ACTION` (default), then MIG uses the same action configured for the  \u003cspan pulumi-lang-nodejs=\"`defaultActionOnFailure`\" pulumi-lang-dotnet=\"`DefaultActionOnFailure`\" pulumi-lang-go=\"`defaultActionOnFailure`\" pulumi-lang-python=\"`default_action_on_failure`\" pulumi-lang-yaml=\"`defaultActionOnFailure`\" pulumi-lang-java=\"`defaultActionOnFailure`\"\u003e`default_action_on_failure`\u003c/span\u003e field. If `DO_NOTHING`, then MIG does not repair unhealthy VM. If `REPAIR`, then MIG automatically repairs an unhealthy VM by recreating it. For more information, see about repairing VMs in a MIG.\n"},"onRepair":{"$ref":"#/types/gcp:compute/InstanceGroupManagerInstanceLifecyclePolicyOnRepair:InstanceGroupManagerInstanceLifecyclePolicyOnRepair","description":"), Configuration for VM repairs in the MIG. Structure is documented below.\n- - -\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["onRepair"]}}},"gcp:compute/InstanceGroupManagerInstanceLifecyclePolicyOnRepair:InstanceGroupManagerInstanceLifecyclePolicyOnRepair":{"properties":{"allowChangingZone":{"type":"string","description":", Specifies whether the MIG can change a VM's zone during a repair. If \"YES\", MIG can select a different zone for the VM during a repair. Else if \"NO\", MIG cannot change a VM's zone during a repair. The default value of\u003cspan pulumi-lang-nodejs=\" allowChangingZone \" pulumi-lang-dotnet=\" AllowChangingZone \" pulumi-lang-go=\" allowChangingZone \" pulumi-lang-python=\" allow_changing_zone \" pulumi-lang-yaml=\" allowChangingZone \" pulumi-lang-java=\" allowChangingZone \"\u003e allow_changing_zone \u003c/span\u003eis \"NO\".\n\n- - -\n"}},"type":"object"},"gcp:compute/InstanceGroupManagerNamedPort:InstanceGroupManagerNamedPort":{"properties":{"name":{"type":"string","description":"The name of the port.\n"},"port":{"type":"integer","description":"The port number.\n- - -\n"}},"type":"object","required":["name","port"]},"gcp:compute/InstanceGroupManagerParams:InstanceGroupManagerParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see [Manage tags for resources](https://cloud.google.com/compute/docs/tag-resources)\n\n- - -\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceGroupManagerResourcePolicies:InstanceGroupManagerResourcePolicies":{"properties":{"workloadPolicy":{"type":"string","description":"The URL of the workload policy that is specified for this managed instance group. It can be a full or partial URL.\n"}},"type":"object"},"gcp:compute/InstanceGroupManagerStandbyPolicy:InstanceGroupManagerStandbyPolicy":{"properties":{"initialDelaySec":{"type":"integer","description":"Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.\n"},"mode":{"type":"string","description":"Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: `MANUAL`, `SCALE_OUT_POOL`. If `MANUAL`(default), you have full control over which VMs are stopped and suspended in the MIG. If `SCALE_OUT_POOL`, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.\n- - -\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["initialDelaySec","mode"]}}},"gcp:compute/InstanceGroupManagerStatefulDisk:InstanceGroupManagerStatefulDisk":{"properties":{"deleteRule":{"type":"string","description":", A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. `NEVER` - detach the disk when the VM is deleted, but do not delete the disk. `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently deleted from the instance group. The default is `NEVER`.\n"},"deviceName":{"type":"string","description":", The device name of the disk to be attached.\n"}},"type":"object","required":["deviceName"]},"gcp:compute/InstanceGroupManagerStatefulExternalIp:InstanceGroupManagerStatefulExternalIp":{"properties":{"deleteRule":{"type":"string","description":", A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. `NEVER` - detach the ip when the VM is deleted, but do not delete the ip. `ON_PERMANENT_INSTANCE_DELETION` will delete the external ip when the VM is permanently deleted from the instance group.\n"},"interfaceName":{"type":"string","description":", The network interface name of the external Ip. Possible value: \u003cspan pulumi-lang-nodejs=\"`nic0`\" pulumi-lang-dotnet=\"`Nic0`\" pulumi-lang-go=\"`nic0`\" pulumi-lang-python=\"`nic0`\" pulumi-lang-yaml=\"`nic0`\" pulumi-lang-java=\"`nic0`\"\u003e`nic0`\u003c/span\u003e\n"}},"type":"object"},"gcp:compute/InstanceGroupManagerStatefulInternalIp:InstanceGroupManagerStatefulInternalIp":{"properties":{"deleteRule":{"type":"string","description":", A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. `NEVER` - detach the ip when the VM is deleted, but do not delete the ip. `ON_PERMANENT_INSTANCE_DELETION` will delete the internal ip when the VM is permanently deleted from the instance group.\n"},"interfaceName":{"type":"string","description":", The network interface name of the internal Ip. Possible value: \u003cspan pulumi-lang-nodejs=\"`nic0`\" pulumi-lang-dotnet=\"`Nic0`\" pulumi-lang-go=\"`nic0`\" pulumi-lang-python=\"`nic0`\" pulumi-lang-yaml=\"`nic0`\" pulumi-lang-java=\"`nic0`\"\u003e`nic0`\u003c/span\u003e\n"}},"type":"object"},"gcp:compute/InstanceGroupManagerStatus:InstanceGroupManagerStatus":{"properties":{"allInstancesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceGroupManagerStatusAllInstancesConfig:InstanceGroupManagerStatusAllInstancesConfig"},"description":"Properties to set on all instances in the group. After setting\nallInstancesConfig on the group, you must update the group's instances to\napply the configuration.\n"},"isStable":{"type":"boolean","description":"A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.\n"},"statefuls":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceGroupManagerStatusStateful:InstanceGroupManagerStatusStateful"},"description":"Stateful status of the given Instance Group Manager.\n"},"versionTargets":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceGroupManagerStatusVersionTarget:InstanceGroupManagerStatusVersionTarget"},"description":"A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allInstancesConfigs","isStable","statefuls","versionTargets"]}}},"gcp:compute/InstanceGroupManagerStatusAllInstancesConfig:InstanceGroupManagerStatusAllInstancesConfig":{"properties":{"currentRevision":{"type":"string","description":"Current all-instances configuration revision. This value is in RFC3339 text format.\n"},"effective":{"type":"boolean","description":"A bit indicating whether this configuration has been applied to all managed instances in the group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currentRevision","effective"]}}},"gcp:compute/InstanceGroupManagerStatusStateful:InstanceGroupManagerStatusStateful":{"properties":{"hasStatefulConfig":{"type":"boolean","description":"A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.\n"},"perInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceGroupManagerStatusStatefulPerInstanceConfig:InstanceGroupManagerStatusStatefulPerInstanceConfig"},"description":"Status of per-instance configs on the instances.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hasStatefulConfig","perInstanceConfigs"]}}},"gcp:compute/InstanceGroupManagerStatusStatefulPerInstanceConfig:InstanceGroupManagerStatusStatefulPerInstanceConfig":{"properties":{"allEffective":{"type":"boolean","description":"A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status `EFFECTIVE` or there are no per-instance-configs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allEffective"]}}},"gcp:compute/InstanceGroupManagerStatusVersionTarget:InstanceGroupManagerStatusVersionTarget":{"properties":{"isReached":{"type":"boolean","description":"A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isReached"]}}},"gcp:compute/InstanceGroupManagerUpdatePolicy:InstanceGroupManagerUpdatePolicy":{"properties":{"maxSurgeFixed":{"type":"integer","description":", Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with \u003cspan pulumi-lang-nodejs=\"`maxSurgePercent`\" pulumi-lang-dotnet=\"`MaxSurgePercent`\" pulumi-lang-go=\"`maxSurgePercent`\" pulumi-lang-python=\"`max_surge_percent`\" pulumi-lang-yaml=\"`maxSurgePercent`\" pulumi-lang-java=\"`maxSurgePercent`\"\u003e`max_surge_percent`\u003c/span\u003e. Both cannot be 0.\n"},"maxSurgePercent":{"type":"integer","description":", Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with \u003cspan pulumi-lang-nodejs=\"`maxSurgeFixed`\" pulumi-lang-dotnet=\"`MaxSurgeFixed`\" pulumi-lang-go=\"`maxSurgeFixed`\" pulumi-lang-python=\"`max_surge_fixed`\" pulumi-lang-yaml=\"`maxSurgeFixed`\" pulumi-lang-java=\"`maxSurgeFixed`\"\u003e`max_surge_fixed`\u003c/span\u003e.\n"},"maxUnavailableFixed":{"type":"integer","description":", Specifies a fixed number of VM instances. This must be a positive integer.\n"},"maxUnavailablePercent":{"type":"integer","description":", Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..\n"},"minReadySec":{"type":"integer","description":"), Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]\n"},"minimalAction":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either `NONE` to forbid any actions, `REFRESH` to update without stopping instances, `RESTART` to restart existing instances or `REPLACE` to delete and create new instances from the target template. If you specify a `REFRESH`, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.\n"},"mostDisruptiveAllowedAction":{"type":"string","description":"Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.\n"},"replacementMethod":{"type":"string","description":", The instance replacement method for managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved.  You must also set\u003cspan pulumi-lang-nodejs=\" maxUnavailableFixed \" pulumi-lang-dotnet=\" MaxUnavailableFixed \" pulumi-lang-go=\" maxUnavailableFixed \" pulumi-lang-python=\" max_unavailable_fixed \" pulumi-lang-yaml=\" maxUnavailableFixed \" pulumi-lang-java=\" maxUnavailableFixed \"\u003e max_unavailable_fixed \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" maxUnavailablePercent \" pulumi-lang-dotnet=\" MaxUnavailablePercent \" pulumi-lang-go=\" maxUnavailablePercent \" pulumi-lang-python=\" max_unavailable_percent \" pulumi-lang-yaml=\" maxUnavailablePercent \" pulumi-lang-java=\" maxUnavailablePercent \"\u003e max_unavailable_percent \u003c/span\u003eto be greater than 0.\n- - -\n"},"type":{"type":"string","description":"The type of update process. You can specify either `PROACTIVE` so that the instance group manager proactively executes actions in order to bring instances to their target versions or `OPPORTUNISTIC` so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).\n"}},"type":"object","required":["minimalAction","type"],"language":{"nodejs":{"requiredOutputs":["maxSurgeFixed","maxUnavailableFixed","minimalAction","type"]}}},"gcp:compute/InstanceGroupManagerVersion:InstanceGroupManagerVersion":{"properties":{"instanceTemplate":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created. It is recommended to reference instance templates through their unique id (\u003cspan pulumi-lang-nodejs=\"`selfLinkUnique`\" pulumi-lang-dotnet=\"`SelfLinkUnique`\" pulumi-lang-go=\"`selfLinkUnique`\" pulumi-lang-python=\"`self_link_unique`\" pulumi-lang-yaml=\"`selfLinkUnique`\" pulumi-lang-java=\"`selfLinkUnique`\"\u003e`self_link_unique`\u003c/span\u003e attribute).\n"},"name":{"type":"string","description":"Version name.\n"},"targetSize":{"$ref":"#/types/gcp:compute/InstanceGroupManagerVersionTargetSize:InstanceGroupManagerVersionTargetSize","description":"The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.\n\n\u003e Exactly one \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e you specify must not have a \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e specified. During a rolling update, the instance group manager will fulfill the \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e\nconstraints of every other \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e, and any remaining instances will be provisioned with the version where \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e is unset.\n"}},"type":"object","required":["instanceTemplate"]},"gcp:compute/InstanceGroupManagerVersionTargetSize:InstanceGroupManagerVersionTargetSize":{"properties":{"fixed":{"type":"integer","description":", The number of instances which are managed for this version. Conflicts with \u003cspan pulumi-lang-nodejs=\"`percent`\" pulumi-lang-dotnet=\"`Percent`\" pulumi-lang-go=\"`percent`\" pulumi-lang-python=\"`percent`\" pulumi-lang-yaml=\"`percent`\" pulumi-lang-java=\"`percent`\"\u003e`percent`\u003c/span\u003e.\n"},"percent":{"type":"integer","description":", The number of instances (calculated as percentage) which are managed for this version. Conflicts with \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e.\nNote that when using \u003cspan pulumi-lang-nodejs=\"`percent`\" pulumi-lang-dotnet=\"`Percent`\" pulumi-lang-go=\"`percent`\" pulumi-lang-python=\"`percent`\" pulumi-lang-yaml=\"`percent`\" pulumi-lang-java=\"`percent`\"\u003e`percent`\u003c/span\u003e, rounding will be in favor of explicitly set \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e values; a managed instance group with 2 instances and 2 \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003es,\none of which has a `target_size.percent` of \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e will create 2 instances of that \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e.\n"}},"type":"object"},"gcp:compute/InstanceGroupNamedPort:InstanceGroupNamedPort":{"properties":{"name":{"type":"string","description":"The name which the port will be mapped to.\n"},"port":{"type":"integer","description":"The port number to map the name to.\n"}},"type":"object","required":["name","port"]},"gcp:compute/InstanceGuestAccelerator:InstanceGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"]},"gcp:compute/InstanceIAMBindingCondition:InstanceIAMBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** This provider considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/InstanceIAMMemberCondition:InstanceIAMMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** This provider considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/InstanceInstanceEncryptionKey:InstanceInstanceEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is\nstored in Google Cloud KMS to encrypt the data on this instance.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"The SHA256 hash of the customer's encryption key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeySelfLink","sha256"]}}},"gcp:compute/InstanceNetworkInterface:InstanceNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceNetworkInterfaceAccessConfig:InstanceNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this\ninstance can be accessed via the Internet. Omit to ensure that the instance\nis not accessible from the Internet. If omitted, ssh provisioners will not\nwork unless Terraform can send traffic to the instance's network (e.g. via\ntunnel or because it is running on another cloud instance on that network).\nThis block can be specified once per \u003cspan pulumi-lang-nodejs=\"`networkInterface`\" pulumi-lang-dotnet=\"`NetworkInterface`\" pulumi-lang-go=\"`networkInterface`\" pulumi-lang-python=\"`network_interface`\" pulumi-lang-yaml=\"`networkInterface`\" pulumi-lang-java=\"`networkInterface`\"\u003e`network_interface`\u003c/span\u003e. Structure documented below.\n"},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceNetworkInterfaceAliasIpRange:InstanceNetworkInterfaceAliasIpRange"},"description":"An\narray of alias IP ranges for this network interface. Can only be specified for network\ninterfaces on subnet-mode networks. Structure documented below.\n"},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n"},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceNetworkInterfaceIpv6AccessConfig:InstanceNetworkInterfaceIpv6AccessConfig"},"description":"An array of IPv6 access configurations for this interface.\nCurrently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig\nspecified, then this instance will have no external IPv6 Internet access. Structure documented below.\n"},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet.\nThis field is always inherited from its subnetwork.\n"},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"},"macAddress":{"type":"string","description":"[Beta] MAC address assigned to this network interface\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\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network to attach this interface to.\nEither \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e must be provided. If network isn't provided it will\nbe inferred from the subnetwork.\n"},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: `projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}`.\n","willReplaceOnChanges":true},"networkIp":{"type":"string","description":"The private IP address to assign to the instance. If\nempty, the address will be automatically assigned.\n"},"nicType":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, IDPF, MRDMA, IRDMA.\n","willReplaceOnChanges":true},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"queueCount":{"type":"integer","description":"The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.\n","willReplaceOnChanges":true},"securityPolicy":{"type":"string","description":"Beta A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"},"stackType":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. Values are IPV4_IPV6, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.\n"},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the subnetwork to attach this\ninterface to. Either \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e 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 \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e is a self_link, this field is set to the project\ndefined in the subnetwork self_link. If the \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e is a name and this\nfield is not provided, the provider project is used.\n"},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["igmpQuery","internalIpv6PrefixLength","ipv6AccessType","ipv6Address","macAddress","name","network","networkAttachment","networkIp","parentNicName","stackType","subnetwork","subnetworkProject"]}}},"gcp:compute/InstanceNetworkInterfaceAccessConfig:InstanceNetworkInterfaceAccessConfig":{"properties":{"natIp":{"type":"string","description":"The IP address that will be 1:1 mapped to the instance's\nnetwork ip. If not given, one will be generated.\n"},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the\nsubnet has an external subnet. Only PREMIUM or STANDARD tier is valid for IPv6.\n"},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6\nrecords for the external IPv6 ranges..\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["natIp","networkTier","securityPolicy"]}}},"gcp:compute/InstanceNetworkInterfaceAliasIpRange:InstanceNetworkInterfaceAliasIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"The IP CIDR range represented by this alias IP range. This IP CIDR range\nmust belong to the specified subnetwork and cannot contain IP addresses reserved by\nsystem or used by other network interfaces. This range may be a single IP address\n(e.g. 10.2.3.4), a netmask (e.g. /24) or a CIDR format string (e.g. 10.1.2.0/24).\n"},"subnetworkRangeName":{"type":"string","description":"The subnetwork secondary range name specifying\nthe secondary range from which to allocate the IP CIDR range for this alias IP\nrange. If left unspecified, the primary range of the subnetwork will be used.\n"}},"type":"object","required":["ipCidrRange"]},"gcp:compute/InstanceNetworkInterfaceIpv6AccessConfig:InstanceNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"A unique name for the resource, required by GCE.\nChanging this forces a new resource to be created.\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6\n"},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","required":["networkTier"],"language":{"nodejs":{"requiredOutputs":["externalIpv6","externalIpv6PrefixLength","name","networkTier","securityPolicy"]}}},"gcp:compute/InstanceNetworkPerformanceConfig:InstanceNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier to enable.\nPossible values: TIER_1, DEFAULT\n","willReplaceOnChanges":true}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:compute/InstanceParams:InstanceParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A tag is a key-value pair that can be attached to a Google Cloud resource. You can use tags to conditionally allow or deny policies based on whether a resource has a specific tag. This value is not returned by the API. In Terraform, this value cannot be updated and changing it will recreate the resource.\n"}},"type":"object"},"gcp:compute/InstanceReservationAffinity:InstanceReservationAffinity":{"properties":{"specificReservation":{"$ref":"#/types/gcp:compute/InstanceReservationAffinitySpecificReservation:InstanceReservationAffinitySpecificReservation","description":"Specifies the label selector for the reservation to use..\nStructure is documented below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of reservation from which this instance can consume resources.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/InstanceReservationAffinitySpecificReservation:InstanceReservationAffinitySpecificReservation":{"properties":{"key":{"type":"string","description":"Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify compute.googleapis.com/reservation-name as the key and specify the name of your reservation as the only value.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"Corresponds to the label values of a reservation resource.\n","willReplaceOnChanges":true}},"type":"object","required":["key","values"]},"gcp:compute/InstanceScheduling:InstanceScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies if the instance should be\nrestarted if it was terminated by Compute Engine (not a user).\nDefaults to true.\n"},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.\n"},"gracefulShutdown":{"$ref":"#/types/gcp:compute/InstanceSchedulingGracefulShutdown:InstanceSchedulingGracefulShutdown","description":"Beta Settings for the instance to perform a graceful shutdown. Structure is documented below.\n"},"hostErrorTimeoutSeconds":{"type":"integer","description":"Beta Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.\n"},"instanceTerminationAction":{"type":"string","description":"Describe the type of termination action for VM. Can be `STOP` or `DELETE`.  Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n"},"localSsdRecoveryTimeout":{"$ref":"#/types/gcp:compute/InstanceSchedulingLocalSsdRecoveryTimeout:InstanceSchedulingLocalSsdRecoveryTimeout","description":"(../guides/provider_versions.html.markdown) Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour. Structure is documented below.\n","willReplaceOnChanges":true},"maintenanceInterval":{"type":"string","description":"Beta Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.\n"},"maxRunDuration":{"$ref":"#/types/gcp:compute/InstanceSchedulingMaxRunDuration:InstanceSchedulingMaxRunDuration","description":"The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in \u003cspan pulumi-lang-nodejs=\"`instanceTerminationAction`\" pulumi-lang-dotnet=\"`InstanceTerminationAction`\" pulumi-lang-go=\"`instanceTerminationAction`\" pulumi-lang-python=\"`instance_termination_action`\" pulumi-lang-yaml=\"`instanceTerminationAction`\" pulumi-lang-java=\"`instanceTerminationAction`\"\u003e`instance_termination_action`\u003c/span\u003e. Structure is documented below.\n","willReplaceOnChanges":true},"minNodeCpus":{"type":"integer","description":"The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceSchedulingNodeAffinity:InstanceSchedulingNodeAffinity"},"description":"Specifies node affinities or anti-affinities\nto determine which sole-tenant nodes your instances and managed instance\ngroups will use as host systems. Read more on sole-tenant node creation\n[here](https://cloud.google.com/compute/docs/nodes/create-nodes).\nStructure documented below.\n"},"onHostMaintenance":{"type":"string","description":"Describes maintenance behavior for the\ninstance. Can be MIGRATE or TERMINATE, for more info, read\n[here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options).\n"},"onInstanceStopAction":{"$ref":"#/types/gcp:compute/InstanceSchedulingOnInstanceStopAction:InstanceSchedulingOnInstanceStopAction","description":"Specifies the action to be performed when the instance is terminated using \u003cspan pulumi-lang-nodejs=\"`maxRunDuration`\" pulumi-lang-dotnet=\"`MaxRunDuration`\" pulumi-lang-go=\"`maxRunDuration`\" pulumi-lang-python=\"`max_run_duration`\" pulumi-lang-yaml=\"`maxRunDuration`\" pulumi-lang-java=\"`maxRunDuration`\"\u003e`max_run_duration`\u003c/span\u003e and `STOP` \u003cspan pulumi-lang-nodejs=\"`instanceTerminationAction`\" pulumi-lang-dotnet=\"`InstanceTerminationAction`\" pulumi-lang-go=\"`instanceTerminationAction`\" pulumi-lang-python=\"`instance_termination_action`\" pulumi-lang-yaml=\"`instanceTerminationAction`\" pulumi-lang-java=\"`instanceTerminationAction`\"\u003e`instance_termination_action`\u003c/span\u003e. Only support \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`discardLocalSsd`\" pulumi-lang-dotnet=\"`DiscardLocalSsd`\" pulumi-lang-go=\"`discardLocalSsd`\" pulumi-lang-python=\"`discard_local_ssd`\" pulumi-lang-yaml=\"`discardLocalSsd`\" pulumi-lang-java=\"`discardLocalSsd`\"\u003e`discard_local_ssd`\u003c/span\u003e at this point. Structure is documented below.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Specifies if the instance is preemptible.\nIf this field is set to true, then \u003cspan pulumi-lang-nodejs=\"`automaticRestart`\" pulumi-lang-dotnet=\"`AutomaticRestart`\" pulumi-lang-go=\"`automaticRestart`\" pulumi-lang-python=\"`automatic_restart`\" pulumi-lang-yaml=\"`automaticRestart`\" pulumi-lang-java=\"`automaticRestart`\"\u003e`automatic_restart`\u003c/span\u003e 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\u003cspan pulumi-lang-nodejs=\"`preemptible`\" pulumi-lang-dotnet=\"`Preemptible`\" pulumi-lang-go=\"`preemptible`\" pulumi-lang-python=\"`preemptible`\" pulumi-lang-yaml=\"`preemptible`\" pulumi-lang-java=\"`preemptible`\"\u003e`preemptible`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`automaticRestart`\" pulumi-lang-dotnet=\"`AutomaticRestart`\" pulumi-lang-go=\"`automaticRestart`\" pulumi-lang-python=\"`automatic_restart`\" pulumi-lang-yaml=\"`automaticRestart`\" pulumi-lang-java=\"`automaticRestart`\"\u003e`automatic_restart`\u003c/span\u003e should be\n\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. For more info about\n`SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)\n","willReplaceOnChanges":true},"skipGuestOsShutdown":{"type":"boolean","description":"Beta Boolean parameter. Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["onHostMaintenance","provisioningModel"]}}},"gcp:compute/InstanceSchedulingGracefulShutdown:InstanceSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n"},"maxDuration":{"$ref":"#/types/gcp:compute/InstanceSchedulingGracefulShutdownMaxDuration:InstanceSchedulingGracefulShutdownMaxDuration","description":"The time allotted for the instance to gracefully shut down.\nIf the graceful shutdown isn't complete after this time, then the instance\ntransitions to the STOPPING state. Structure is documented below:\n"}},"type":"object","required":["enabled"]},"gcp:compute/InstanceSchedulingGracefulShutdownMaxDuration:InstanceSchedulingGracefulShutdownMaxDuration":{"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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e field. Must be from 0 to\n999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nThe value must be between 1 and 3600, which is 3,600 seconds (one hour).`\n"}},"type":"object","required":["seconds"]},"gcp:compute/InstanceSchedulingLocalSsdRecoveryTimeout:InstanceSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented with a 0\n\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e 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/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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e field. Must be from 0 to\n999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to\n315,576,000,000 inclusive. Note: these bounds are computed from: 60\nsec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"]},"gcp:compute/InstanceSchedulingNodeAffinity:InstanceSchedulingNodeAffinity":{"properties":{"key":{"type":"string","description":"The key for the node affinity label.\n"},"operator":{"type":"string","description":"The operator. Can be `IN` for node-affinities\nor `NOT_IN` for anti-affinities.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The values for the node affinity label.\n"}},"type":"object","required":["key","operator","values"]},"gcp:compute/InstanceSchedulingOnInstanceStopAction:InstanceSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"Whether to discard local SSDs attached to the VM while terminating using \u003cspan pulumi-lang-nodejs=\"`maxRunDuration`\" pulumi-lang-dotnet=\"`MaxRunDuration`\" pulumi-lang-go=\"`maxRunDuration`\" pulumi-lang-python=\"`max_run_duration`\" pulumi-lang-yaml=\"`maxRunDuration`\" pulumi-lang-java=\"`maxRunDuration`\"\u003e`max_run_duration`\u003c/span\u003e. Only supports \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at this point.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceScratchDisk:InstanceScratchDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible under /dev/disk/by-id/\n"},"interface":{"type":"string","description":"The disk interface to use for attaching this disk; either SCSI or NVME.\n"},"size":{"type":"integer","description":"The size of the disk in gigabytes. One of 375 or 3000.\n","willReplaceOnChanges":true}},"type":"object","required":["interface"],"language":{"nodejs":{"requiredOutputs":["deviceName","interface"]}}},"gcp:compute/InstanceServiceAccount:InstanceServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address.\n**Note**: \u003cspan pulumi-lang-nodejs=\"`allowStoppingForUpdate`\" pulumi-lang-dotnet=\"`AllowStoppingForUpdate`\" pulumi-lang-go=\"`allowStoppingForUpdate`\" pulumi-lang-python=\"`allow_stopping_for_update`\" pulumi-lang-yaml=\"`allowStoppingForUpdate`\" pulumi-lang-java=\"`allowStoppingForUpdate`\"\u003e`allow_stopping_for_update`\u003c/span\u003e must be set to true or your instance must have a \u003cspan pulumi-lang-nodejs=\"`desiredStatus`\" pulumi-lang-dotnet=\"`DesiredStatus`\" pulumi-lang-go=\"`desiredStatus`\" pulumi-lang-python=\"`desired_status`\" pulumi-lang-yaml=\"`desiredStatus`\" pulumi-lang-java=\"`desiredStatus`\"\u003e`desired_status`\u003c/span\u003e 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**: \u003cspan pulumi-lang-nodejs=\"`allowStoppingForUpdate`\" pulumi-lang-dotnet=\"`AllowStoppingForUpdate`\" pulumi-lang-go=\"`allowStoppingForUpdate`\" pulumi-lang-python=\"`allow_stopping_for_update`\" pulumi-lang-yaml=\"`allowStoppingForUpdate`\" pulumi-lang-java=\"`allowStoppingForUpdate`\"\u003e`allow_stopping_for_update`\u003c/span\u003e must be set to true or your instance must have a \u003cspan pulumi-lang-nodejs=\"`desiredStatus`\" pulumi-lang-dotnet=\"`DesiredStatus`\" pulumi-lang-go=\"`desiredStatus`\" pulumi-lang-python=\"`desired_status`\" pulumi-lang-yaml=\"`desiredStatus`\" pulumi-lang-java=\"`desiredStatus`\"\u003e`desired_status`\u003c/span\u003e of `TERMINATED` in order to update this field.\n"}},"type":"object","required":["scopes"],"language":{"nodejs":{"requiredOutputs":["email","scopes"]}}},"gcp:compute/InstanceSettingsMetadata:InstanceSettingsMetadata":{"properties":{"items":{"type":"object","additionalProperties":{"type":"string"},"description":"A metadata key/value items map. The total size of all keys and values must be less than 512KB\n"}},"type":"object"},"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**: \u003cspan pulumi-lang-nodejs=\"`allowStoppingForUpdate`\" pulumi-lang-dotnet=\"`AllowStoppingForUpdate`\" pulumi-lang-go=\"`allowStoppingForUpdate`\" pulumi-lang-python=\"`allow_stopping_for_update`\" pulumi-lang-yaml=\"`allowStoppingForUpdate`\" pulumi-lang-java=\"`allowStoppingForUpdate`\"\u003e`allow_stopping_for_update`\u003c/span\u003e must be set to true or your instance must have a \u003cspan pulumi-lang-nodejs=\"`desiredStatus`\" pulumi-lang-dotnet=\"`DesiredStatus`\" pulumi-lang-go=\"`desiredStatus`\" pulumi-lang-python=\"`desired_status`\" pulumi-lang-yaml=\"`desiredStatus`\" pulumi-lang-java=\"`desiredStatus`\"\u003e`desired_status`\u003c/span\u003e 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**: \u003cspan pulumi-lang-nodejs=\"`allowStoppingForUpdate`\" pulumi-lang-dotnet=\"`AllowStoppingForUpdate`\" pulumi-lang-go=\"`allowStoppingForUpdate`\" pulumi-lang-python=\"`allow_stopping_for_update`\" pulumi-lang-yaml=\"`allowStoppingForUpdate`\" pulumi-lang-java=\"`allowStoppingForUpdate`\"\u003e`allow_stopping_for_update`\u003c/span\u003e must be set to true or your instance must have a \u003cspan pulumi-lang-nodejs=\"`desiredStatus`\" pulumi-lang-dotnet=\"`DesiredStatus`\" pulumi-lang-go=\"`desiredStatus`\" pulumi-lang-python=\"`desired_status`\" pulumi-lang-yaml=\"`desiredStatus`\" pulumi-lang-java=\"`desiredStatus`\"\u003e`desired_status`\u003c/span\u003e 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**: \u003cspan pulumi-lang-nodejs=\"`allowStoppingForUpdate`\" pulumi-lang-dotnet=\"`AllowStoppingForUpdate`\" pulumi-lang-go=\"`allowStoppingForUpdate`\" pulumi-lang-python=\"`allow_stopping_for_update`\" pulumi-lang-yaml=\"`allowStoppingForUpdate`\" pulumi-lang-java=\"`allowStoppingForUpdate`\"\u003e`allow_stopping_for_update`\u003c/span\u003e must be set to true or your instance must have a \u003cspan pulumi-lang-nodejs=\"`desiredStatus`\" pulumi-lang-dotnet=\"`DesiredStatus`\" pulumi-lang-go=\"`desiredStatus`\" pulumi-lang-python=\"`desired_status`\" pulumi-lang-yaml=\"`desiredStatus`\" pulumi-lang-java=\"`desiredStatus`\"\u003e`desired_status`\u003c/span\u003e of `TERMINATED` in order to update this field.\n"}},"type":"object"},"gcp:compute/InstanceTemplateAdvancedMachineFeatures:InstanceTemplateAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Defines whether the instance should have nested virtualization enabled. Defaults to false.\n","willReplaceOnChanges":true},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking for instance creation.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"[The PMU](https://cloud.google.com/compute/docs/pmu-overview) is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are `STANDARD`, `ENHANCED`, and `ARCHITECTURAL`.\n","willReplaceOnChanges":true},"threadsPerCore":{"type":"integer","description":"The 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","willReplaceOnChanges":true},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Supported modes are currently either `ALL_CORE_MAX` or unset (default).\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","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceTemplateConfidentialInstanceConfig:InstanceTemplateConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the confidential computing technology the instance uses. SEV is an AMD feature. TDX is an Intel feature. One of the following values is required: `SEV`, `SEV_SNP`, `TDX`. \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e can be set to MIGRATE if \u003cspan pulumi-lang-nodejs=\"`confidentialInstanceType`\" pulumi-lang-dotnet=\"`ConfidentialInstanceType`\" pulumi-lang-go=\"`confidentialInstanceType`\" pulumi-lang-python=\"`confidential_instance_type`\" pulumi-lang-yaml=\"`confidentialInstanceType`\" pulumi-lang-java=\"`confidentialInstanceType`\"\u003e`confidential_instance_type`\u003c/span\u003e is set to `SEV` and \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e is set to `\"AMD Milan\"`. Otherwise, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM. If `SEV_SNP`, currently \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e has to be set to `\"AMD Milan\"` or this will fail to create the VM.\n","willReplaceOnChanges":true},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e can be set to MIGRATE if \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e is set to `\"AMD Milan\"`. Otherwise, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceTemplateDisk:InstanceTemplateDisk":{"properties":{"architecture":{"type":"string","description":"The architecture of the attached disk. Valid values are `ARM64` or \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoDelete":{"type":"boolean","description":"Whether or not the disk should be auto-deleted.\nThis defaults to true.\n","willReplaceOnChanges":true},"boot":{"type":"boolean","description":"Indicates that this is a boot disk.\n","willReplaceOnChanges":true},"deviceName":{"type":"string","description":"A unique device name that is reflected into the\n/dev/  tree of a Linux operating system running within the instance. If not\nspecified, the server chooses a default device name to apply to this disk.\n","willReplaceOnChanges":true},"diskEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceTemplateDiskDiskEncryptionKey:InstanceTemplateDiskDiskEncryptionKey","description":"Encrypts or decrypts a disk using a customer-supplied encryption key.\n\nIf you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.\n\nIf you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.\n\nIf you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.\n\nInstance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.\n","willReplaceOnChanges":true},"diskName":{"type":"string","description":"Name of the disk. When not provided, this defaults\nto the name of the instance.\n","willReplaceOnChanges":true},"diskSizeGb":{"type":"integer","description":"The size of the image in gigabytes. If not\nspecified, it will inherit the size of its base image. For SCRATCH disks,\nthe size must be exactly 375GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The GCE disk type. Such as `\"pd-ssd\"`, `\"local-ssd\"`,\n`\"pd-balanced\"` or `\"pd-standard\"`, `\"hyperdisk-balanced\"`, `\"hyperdisk-throughput\"` or `\"hyperdisk-extreme\"`.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk,\nwhich is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI\nand the request will fail if you attempt to attach a persistent disk in any other format\nthan SCSI. Local SSDs can use either NVME or SCSI.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of ket/value label pairs to assign to disk created from\nthis template\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE\nor READ_ONLY. If you are attaching or creating a boot disk, this must\nread-write mode.\n","willReplaceOnChanges":true},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details, see the [Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk) or the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks) depending on the selected disk_type.\n","willReplaceOnChanges":true},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\n","willReplaceOnChanges":true},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"string","description":"- A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"The name (**not self_link**)\nof the disk (such as those managed by \u003cspan pulumi-lang-nodejs=\"`gcp.compute.Disk`\" pulumi-lang-dotnet=\"`gcp.compute.Disk`\" pulumi-lang-go=\"`compute.Disk`\" pulumi-lang-python=\"`compute.Disk`\" pulumi-lang-yaml=\"`gcp.compute.Disk`\" pulumi-lang-java=\"`gcp.compute.Disk`\"\u003e`gcp.compute.Disk`\u003c/span\u003e) to attach.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`sourceSnapshot`\" pulumi-lang-dotnet=\"`SourceSnapshot`\" pulumi-lang-go=\"`sourceSnapshot`\" pulumi-lang-python=\"`source_snapshot`\" pulumi-lang-yaml=\"`sourceSnapshot`\" pulumi-lang-java=\"`sourceSnapshot`\"\u003e`source_snapshot`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n","willReplaceOnChanges":true},"sourceImage":{"type":"string","description":"The image from which to\ninitialize this disk. This can be one of: the image's \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e,\n`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}`.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`sourceSnapshot`\" pulumi-lang-dotnet=\"`SourceSnapshot`\" pulumi-lang-go=\"`sourceSnapshot`\" pulumi-lang-python=\"`source_snapshot`\" pulumi-lang-yaml=\"`sourceSnapshot`\" pulumi-lang-java=\"`sourceSnapshot`\"\u003e`source_snapshot`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n","willReplaceOnChanges":true},"sourceImageEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceTemplateDiskSourceImageEncryptionKey:InstanceTemplateDiskSourceImageEncryptionKey","description":"The customer-supplied encryption\nkey of the source image. Required if the source image is protected by a\ncustomer-supplied encryption key.\n\nInstance templates do not store customer-supplied encryption keys, so you\ncannot create disks for instances in a managed instance group if the source\nimages are encrypted with your own keys. Structure\ndocumented below.\n","willReplaceOnChanges":true},"sourceSnapshot":{"type":"string","description":"The source snapshot to create this disk.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`sourceSnapshot`\" pulumi-lang-dotnet=\"`SourceSnapshot`\" pulumi-lang-go=\"`sourceSnapshot`\" pulumi-lang-python=\"`source_snapshot`\" pulumi-lang-yaml=\"`sourceSnapshot`\" pulumi-lang-java=\"`sourceSnapshot`\"\u003e`source_snapshot`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n","willReplaceOnChanges":true},"sourceSnapshotEncryptionKey":{"$ref":"#/types/gcp:compute/InstanceTemplateDiskSourceSnapshotEncryptionKey:InstanceTemplateDiskSourceSnapshotEncryptionKey","description":"The customer-supplied encryption\nkey of the source snapshot. Structure\ndocumented below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of GCE disk, can be either `\"SCRATCH\"` or\n`\"PERSISTENT\"`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["architecture","boot","deviceName","diskSizeGb","diskType","interface","mode","provisionedIops","provisionedThroughput","sourceImage","type"]}}},"gcp:compute/InstanceTemplateDiskDiskEncryptionKey:InstanceTemplateDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the\nencryption request for the given KMS key. If absent, the Compute Engine\ndefault service account is used.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceTemplateDiskSourceImageEncryptionKey:InstanceTemplateDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is\nstored in Google Cloud KMS. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the\nencryption request for the given KMS key. If absent, the Compute Engine\ndefault service account is used.\n","willReplaceOnChanges":true},"rawKey":{"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 decrypt the given image. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to decrypt the given image. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceTemplateDiskSourceSnapshotEncryptionKey:InstanceTemplateDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is\nstored in Google Cloud KMS. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the\nencryption request for the given KMS key. If absent, the Compute Engine\ndefault service account is used.\n","willReplaceOnChanges":true},"rawKey":{"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 decrypt this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to decrypt this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceTemplateGuestAccelerator:InstanceTemplateGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"]},"gcp:compute/InstanceTemplateIamBindingCondition:InstanceTemplateIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/InstanceTemplateIamMemberCondition:InstanceTemplateIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/InstanceTemplateNetworkInterface:InstanceTemplateNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceTemplateNetworkInterfaceAccessConfig:InstanceTemplateNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this\ninstance can be accessed via the Internet. Omit to ensure that the instance\nis not accessible from the Internet (this means that ssh provisioners will\nnot work unless you can send traffic to the instance's\nnetwork (e.g. via tunnel or because it is running on another cloud instance\non that network). This block can be specified once per \u003cspan pulumi-lang-nodejs=\"`networkInterface`\" pulumi-lang-dotnet=\"`NetworkInterface`\" pulumi-lang-go=\"`networkInterface`\" pulumi-lang-python=\"`network_interface`\" pulumi-lang-yaml=\"`networkInterface`\" pulumi-lang-java=\"`networkInterface`\"\u003e`network_interface`\u003c/span\u003e. Structure documented below.\n","willReplaceOnChanges":true},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceTemplateNetworkInterfaceAliasIpRange:InstanceTemplateNetworkInterfaceAliasIpRange"},"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","willReplaceOnChanges":true},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n","willReplaceOnChanges":true},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceTemplateNetworkInterfaceIpv6AccessConfig:InstanceTemplateNetworkInterfaceIpv6AccessConfig"},"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","willReplaceOnChanges":true},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n","willReplaceOnChanges":true},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the instance template. If you leave\nthis blank, the provider will auto-generate a unique name.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network to attach this interface to.\nUse \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e attribute for Legacy or Auto subnetted networks and\n\u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e for custom subnetted networks.\n","willReplaceOnChanges":true},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.\n","willReplaceOnChanges":true},"networkIp":{"type":"string","description":"The private IP address to assign to the instance. If\nempty, the address will be automatically assigned.\n","willReplaceOnChanges":true},"nicType":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.\n","willReplaceOnChanges":true},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"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, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"the name of the subnetwork to attach this interface\nto. The subnetwork must exist in the same \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e this instance will be\ncreated in. Either \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e must be provided.\n","willReplaceOnChanges":true},"subnetworkProject":{"type":"string","description":"The ID of the project in which the subnetwork belongs.\nIf it is not provided, the provider project is used.\n","willReplaceOnChanges":true},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["igmpQuery","internalIpv6PrefixLength","ipv6AccessType","ipv6Address","name","network","networkAttachment","parentNicName","stackType","subnetwork","subnetworkProject"]}}},"gcp:compute/InstanceTemplateNetworkInterfaceAccessConfig:InstanceTemplateNetworkInterfaceAccessConfig":{"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","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the\nsubnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.\n","willReplaceOnChanges":true},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["natIp","networkTier","publicPtrDomainName"]}}},"gcp:compute/InstanceTemplateNetworkInterfaceAliasIpRange:InstanceTemplateNetworkInterfaceAliasIpRange":{"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. At the time of writing only a\nnetmask (e.g. /24) may be supplied, with a CIDR format resulting in an API\nerror.\n","willReplaceOnChanges":true},"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","willReplaceOnChanges":true}},"type":"object","required":["ipCidrRange"]},"gcp:compute/InstanceTemplateNetworkInterfaceIpv6AccessConfig:InstanceTemplateNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the instance template. If you leave\nthis blank, the provider will auto-generate a unique name.\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6\n","willReplaceOnChanges":true},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n","willReplaceOnChanges":true}},"type":"object","required":["networkTier"],"language":{"nodejs":{"requiredOutputs":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName"]}}},"gcp:compute/InstanceTemplateNetworkPerformanceConfig:InstanceTemplateNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT\n","willReplaceOnChanges":true}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:compute/InstanceTemplateReservationAffinity:InstanceTemplateReservationAffinity":{"properties":{"specificReservation":{"$ref":"#/types/gcp:compute/InstanceTemplateReservationAffinitySpecificReservation:InstanceTemplateReservationAffinitySpecificReservation","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/InstanceTemplateReservationAffinitySpecificReservation:InstanceTemplateReservationAffinitySpecificReservation":{"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/InstanceTemplateScheduling:InstanceTemplateScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies whether the instance should be\nautomatically restarted if it is terminated by Compute Engine (not\nterminated by a user). This defaults to true.\n","willReplaceOnChanges":true},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.\n","willReplaceOnChanges":true},"gracefulShutdown":{"$ref":"#/types/gcp:compute/InstanceTemplateSchedulingGracefulShutdown:InstanceTemplateSchedulingGracefulShutdown","description":"Beta Settings for the instance to perform a graceful shutdown. Structure is documented below.\n","willReplaceOnChanges":true},"hostErrorTimeoutSeconds":{"type":"integer","description":"Beta Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.\n","willReplaceOnChanges":true},"instanceTerminationAction":{"type":"string","description":"Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`.  Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n","willReplaceOnChanges":true},"localSsdRecoveryTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceTemplateSchedulingLocalSsdRecoveryTimeout:InstanceTemplateSchedulingLocalSsdRecoveryTimeout"},"description":"(../guides/provider_versions.html.markdown) Specifies the maximum amount of time a Local Ssd Vm should wait while recovery of the Local Ssd state is attempted. Its value should be in between 0 and 168 hours with hour granularity and the default value being 1 hour. Structure is documented below.\n","willReplaceOnChanges":true},"maintenanceInterval":{"type":"string","description":"Beta Specifies the frequency of planned maintenance events. The accepted values are: `PERIODIC`.\n","willReplaceOnChanges":true},"maxRunDuration":{"$ref":"#/types/gcp:compute/InstanceTemplateSchedulingMaxRunDuration:InstanceTemplateSchedulingMaxRunDuration","description":"The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in \u003cspan pulumi-lang-nodejs=\"`instanceTerminationAction`\" pulumi-lang-dotnet=\"`InstanceTerminationAction`\" pulumi-lang-go=\"`instanceTerminationAction`\" pulumi-lang-python=\"`instance_termination_action`\" pulumi-lang-yaml=\"`instanceTerminationAction`\" pulumi-lang-java=\"`instanceTerminationAction`\"\u003e`instance_termination_action`\u003c/span\u003e. Structure is documented below.\n","willReplaceOnChanges":true},"minNodeCpus":{"type":"integer","description":"Minimum number of cpus for the instance.\n","willReplaceOnChanges":true},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InstanceTemplateSchedulingNodeAffinity:InstanceTemplateSchedulingNodeAffinity"},"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","willReplaceOnChanges":true},"onHostMaintenance":{"type":"string","description":"Defines the maintenance behavior for this\ninstance.\n","willReplaceOnChanges":true},"onInstanceStopAction":{"$ref":"#/types/gcp:compute/InstanceTemplateSchedulingOnInstanceStopAction:InstanceTemplateSchedulingOnInstanceStopAction","description":"Specifies the action to be performed when the instance is terminated using \u003cspan pulumi-lang-nodejs=\"`maxRunDuration`\" pulumi-lang-dotnet=\"`MaxRunDuration`\" pulumi-lang-go=\"`maxRunDuration`\" pulumi-lang-python=\"`max_run_duration`\" pulumi-lang-yaml=\"`maxRunDuration`\" pulumi-lang-java=\"`maxRunDuration`\"\u003e`max_run_duration`\u003c/span\u003e and `STOP` \u003cspan pulumi-lang-nodejs=\"`instanceTerminationAction`\" pulumi-lang-dotnet=\"`InstanceTerminationAction`\" pulumi-lang-go=\"`instanceTerminationAction`\" pulumi-lang-python=\"`instance_termination_action`\" pulumi-lang-yaml=\"`instanceTerminationAction`\" pulumi-lang-java=\"`instanceTerminationAction`\"\u003e`instance_termination_action`\u003c/span\u003e. Only support \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`discardLocalSsd`\" pulumi-lang-dotnet=\"`DiscardLocalSsd`\" pulumi-lang-go=\"`discardLocalSsd`\" pulumi-lang-python=\"`discard_local_ssd`\" pulumi-lang-yaml=\"`discardLocalSsd`\" pulumi-lang-java=\"`discardLocalSsd`\"\u003e`discard_local_ssd`\u003c/span\u003e at this point. Structure is documented below.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Allows instance to be preempted. This defaults to\nfalse. Read more on this\n[here](https://cloud.google.com/compute/docs/instances/preemptible).\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\u003cspan pulumi-lang-nodejs=\"`preemptible`\" pulumi-lang-dotnet=\"`Preemptible`\" pulumi-lang-go=\"`preemptible`\" pulumi-lang-python=\"`preemptible`\" pulumi-lang-yaml=\"`preemptible`\" pulumi-lang-java=\"`preemptible`\"\u003e`preemptible`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`automaticRestart`\" pulumi-lang-dotnet=\"`AutomaticRestart`\" pulumi-lang-go=\"`automaticRestart`\" pulumi-lang-python=\"`automatic_restart`\" pulumi-lang-yaml=\"`automaticRestart`\" pulumi-lang-java=\"`automaticRestart`\"\u003e`automatic_restart`\u003c/span\u003e should be\n\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. For more info about\n`SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)\n","willReplaceOnChanges":true},"skipGuestOsShutdown":{"type":"boolean","description":"Beta Boolean parameter. Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["onHostMaintenance","provisioningModel"]}}},"gcp:compute/InstanceTemplateSchedulingGracefulShutdown:InstanceTemplateSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n","willReplaceOnChanges":true},"maxDuration":{"$ref":"#/types/gcp:compute/InstanceTemplateSchedulingGracefulShutdownMaxDuration:InstanceTemplateSchedulingGracefulShutdownMaxDuration","description":"The time allotted for the instance to gracefully shut down.\nIf the graceful shutdown isn't complete after this time, then the instance\ntransitions to the STOPPING state. Structure is documented below:\n"}},"type":"object","required":["enabled"]},"gcp:compute/InstanceTemplateSchedulingGracefulShutdownMaxDuration:InstanceTemplateSchedulingGracefulShutdownMaxDuration":{"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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e 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.\nThe value must be between 1 and 3600, which is 3,600 seconds (one hour).`\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"]},"gcp:compute/InstanceTemplateSchedulingLocalSsdRecoveryTimeout:InstanceTemplateSchedulingLocalSsdRecoveryTimeout":{"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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e 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/InstanceTemplateSchedulingMaxRunDuration:InstanceTemplateSchedulingMaxRunDuration":{"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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e 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/InstanceTemplateSchedulingNodeAffinity:InstanceTemplateSchedulingNodeAffinity":{"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":"Corresponds to the label values of a reservation resource.\n"}},"type":"object","required":["key","operator","values"]},"gcp:compute/InstanceTemplateSchedulingOnInstanceStopAction:InstanceTemplateSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"Whether to discard local SSDs attached to the VM while terminating using \u003cspan pulumi-lang-nodejs=\"`maxRunDuration`\" pulumi-lang-dotnet=\"`MaxRunDuration`\" pulumi-lang-go=\"`maxRunDuration`\" pulumi-lang-python=\"`max_run_duration`\" pulumi-lang-yaml=\"`maxRunDuration`\" pulumi-lang-java=\"`maxRunDuration`\"\u003e`max_run_duration`\u003c/span\u003e. Only supports \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e at this point.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstanceTemplateServiceAccount:InstanceTemplateServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address. If not given, the\ndefault Google Compute Engine service account is used.\n","willReplaceOnChanges":true},"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\nThe [service accounts documentation](https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam)\nexplains that access scopes are the legacy method of specifying permissions for your instance.\nTo follow best practices you should create a dedicated service account with the minimum permissions the VM requires.\nTo use a dedicated service account this field should be configured as a list containing the `cloud-platform` scope.\nSee [Authenticate workloads using service accounts best practices](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#best_practices)\nand [Best practices for using service accounts](https://cloud.google.com/iam/docs/best-practices-service-accounts#single-purpose).\n","willReplaceOnChanges":true}},"type":"object","required":["scopes"],"language":{"nodejs":{"requiredOutputs":["email","scopes"]}}},"gcp:compute/InstanceTemplateShieldedInstanceConfig:InstanceTemplateShieldedInstanceConfig":{"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","willReplaceOnChanges":true},"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","willReplaceOnChanges":true},"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","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/InstantSnapshotIamBindingCondition:InstantSnapshotIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/InstantSnapshotIamMemberCondition:InstantSnapshotIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/InterconnectApplicationAwareInterconnect:InterconnectApplicationAwareInterconnect":{"properties":{"bandwidthPercentagePolicy":{"$ref":"#/types/gcp:compute/InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy:InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy","description":"(Optional, Beta)\nBandwidth Percentage policy allows you to have granular control over how your Interconnect\nbandwidth is utilized among your workloads mapping to different traffic classes.\nStructure is documented below.\n"},"profileDescription":{"type":"string","description":"(Optional, Beta)\nA description for the AAI profile on this interconnect.\n"},"shapeAveragePercentages":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectApplicationAwareInterconnectShapeAveragePercentage:InterconnectApplicationAwareInterconnectShapeAveragePercentage"},"description":"(Optional, Beta)\nOptional field to specify a list of shape average percentages to be\napplied in conjunction with StrictPriorityPolicy or BandwidthPercentagePolicy\nStructure is documented below.\n"},"strictPriorityPolicy":{"$ref":"#/types/gcp:compute/InterconnectApplicationAwareInterconnectStrictPriorityPolicy:InterconnectApplicationAwareInterconnectStrictPriorityPolicy","description":"(Optional, Beta)\nSpecify configuration for StrictPriorityPolicy.\n"}},"type":"object"},"gcp:compute/InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy:InterconnectApplicationAwareInterconnectBandwidthPercentagePolicy":{"properties":{"bandwidthPercentages":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectApplicationAwareInterconnectBandwidthPercentagePolicyBandwidthPercentage:InterconnectApplicationAwareInterconnectBandwidthPercentagePolicyBandwidthPercentage"},"description":"(Optional, Beta)\nSpecify bandwidth percentages for various traffic classes for queuing\ntype Bandwidth Percent.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/InterconnectApplicationAwareInterconnectBandwidthPercentagePolicyBandwidthPercentage:InterconnectApplicationAwareInterconnectBandwidthPercentagePolicyBandwidthPercentage":{"properties":{"percentage":{"type":"integer","description":"(Optional, Beta)\nBandwidth percentage for a specific traffic class.\n"},"trafficClass":{"type":"string","description":"(Optional, Beta)\nEnum representing the various traffic classes offered by AAI.\nDefault value is `TC_UNSPECIFIED`.\nPossible values are: `TC_UNSPECIFIED`, `TC1`, `TC2`, `TC3`, `TC4`, `TC5`, `TC6`.\n"}},"type":"object"},"gcp:compute/InterconnectApplicationAwareInterconnectShapeAveragePercentage:InterconnectApplicationAwareInterconnectShapeAveragePercentage":{"properties":{"percentage":{"type":"integer","description":"(Optional, Beta)\nBandwidth percentage for a specific traffic class.\n"},"trafficClass":{"type":"string","description":"(Optional, Beta)\nEnum representing the various traffic classes offered by AAI.\nDefault value is `TC_UNSPECIFIED`.\nPossible values are: `TC_UNSPECIFIED`, `TC1`, `TC2`, `TC3`, `TC4`, `TC5`, `TC6`.\n"}},"type":"object"},"gcp:compute/InterconnectApplicationAwareInterconnectStrictPriorityPolicy:InterconnectApplicationAwareInterconnectStrictPriorityPolicy":{"type":"object"},"gcp:compute/InterconnectAttachmentGroupAttachment:InterconnectAttachmentGroupAttachment":{"properties":{"attachment":{"type":"string","description":"(Optional)\n"},"name":{"type":"string","description":"The identifier for this object. Format specified above.\n"}},"type":"object","required":["name"]},"gcp:compute/InterconnectAttachmentGroupConfigured:InterconnectAttachmentGroupConfigured":{"properties":{"availabilitySlas":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentGroupConfiguredAvailabilitySla:InterconnectAttachmentGroupConfiguredAvailabilitySla"},"description":"(Output)\nWhich SLA this group is configured to support, and why this\ngroup does or does not meet that SLA's requirements.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["availabilitySlas"]}}},"gcp:compute/InterconnectAttachmentGroupConfiguredAvailabilitySla:InterconnectAttachmentGroupConfiguredAvailabilitySla":{"properties":{"effectiveSla":{"type":"string","description":"(Output)\nWhich SLA this group supports. Options are the same as the\nintent.\n"},"intendedSlaBlockers":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker:InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker"},"description":"(Output)\nReasons why configuration.availabilitySLA.sla differs from\nintent.availabilitySLA. This list is empty if and only if those are the\nsame.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["effectiveSla","intendedSlaBlockers"]}}},"gcp:compute/InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker:InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker":{"properties":{"attachments":{"type":"array","items":{"type":"string"},"description":"Attachments in the AttachmentGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Attachments per group\" quota.\nStructure is documented below.\n"},"blockerType":{"type":"string","description":"(Output)\nThe category of an unmet SLA requirement.\n"},"documentationLink":{"type":"string","description":"(Output)\nThe url of Google Cloud public documentation explaining\nthis requirement. This is set for every type of requirement.\n"},"explanation":{"type":"string","description":"(Output)\nA human-readable explanation of this requirement and\nwhy it's not met. This is set for every type of requirement.\n"},"metros":{"type":"array","items":{"type":"string"},"description":"(Output)\nMetros used to explain this blocker in more detail.\nThese are three-letter lowercase strings like \"iad\". This will be set\nfor some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does\nnot apply to others.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"(Output)\nRegions used to explain this blocker in more\ndetail. These are region names formatted like \"us-central1\". This\nwill be set for some blockers (like INCOMPATIBLE_REGIONS) but does\nnot apply to others.\n"},"zones":{"type":"array","items":{"type":"string"},"description":"(Output)\nZones used to explain this blocker in more detail.\nFormat is \"zone1\" and/or \"zone2\". This will be set for some blockers\n(like  MISSING_ZONE) but does not apply to others.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["attachments","blockerType","documentationLink","explanation","metros","regions","zones"]}}},"gcp:compute/InterconnectAttachmentGroupIntent:InterconnectAttachmentGroupIntent":{"properties":{"availabilitySla":{"type":"string","description":"Which SLA the user intends this group to support.\nPossible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.\n"}},"type":"object"},"gcp:compute/InterconnectAttachmentGroupLogicalStructure:InterconnectAttachmentGroupLogicalStructure":{"properties":{"regions":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentGroupLogicalStructureRegion:InterconnectAttachmentGroupLogicalStructureRegion"},"description":"(Output)\nRegions used to explain this blocker in more\ndetail. These are region names formatted like \"us-central1\". This\nwill be set for some blockers (like INCOMPATIBLE_REGIONS) but does\nnot apply to others.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["regions"]}}},"gcp:compute/InterconnectAttachmentGroupLogicalStructureRegion:InterconnectAttachmentGroupLogicalStructureRegion":{"properties":{"metros":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentGroupLogicalStructureRegionMetro:InterconnectAttachmentGroupLogicalStructureRegionMetro"},"description":"(Output)\nMetros used to explain this blocker in more detail.\nThese are three-letter lowercase strings like \"iad\". This will be set\nfor some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does\nnot apply to others.\n"},"region":{"type":"string","description":"(Output)\nThe name of a region, like \"us-central1\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["metros","region"]}}},"gcp:compute/InterconnectAttachmentGroupLogicalStructureRegionMetro:InterconnectAttachmentGroupLogicalStructureRegionMetro":{"properties":{"facilities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentGroupLogicalStructureRegionMetroFacility:InterconnectAttachmentGroupLogicalStructureRegionMetroFacility"},"description":"(Output)\nThe facilities used for this group's Attachments'\nInterconnects.\nStructure is documented below.\n"},"metro":{"type":"string","description":"(Output)\nThe name of the metro, as a three-letter lowercase\nstring like \"iad\". This is the first component of the location of an\nInterconnect.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["facilities","metro"]}}},"gcp:compute/InterconnectAttachmentGroupLogicalStructureRegionMetroFacility:InterconnectAttachmentGroupLogicalStructureRegionMetroFacility":{"properties":{"facility":{"type":"string","description":"(Output)\nThe name of a facility, like \"iad-1234\".\n"},"zones":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone:InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone"},"description":"(Output)\nZones used to explain this blocker in more detail.\nFormat is \"zone1\" and/or \"zone2\". This will be set for some blockers\n(like  MISSING_ZONE) but does not apply to others.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["facility","zones"]}}},"gcp:compute/InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone:InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone":{"properties":{"attachment":{"type":"array","items":{"type":"string"},"description":"(Output, Deprecated)\nURLs of Attachments in the given zone, to the given\nregion, on Interconnects in the given facility and metro. Every\nAttachment in the AG has such an entry.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`attachment`\" pulumi-lang-dotnet=\"`Attachment`\" pulumi-lang-go=\"`attachment`\" pulumi-lang-python=\"`attachment`\" pulumi-lang-yaml=\"`attachment`\" pulumi-lang-java=\"`attachment`\"\u003e`attachment`\u003c/span\u003e is deprecated and will be removed in a future major release. Use \u003cspan pulumi-lang-nodejs=\"`attachments`\" pulumi-lang-dotnet=\"`Attachments`\" pulumi-lang-go=\"`attachments`\" pulumi-lang-python=\"`attachments`\" pulumi-lang-yaml=\"`attachments`\" pulumi-lang-java=\"`attachments`\"\u003e`attachments`\u003c/span\u003e instead."},"attachments":{"type":"array","items":{"type":"string"},"description":"Attachments in the AttachmentGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Attachments per group\" quota.\nStructure is documented below.\n"},"zone":{"type":"string","description":"(Output)\nThe zones that Attachments in this group are present\nin, in the given facilities.  This is inherited from their\nInterconnects.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["attachment","attachments","zone"]}}},"gcp:compute/InterconnectAttachmentL2Forwarding:InterconnectAttachmentL2Forwarding":{"properties":{"applianceMappings":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentL2ForwardingApplianceMapping:InterconnectAttachmentL2ForwardingApplianceMapping"},"description":"A map of VLAN tags to appliances and optional inner mapping rules.\n"},"defaultApplianceIpAddress":{"type":"string","description":"The default appliance IP address.\n"},"geneveHeader":{"$ref":"#/types/gcp:compute/InterconnectAttachmentL2ForwardingGeneveHeader:InterconnectAttachmentL2ForwardingGeneveHeader","description":"GeneveHeader related configurations.\n"},"network":{"type":"string","description":"URL of the network to which this attachment belongs.\n"},"tunnelEndpointIpAddress":{"type":"string","description":"The tunnel endpoint IP address.\n"}},"type":"object"},"gcp:compute/InterconnectAttachmentL2ForwardingApplianceMapping:InterconnectAttachmentL2ForwardingApplianceMapping":{"properties":{"applianceIpAddress":{"type":"string","description":"The appliance IP address.\n"},"innerVlanToApplianceMappings":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping:InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping"},"description":"Structure is documented below.\n"},"name":{"type":"string","description":"The name of this appliance mapping rule.\n"},"vlanId":{"type":"string","description":"The VLAN tag.\n"}},"type":"object"},"gcp:compute/InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping:InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping":{"properties":{"innerApplianceIpAddress":{"type":"string","description":"The inner appliance IP address.\n"},"innerVlanTags":{"type":"array","items":{"type":"string"},"description":"List of inner VLAN tags.\n"}},"type":"object"},"gcp:compute/InterconnectAttachmentL2ForwardingGeneveHeader:InterconnectAttachmentL2ForwardingGeneveHeader":{"properties":{"vni":{"type":"integer","description":"VNI is a 24-bit unique virtual network identifier.\n"}},"type":"object"},"gcp:compute/InterconnectAttachmentParams:InterconnectAttachmentParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the interconnect attachment. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedL2Forwarding\"\" pulumi-lang-dotnet=\"\"NestedL2Forwarding\"\" pulumi-lang-go=\"\"nestedL2Forwarding\"\" pulumi-lang-python=\"\"nested_l2_forwarding\"\" pulumi-lang-yaml=\"\"nestedL2Forwarding\"\" pulumi-lang-java=\"\"nestedL2Forwarding\"\"\u003e\"nested_l2_forwarding\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`l2Forwarding`\" pulumi-lang-dotnet=\"`L2Forwarding`\" pulumi-lang-go=\"`l2Forwarding`\" pulumi-lang-python=\"`l2_forwarding`\" pulumi-lang-yaml=\"`l2Forwarding`\" pulumi-lang-java=\"`l2Forwarding`\"\u003e`l2_forwarding`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:compute/InterconnectAttachmentPrivateInterconnectInfo:InterconnectAttachmentPrivateInterconnectInfo":{"properties":{"tag8021q":{"type":"integer","description":"(Output)\n802.1q encapsulation tag to be used for traffic between\nGoogle and the customer, going to and from this network and region.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["tag8021q"]}}},"gcp:compute/InterconnectCircuitInfo:InterconnectCircuitInfo":{"properties":{"customerDemarcId":{"type":"string","description":"(Output)\nCustomer-side demarc ID for this circuit.\n"},"googleCircuitId":{"type":"string","description":"(Output)\nGoogle-assigned unique ID for this circuit. Assigned at circuit turn-up.\n"},"googleDemarcId":{"type":"string","description":"(Output)\nGoogle-side demarc ID for this circuit. Assigned at circuit turn-up and provided by\nGoogle to the customer in the LOA.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["customerDemarcId","googleCircuitId","googleDemarcId"]}}},"gcp:compute/InterconnectExpectedOutage:InterconnectExpectedOutage":{"properties":{"affectedCircuits":{"type":"array","items":{"type":"string"},"description":"(Output)\nIf issueType is IT_PARTIAL_OUTAGE, a list of the Google-side circuit IDs that will be\naffected.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.\n"},"endTime":{"type":"string","description":"(Output)\nScheduled end time for the outage (milliseconds since Unix epoch).\n"},"issueType":{"type":"string","description":"(Output)\nForm this outage is expected to take. Note that the versions of this enum prefixed with\n\"IT_\" have been deprecated in favor of the unprefixed values. Can take one of the\nfollowing values:\n- OUTAGE: The Interconnect may be completely out of service for some or all of the\nspecified window.\n- PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a whole should remain\nup, but with reduced bandwidth.\n"},"name":{"type":"string","description":"Name of the resource. Provided by the client when the resource is created. The name must be\n1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression `a-z?` which means the first\ncharacter must be a lowercase letter, and all following characters must be a dash,\nlowercase letter, or digit, except the last character, which cannot be a dash.\n"},"source":{"type":"string","description":"(Output)\nThe party that generated this notification. Note that the value of NSRC_GOOGLE has been\ndeprecated in favor of GOOGLE. Can take the following value:\n- GOOGLE: this notification as generated by Google.\n"},"startTime":{"type":"string","description":"(Output)\nScheduled start time for the outage (milliseconds since Unix epoch).\n"},"state":{"type":"string","description":"(Output)\nState of this notification. Note that the versions of this enum prefixed with \"NS_\" have\nbeen deprecated in favor of the unprefixed values. Can take one of the following values:\n- ACTIVE: This outage notification is active. The event could be in the past, present,\nor future. See startTime and endTime for scheduling.\n- CANCELLED: The outage associated with this notification was cancelled before the\noutage was due to start.\n- COMPLETED: The outage associated with this notification is complete.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["affectedCircuits","description","endTime","issueType","name","source","startTime","state"]}}},"gcp:compute/InterconnectGroupConfigured:InterconnectGroupConfigured":{"properties":{"topologyCapabilities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectGroupConfiguredTopologyCapability:InterconnectGroupConfiguredTopologyCapability"},"description":"(Output)\nHow reliable this topology is configured to be, and why\nthis group does or does not meet the requirements for the intended\ncapability.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["topologyCapabilities"]}}},"gcp:compute/InterconnectGroupConfiguredTopologyCapability:InterconnectGroupConfiguredTopologyCapability":{"properties":{"intendedCapabilityBlockers":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker:InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker"},"description":"(Output)\nReasons why configuration.topologyCapability.sla differs\nfrom intent.topologyCapability. This list is empty if and only if those\nare the same.\nStructure is documented below.\n"},"supportedSla":{"type":"string","description":"(Output)\nWhich level of reliability this group is configured to\nsupport.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["intendedCapabilityBlockers","supportedSla"]}}},"gcp:compute/InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker:InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker":{"properties":{"blockerType":{"type":"string","description":"(Output)\nThe category of an unmet SLA requirement. The Intended\nSLA Blockers section below explains this field and how it relates to\nother fields in intendedCapabilityBlockers.\n"},"documentationLink":{"type":"string","description":"(Output)\nThe url of Google Cloud public documentation explaining\nthis requirement. This is set for every type of requirement.\n"},"explanation":{"type":"string","description":"(Output)\nA human-readable explanation of this requirement and\nwhy it's not met. This is set for every type of requirement.\n"},"facilities":{"type":"array","items":{"type":"string"},"description":"(Output)\nFacilities used to explain this blocker in more detail.\nLike physicalStructure.metros.facilities.facility, this is a numeric\nstring like \"5467\".\n"},"interconnects":{"type":"array","items":{"type":"string"},"description":"Interconnects in the InterconnectGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Interconnects per group\" quota.\nStructure is documented below.\n"},"metros":{"type":"array","items":{"type":"string"},"description":"(Output)\nMetros used to explain this blocker in more detail.\nThese are three-letter lowercase strings like \"iad\". A blocker like\nINCOMPATIBLE_METROS will specify the problematic metros in this\nfield.\n"},"zones":{"type":"array","items":{"type":"string"},"description":"(Output)\nZones used to explain this blocker in more detail.\nZone names are \"zone1\" and/or \"zone2\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["blockerType","documentationLink","explanation","facilities","interconnects","metros","zones"]}}},"gcp:compute/InterconnectGroupIntent:InterconnectGroupIntent":{"properties":{"topologyCapability":{"type":"string","description":"The reliability the user intends this group to be capable of, in terms\nof the Interconnect product SLAs.\nPossible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.\n"}},"type":"object"},"gcp:compute/InterconnectGroupInterconnect:InterconnectGroupInterconnect":{"properties":{"interconnect":{"type":"string","description":"The URL of an Interconnect in this group. All Interconnects in the group are unique.\n"},"name":{"type":"string","description":"The identifier for this object. Format specified above.\n"}},"type":"object","required":["name"]},"gcp:compute/InterconnectGroupPhysicalStructure:InterconnectGroupPhysicalStructure":{"properties":{"metros":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectGroupPhysicalStructureMetro:InterconnectGroupPhysicalStructureMetro"},"description":"(Output)\nMetros used to explain this blocker in more detail.\nThese are three-letter lowercase strings like \"iad\". A blocker like\nINCOMPATIBLE_METROS will specify the problematic metros in this\nfield.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["metros"]}}},"gcp:compute/InterconnectGroupPhysicalStructureMetro:InterconnectGroupPhysicalStructureMetro":{"properties":{"facilities":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectGroupPhysicalStructureMetroFacility:InterconnectGroupPhysicalStructureMetroFacility"},"description":"(Output)\nFacilities used to explain this blocker in more detail.\nLike physicalStructure.metros.facilities.facility, this is a numeric\nstring like \"5467\".\n"},"metro":{"type":"string","description":"(Output)\nThe name of the metro, as a three-letter lowercase string\nlike \"iad\". This is the first component of the location of\nInterconnects underneath this.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["facilities","metro"]}}},"gcp:compute/InterconnectGroupPhysicalStructureMetroFacility:InterconnectGroupPhysicalStructureMetroFacility":{"properties":{"facility":{"type":"string","description":"(Output)\nThe ID of this facility, as a numeric string like\n\"5467\". This is the third component of the location of Interconnects\nin this facility.\n"},"zones":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectGroupPhysicalStructureMetroFacilityZone:InterconnectGroupPhysicalStructureMetroFacilityZone"},"description":"(Output)\nZones used to explain this blocker in more detail.\nZone names are \"zone1\" and/or \"zone2\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["facility","zones"]}}},"gcp:compute/InterconnectGroupPhysicalStructureMetroFacilityZone:InterconnectGroupPhysicalStructureMetroFacilityZone":{"properties":{"interconnects":{"type":"array","items":{"type":"string"},"description":"Interconnects in the InterconnectGroup. Keys are arbitrary user-specified\nstrings. Users are encouraged, but not required, to use their preferred\nformat for resource links as keys.\nNote that there are add-members and remove-members methods in gcloud.\nThe size of this map is limited by an \"Interconnects per group\" quota.\nStructure is documented below.\n"},"zone":{"type":"string","description":"(Output)\nThe name of the zone, either \"zone1\" or \"zone2\".\nThis is the second component of the location of Interconnects in\nthis facility.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["interconnects","zone"]}}},"gcp:compute/InterconnectMacsec:InterconnectMacsec":{"properties":{"failOpen":{"type":"boolean","description":"If set to true, the Interconnect connection is configured with a should-secure\nMACsec security policy, that allows the Google router to fallback to cleartext\ntraffic if the MKA session cannot be established. By default, the Interconnect\nconnection is configured with a must-secure security policy that drops all traffic\nif the MKA session cannot be established with your router.\n"},"preSharedKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/InterconnectMacsecPreSharedKey:InterconnectMacsecPreSharedKey"},"description":"A keychain placeholder describing a set of named key objects along with their\nstart times. A MACsec CKN/CAK is generated for each key in the key chain.\nGoogle router automatically picks the key with the most recent startTime when establishing\nor re-establishing a MACsec secure link.\nStructure is documented below.\n"}},"type":"object","required":["preSharedKeys"]},"gcp:compute/InterconnectMacsecPreSharedKey:InterconnectMacsecPreSharedKey":{"properties":{"failOpen":{"type":"boolean","description":"(Optional, Deprecated)\nIf set to true, the Interconnect connection is configured with a should-secure\nMACsec security policy, that allows the Google router to fallback to cleartext\ntraffic if the MKA session cannot be established. By default, the Interconnect\nconnection is configured with a must-secure security policy that drops all traffic\nif the MKA session cannot be established with your router.\n\n\u003e **Warning:** `failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead.\n","deprecationMessage":"`failOpen` is deprecated and will be removed in a future major release. Use other `failOpen` instead."},"name":{"type":"string","description":"A name for this pre-shared key. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters long and match\nthe regular expression `a-z?` which means the first character\nmust be a lowercase letter, and all following characters must be a dash, lowercase\nletter, or digit, except the last character, which cannot be a dash.\n"},"startTime":{"type":"string","description":"A RFC3339 timestamp on or after which the key is valid. startTime can be in the\nfuture. If the keychain has a single key, startTime can be omitted. If the keychain\nhas multiple keys, startTime is mandatory for each key. The start times of keys must\nbe in increasing order. The start times of two consecutive keys must be at least 6\nhours apart.\n"}},"type":"object","required":["name"]},"gcp:compute/InterconnectParams:InterconnectParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the interconnect. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object"},"gcp:compute/MachineImageIamBindingCondition:MachineImageIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/MachineImageIamMemberCondition:MachineImageIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/MachineImageMachineImageEncryptionKey:MachineImageMachineImageEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the\ncustomer-supplied encryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/ManagedSslCertificateManaged:ManagedSslCertificateManaged":{"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Domains for which a managed SSL certificate will be valid.  Currently,\nthere can be up to 100 domains in this list.\n","willReplaceOnChanges":true}},"type":"object","required":["domains"]},"gcp:compute/MangedSslCertificateManaged:MangedSslCertificateManaged":{"properties":{"domains":{"type":"array","items":{"type":"string"},"description":"Domains for which a managed SSL certificate will be valid.  Currently,\nthere can be up to 100 domains in this list.\n","willReplaceOnChanges":true}},"type":"object","required":["domains"]},"gcp:compute/NetworkAttachmentConnectionEndpoint:NetworkAttachmentConnectionEndpoint":{"properties":{"ipAddress":{"type":"string","description":"(Output)\nThe IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.\n"},"projectIdOrNum":{"type":"string","description":"(Output)\nThe project id or number of the interface to which the IP was assigned.\n"},"secondaryIpCidrRanges":{"type":"string","description":"(Output)\nAlias IP ranges from the same subnetwork.\n"},"status":{"type":"string","description":"(Output)\nThe status of a connected endpoint to this network attachment.\n"},"subnetwork":{"type":"string","description":"(Output)\nThe subnetwork used to assign the IP to the producer instance network interface.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipAddress","projectIdOrNum","secondaryIpCidrRanges","status","subnetwork"]}}},"gcp:compute/NetworkEndpointListNetworkEndpoint:NetworkEndpointListNetworkEndpoint":{"properties":{"instance":{"type":"string","description":"The name for a specific VM instance that the IP address belongs to.\nThis is required for network endpoints of type GCE_VM_IP_PORT.\nThe instance must be in the same zone as the network endpoint group.\n"},"ipAddress":{"type":"string","description":"IPv4 address of network endpoint. The IP address must belong\nto a VM in GCE (either the primary IP or as part of an aliased IP\nrange).\n"},"port":{"type":"integer","description":"Port number of network endpoint.\n**Note** \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is required unless the Network Endpoint Group is created\nwith the type of `GCE_VM_IP`\n"}},"type":"object","required":["ipAddress"],"language":{"nodejs":{"requiredOutputs":["instance","ipAddress"]}}},"gcp:compute/NetworkFirewallPolicyPacketMirroringRuleMatch:NetworkFirewallPolicyPacketMirroringRuleMatch":{"properties":{"destIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyPacketMirroringRuleMatchLayer4Config:NetworkFirewallPolicyPacketMirroringRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-dotnet=\"\"NestedMatchLayer4Configs\"\" pulumi-lang-go=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-python=\"\"nested_match_layer4_configs\"\" pulumi-lang-yaml=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-java=\"\"nestedMatchLayer4Configs\"\"\u003e\"nested_match_layer4_configs\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Configs`\" pulumi-lang-dotnet=\"`Layer4Configs`\" pulumi-lang-go=\"`layer4Configs`\" pulumi-lang-python=\"`layer4_configs`\" pulumi-lang-yaml=\"`layer4Configs`\" pulumi-lang-java=\"`layer4Configs`\"\u003e`layer4_configs`\u003c/span\u003e block supports:\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/NetworkFirewallPolicyPacketMirroringRuleMatchLayer4Config:NetworkFirewallPolicyPacketMirroringRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.\nThis value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/NetworkFirewallPolicyPacketMirroringRuleTargetSecureTag:NetworkFirewallPolicyPacketMirroringRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\ndiff_suppress_func: 'tpgresource.CompareSelfLinkOrResourceName'\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/NetworkFirewallPolicyRuleMatch:NetworkFirewallPolicyRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.\n"},"destNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic destination.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyRuleMatchLayer4Config:NetworkFirewallPolicyRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.\n"},"srcNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic source.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"srcNetworks":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nNetworks of the traffic source. It can be either a full or partial url.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyRuleMatchSrcSecureTag:NetworkFirewallPolicyRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.\nStructure is documented below.\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-dotnet=\"\"NestedMatchLayer4Configs\"\" pulumi-lang-go=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-python=\"\"nested_match_layer4_configs\"\" pulumi-lang-yaml=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-java=\"\"nestedMatchLayer4Configs\"\"\u003e\"nested_match_layer4_configs\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Configs`\" pulumi-lang-dotnet=\"`Layer4Configs`\" pulumi-lang-go=\"`layer4Configs`\" pulumi-lang-python=\"`layer4_configs`\" pulumi-lang-yaml=\"`layer4Configs`\" pulumi-lang-java=\"`layer4Configs`\"\u003e`layer4_configs`\u003c/span\u003e block supports:\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/NetworkFirewallPolicyRuleMatchLayer4Config:NetworkFirewallPolicyRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.\nThis value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/NetworkFirewallPolicyRuleMatchSrcSecureTag:NetworkFirewallPolicyRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/NetworkFirewallPolicyRuleTargetSecureTag:NetworkFirewallPolicyRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRule:NetworkFirewallPolicyWithRulesPredefinedRule":{"properties":{"action":{"type":"string","description":"(Output)\nThe Action to perform when the client connection triggers the rule. Can currently be either\n\"allow\", \"deny\", \u003cspan pulumi-lang-nodejs=\"\"applySecurityProfileGroup\"\" pulumi-lang-dotnet=\"\"ApplySecurityProfileGroup\"\" pulumi-lang-go=\"\"applySecurityProfileGroup\"\" pulumi-lang-python=\"\"apply_security_profile_group\"\" pulumi-lang-yaml=\"\"applySecurityProfileGroup\"\" pulumi-lang-java=\"\"applySecurityProfileGroup\"\"\u003e\"apply_security_profile_group\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"gotoNext\"\" pulumi-lang-dotnet=\"\"GotoNext\"\" pulumi-lang-go=\"\"gotoNext\"\" pulumi-lang-python=\"\"goto_next\"\" pulumi-lang-yaml=\"\"gotoNext\"\" pulumi-lang-java=\"\"gotoNext\"\"\u003e\"goto_next\"\u003c/span\u003e.\n"},"description":{"type":"string","description":"An optional description of this resource.\n"},"direction":{"type":"string","description":"(Output)\nThe direction in which this rule applies. If unspecified an INGRESS rule is created.\n"},"disabled":{"type":"boolean","description":"(Output)\nDenotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.\n"},"enableLogging":{"type":"boolean","description":"(Output)\nDenotes whether to enable logging for a particular rule.\nIf logging is enabled, logs will be exported to the\nconfigured export destination in Stackdriver.\n"},"matches":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleMatch:NetworkFirewallPolicyWithRulesPredefinedRuleMatch"},"description":"(Output)\nA match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"(Output)\nAn integer indicating the priority of a rule in the list. The priority must be a value\nbetween 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.\n"},"ruleName":{"type":"string","description":"(Output)\nAn optional name for the rule. This field is not a unique identifier\nand can be updated.\n"},"securityProfileGroup":{"type":"string","description":"(Output)\nA fully-qualified URL of a SecurityProfile resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is 'apply_security_profile_group'.\n"},"targetSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag:NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag"},"description":"(Output)\nA list of secure tags that controls which instances the firewall rule\napplies to. If \u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the\u003cspan pulumi-lang-nodejs=\" targetSecureTag \" pulumi-lang-dotnet=\" TargetSecureTag \" pulumi-lang-go=\" targetSecureTag \" pulumi-lang-python=\" target_secure_tag \" pulumi-lang-yaml=\" targetSecureTag \" pulumi-lang-java=\" targetSecureTag \"\u003e target_secure_tag \u003c/span\u003eare in\nINEFFECTIVE state, then this rule will be ignored.\n\u003ccode\u003etargetSecureTag\u003c/code\u003e may not be set at the same time as\n\u003ccode\u003etargetServiceAccounts\u003c/code\u003e.\nIf neither \u003ccode\u003etargetServiceAccounts\u003c/code\u003e nor\n\u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target label tags allowed is 256.\nStructure is documented below.\n"},"targetServiceAccounts":{"type":"array","items":{"type":"string"},"description":"(Output)\nA list of service accounts indicating the sets of\ninstances that are applied with this rule.\n"},"tlsInspect":{"type":"boolean","description":"(Output)\nBoolean flag indicating if the traffic should be TLS decrypted.\nIt can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["action","description","direction","disabled","enableLogging","matches","priority","ruleName","securityProfileGroup","targetSecureTags","targetServiceAccounts","tlsInspect"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleMatch:NetworkFirewallPolicyWithRulesPredefinedRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of destination region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config:NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag:NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the \u003ccode\u003esrcSecureTag\u003c/code\u003e are INEFFECTIVE,\nand there is no \u003ccode\u003esrcIpRange\u003c/code\u003e, this rule will be ignored.\nMaximum number of source tag values allowed is 256.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedRuleMatchLayer4Config\"\" pulumi-lang-go=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-python=\"\"nested_rule_match_layer4_config\"\" pulumi-lang-yaml=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-java=\"\"nestedRuleMatchLayer4Config\"\"\u003e\"nested_rule_match_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["destAddressGroups","destFqdns","destIpRanges","destRegionCodes","destThreatIntelligences","layer4Configs","srcAddressGroups","srcFqdns","srcIpRanges","srcRegionCodes","srcSecureTags","srcThreatIntelligences"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config:NetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"(Output)\nThe IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"(Output)\nAn optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipProtocol","ports"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag:NetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","state"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag:NetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","state"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesRule:NetworkFirewallPolicyWithRulesRule":{"properties":{"action":{"type":"string","description":"The Action to perform when the client connection triggers the rule. Can currently be either\n\"allow\", \"deny\", \u003cspan pulumi-lang-nodejs=\"\"applySecurityProfileGroup\"\" pulumi-lang-dotnet=\"\"ApplySecurityProfileGroup\"\" pulumi-lang-go=\"\"applySecurityProfileGroup\"\" pulumi-lang-python=\"\"apply_security_profile_group\"\" pulumi-lang-yaml=\"\"applySecurityProfileGroup\"\" pulumi-lang-java=\"\"applySecurityProfileGroup\"\"\u003e\"apply_security_profile_group\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"gotoNext\"\" pulumi-lang-dotnet=\"\"GotoNext\"\" pulumi-lang-go=\"\"gotoNext\"\" pulumi-lang-python=\"\"goto_next\"\" pulumi-lang-yaml=\"\"gotoNext\"\" pulumi-lang-java=\"\"gotoNext\"\"\u003e\"goto_next\"\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description of the rule.\n"},"direction":{"type":"string","description":"The direction in which this rule applies. If unspecified an INGRESS rule is created.\nPossible values are: `INGRESS`, `EGRESS`.\n"},"disabled":{"type":"boolean","description":"Denotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.\n"},"enableLogging":{"type":"boolean","description":"Denotes whether to enable logging for a particular rule.\nIf logging is enabled, logs will be exported to the\nconfigured export destination in Stackdriver.\n"},"match":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesRuleMatch:NetworkFirewallPolicyWithRulesRuleMatch","description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"An integer indicating the priority of a rule in the list. The priority must be a value\nbetween 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.\n"},"ruleName":{"type":"string","description":"An optional name for the rule. This field is not a unique identifier\nand can be updated.\n"},"securityProfileGroup":{"type":"string","description":"A fully-qualified URL of a SecurityProfile resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is 'apply_security_profile_group'.\n"},"targetSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesRuleTargetSecureTag:NetworkFirewallPolicyWithRulesRuleTargetSecureTag"},"description":"A list of secure tags that controls which instances the firewall rule\napplies to. If \u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the\u003cspan pulumi-lang-nodejs=\" targetSecureTag \" pulumi-lang-dotnet=\" TargetSecureTag \" pulumi-lang-go=\" targetSecureTag \" pulumi-lang-python=\" target_secure_tag \" pulumi-lang-yaml=\" targetSecureTag \" pulumi-lang-java=\" targetSecureTag \"\u003e target_secure_tag \u003c/span\u003eare in\nINEFFECTIVE state, then this rule will be ignored.\n\u003ccode\u003etargetSecureTag\u003c/code\u003e may not be set at the same time as\n\u003ccode\u003etargetServiceAccounts\u003c/code\u003e.\nIf neither \u003ccode\u003etargetServiceAccounts\u003c/code\u003e nor\n\u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target label tags allowed is 256.\nStructure is documented below.\n"},"targetServiceAccounts":{"type":"array","items":{"type":"string"},"description":"A list of service accounts indicating the sets of\ninstances that are applied with this rule.\n"},"tlsInspect":{"type":"boolean","description":"Boolean flag indicating if the traffic should be TLS decrypted.\nIt can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.\n"}},"type":"object","required":["action","match","priority"]},"gcp:compute/NetworkFirewallPolicyWithRulesRuleMatch:NetworkFirewallPolicyWithRulesRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"destNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic destination.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of destination region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesRuleMatchLayer4Config:NetworkFirewallPolicyWithRulesRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"},"srcNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic source.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"srcNetworks":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nNetworks of the traffic source. It can be either a full or partial url.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag:NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the \u003ccode\u003esrcSecureTag\u003c/code\u003e are INEFFECTIVE,\nand there is no \u003ccode\u003esrcIpRange\u003c/code\u003e, this rule will be ignored.\nMaximum number of source tag values allowed is 256.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedRuleMatchLayer4Config\"\" pulumi-lang-go=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-python=\"\"nested_rule_match_layer4_config\"\" pulumi-lang-yaml=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-java=\"\"nestedRuleMatchLayer4Config\"\"\u003e\"nested_rule_match_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/NetworkFirewallPolicyWithRulesRuleMatchLayer4Config:NetworkFirewallPolicyWithRulesRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"(Output)\nThe IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"(Output)\nAn optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag:NetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/NetworkFirewallPolicyWithRulesRuleTargetSecureTag:NetworkFirewallPolicyWithRulesRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/NetworkParams:NetworkParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the network. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/NodeGroupAutoscalingPolicy:NodeGroupAutoscalingPolicy":{"properties":{"maxNodes":{"type":"integer","description":"Maximum size of the node group. Set to a value less than or equal\nto 100 and greater than or equal to min-nodes.\n"},"minNodes":{"type":"integer","description":"Minimum size of the node group. Must be less\nthan or equal to max-nodes. The default value is 0.\n"},"mode":{"type":"string","description":"The autoscaling mode. Set to one of the following:\n- OFF: Disables the autoscaler.\n- ON: Enables scaling in and scaling out.\n- ONLY_SCALE_OUT: Enables only scaling out.\nYou must use this mode if your node groups are configured to\nrestart their hosted VMs on minimal servers.\nPossible values are: `OFF`, `ON`, `ONLY_SCALE_OUT`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxNodes","minNodes","mode"]}}},"gcp:compute/NodeGroupMaintenanceWindow:NodeGroupMaintenanceWindow":{"properties":{"startTime":{"type":"string","description":"instances.start time of the window. This must be in UTC format that resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example, both 13:00-5 and 08:00 are valid.\n"}},"type":"object","required":["startTime"]},"gcp:compute/NodeGroupShareSettings:NodeGroupShareSettings":{"properties":{"projectMaps":{"type":"array","items":{"$ref":"#/types/gcp:compute/NodeGroupShareSettingsProjectMap:NodeGroupShareSettingsProjectMap"},"description":"A map of project id and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS.\nStructure is documented below.\n"},"shareType":{"type":"string","description":"Node group sharing type.\nPossible values are: `ORGANIZATION`, `SPECIFIC_PROJECTS`, `LOCAL`.\n"}},"type":"object","required":["shareType"]},"gcp:compute/NodeGroupShareSettingsProjectMap:NodeGroupShareSettingsProjectMap":{"properties":{"id":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"projectId":{"type":"string","description":"The project id/number should be the same as the key of this project config in the project map.\n"}},"type":"object","required":["id","projectId"]},"gcp:compute/NodeTemplateAccelerator:NodeTemplateAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the guest accelerator cards exposed to this\nnode template.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"Full or partial URL of the accelerator type resource to expose\nto this node template.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/NodeTemplateDisk:NodeTemplateDisk":{"properties":{"diskCount":{"type":"integer","description":"Specifies the number of such disks.\n","willReplaceOnChanges":true},"diskSizeGb":{"type":"integer","description":"Specifies the size of the disk in base-2 GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/NodeTemplateNodeTypeFlexibility:NodeTemplateNodeTypeFlexibility":{"properties":{"cpus":{"type":"string","description":"Number of virtual CPUs to use.\n","willReplaceOnChanges":true},"localSsd":{"type":"string","description":"(Output)\nUse local SSD\n"},"memory":{"type":"string","description":"Physical memory available to the node, defined in MB.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["localSsd"]}}},"gcp:compute/NodeTemplateServerBinding:NodeTemplateServerBinding":{"properties":{"type":{"type":"string","description":"Type of server binding policy. If `RESTART_NODE_ON_ANY_SERVER`,\nnodes using this template will restart on any physical server\nfollowing a maintenance event.\nIf `RESTART_NODE_ON_MINIMAL_SERVER`, nodes using this template\nwill restart on the same physical server following a maintenance\nevent, instead of being live migrated to or restarted on a new\nphysical server. This option may be useful if you are using\nsoftware licenses tied to the underlying server characteristics\nsuch as physical sockets or cores, to avoid the need for\nadditional licenses when maintenance occurs. However, VMs on such\nnodes will experience outages while maintenance is applied.\nPossible values are: `RESTART_NODE_ON_ANY_SERVER`, `RESTART_NODE_ON_MINIMAL_SERVERS`.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/OrganizationSecurityPolicyRuleMatch:OrganizationSecurityPolicyRuleMatch":{"properties":{"config":{"$ref":"#/types/gcp:compute/OrganizationSecurityPolicyRuleMatchConfig:OrganizationSecurityPolicyRuleMatchConfig","description":"The configuration options for matching the rule.\nStructure is documented below.\n"},"description":{"type":"string","description":"A description of the rule.\n"},"versionedExpr":{"type":"string","description":"Preconfigured versioned expression. For organization security policy rules,\nthe only supported type is \"FIREWALL\".\nDefault value is `FIREWALL`.\nPossible values are: `FIREWALL`.\n"}},"type":"object","required":["config"]},"gcp:compute/OrganizationSecurityPolicyRuleMatchConfig:OrganizationSecurityPolicyRuleMatchConfig":{"properties":{"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/OrganizationSecurityPolicyRuleMatchConfigLayer4Config:OrganizationSecurityPolicyRuleMatchConfigLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMatchConfigLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedMatchConfigLayer4Config\"\" pulumi-lang-go=\"\"nestedMatchConfigLayer4Config\"\" pulumi-lang-python=\"\"nested_match_config_layer4_config\"\" pulumi-lang-yaml=\"\"nestedMatchConfigLayer4Config\"\" pulumi-lang-java=\"\"nestedMatchConfigLayer4Config\"\"\u003e\"nested_match_config_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/OrganizationSecurityPolicyRuleMatchConfigLayer4Config:OrganizationSecurityPolicyRuleMatchConfigLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\n\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/PacketMirroringCollectorIlb:PacketMirroringCollectorIlb":{"properties":{"url":{"type":"string","description":"The URL of the forwarding rule.\n"}},"type":"object","required":["url"]},"gcp:compute/PacketMirroringFilter:PacketMirroringFilter":{"properties":{"cidrRanges":{"type":"array","items":{"type":"string"},"description":"IP CIDR ranges that apply as a filter on the source (ingress) or\ndestination (egress) IP in the IP header. Only IPv4 is supported.\n"},"direction":{"type":"string","description":"Direction of traffic to mirror.\nDefault value is `BOTH`.\nPossible values are: `INGRESS`, `EGRESS`, `BOTH`.\n"},"ipProtocols":{"type":"array","items":{"type":"string"},"description":"Possible IP protocols including tcp, udp, icmp and esp\n"}},"type":"object"},"gcp:compute/PacketMirroringMirroredResources:PacketMirroringMirroredResources":{"properties":{"instances":{"type":"array","items":{"$ref":"#/types/gcp:compute/PacketMirroringMirroredResourcesInstance:PacketMirroringMirroredResourcesInstance"},"description":"All the listed instances will be mirrored.  Specify at most 50.\nStructure is documented below.\n"},"subnetworks":{"type":"array","items":{"$ref":"#/types/gcp:compute/PacketMirroringMirroredResourcesSubnetwork:PacketMirroringMirroredResourcesSubnetwork"},"description":"All instances in one of these subnetworks will be mirrored.\nStructure is documented below.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"All instances with these tags will be mirrored.\n"}},"type":"object"},"gcp:compute/PacketMirroringMirroredResourcesInstance:PacketMirroringMirroredResourcesInstance":{"properties":{"url":{"type":"string","description":"The URL of the instances where this rule should be active.\n"}},"type":"object","required":["url"]},"gcp:compute/PacketMirroringMirroredResourcesSubnetwork:PacketMirroringMirroredResourcesSubnetwork":{"properties":{"url":{"type":"string","description":"The URL of the subnetwork where this rule should be active.\n"}},"type":"object","required":["url"]},"gcp:compute/PacketMirroringNetwork:PacketMirroringNetwork":{"properties":{"url":{"type":"string","description":"The full\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eURL of the network where this rule is active.\n","willReplaceOnChanges":true}},"type":"object","required":["url"]},"gcp:compute/PerInstanceConfigPreservedState:PerInstanceConfigPreservedState":{"properties":{"disks":{"type":"array","items":{"$ref":"#/types/gcp:compute/PerInstanceConfigPreservedStateDisk:PerInstanceConfigPreservedStateDisk"},"description":"Stateful disks for the instance.\nStructure is documented below.\n"},"externalIps":{"type":"array","items":{"$ref":"#/types/gcp:compute/PerInstanceConfigPreservedStateExternalIp:PerInstanceConfigPreservedStateExternalIp"},"description":"Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.\nStructure is documented below.\n"},"internalIps":{"type":"array","items":{"$ref":"#/types/gcp:compute/PerInstanceConfigPreservedStateInternalIp:PerInstanceConfigPreservedStateInternalIp"},"description":"Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.\nStructure is documented below.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Preserved metadata defined for this instance. This is a list of key-\u003evalue pairs.\n"}},"type":"object"},"gcp:compute/PerInstanceConfigPreservedStateDisk:PerInstanceConfigPreservedStateDisk":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted.\nThe available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`.\n`NEVER` - detach the disk when the VM is deleted, but do not delete the disk.\n`ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently\ndeleted from the instance group.\nDefault value is `NEVER`.\nPossible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.\n"},"deviceName":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.\n"},"mode":{"type":"string","description":"The mode of the disk.\nDefault value is `READ_WRITE`.\nPossible values are: `READ_ONLY`, `READ_WRITE`.\n"},"source":{"type":"string","description":"The URI of an existing persistent disk to attach under the specified device-name in the format\n`projects/project-id/zones/zone/disks/disk-name`.\n"}},"type":"object","required":["deviceName","source"]},"gcp:compute/PerInstanceConfigPreservedStateExternalIp:PerInstanceConfigPreservedStateExternalIp":{"properties":{"autoDelete":{"type":"string","description":"These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.\nDefault value is `NEVER`.\nPossible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.\n"},"interfaceName":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"ipAddress":{"$ref":"#/types/gcp:compute/PerInstanceConfigPreservedStateExternalIpIpAddress:PerInstanceConfigPreservedStateExternalIpIpAddress","description":"Ip address representation\nStructure is documented below.\n"}},"type":"object","required":["interfaceName"]},"gcp:compute/PerInstanceConfigPreservedStateExternalIpIpAddress:PerInstanceConfigPreservedStateExternalIpIpAddress":{"properties":{"address":{"type":"string","description":"The URL of the reservation for this IP address.\n"}},"type":"object"},"gcp:compute/PerInstanceConfigPreservedStateInternalIp:PerInstanceConfigPreservedStateInternalIp":{"properties":{"autoDelete":{"type":"string","description":"These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.\nDefault value is `NEVER`.\nPossible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.\n"},"interfaceName":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"ipAddress":{"$ref":"#/types/gcp:compute/PerInstanceConfigPreservedStateInternalIpIpAddress:PerInstanceConfigPreservedStateInternalIpIpAddress","description":"Ip address representation\nStructure is documented below.\n"}},"type":"object","required":["interfaceName"]},"gcp:compute/PerInstanceConfigPreservedStateInternalIpIpAddress:PerInstanceConfigPreservedStateInternalIpIpAddress":{"properties":{"address":{"type":"string","description":"The URL of the reservation for this IP address.\n"}},"type":"object"},"gcp:compute/PreviewFeatureRolloutOperation:PreviewFeatureRolloutOperation":{"properties":{"rolloutInput":{"$ref":"#/types/gcp:compute/PreviewFeatureRolloutOperationRolloutInput:PreviewFeatureRolloutOperationRolloutInput","description":"The input for the rollout operation.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/PreviewFeatureRolloutOperationRolloutInput:PreviewFeatureRolloutOperationRolloutInput":{"properties":{"predefinedRolloutPlan":{"type":"string","description":"Predefined rollout plans.\nPossible values are: `ROLLOUT_PLAN_FAST_ROLLOUT`.\n"}},"type":"object","required":["predefinedRolloutPlan"]},"gcp:compute/PublicDelegatedPrefixPublicDelegatedSubPrefix:PublicDelegatedPrefixPublicDelegatedSubPrefix":{"properties":{"allocatablePrefixLength":{"type":"integer","description":"The allocatable prefix length supported by this public delegated prefix. This field is optional and cannot be set for prefixes in DELEGATION mode. It cannot be set for IPv4 prefixes either, and it always defaults to 32.\n"},"delegateeProject":{"type":"string","description":"Name of the project scoping this PublicDelegatedSubPrefix.\n"},"description":{"type":"string","description":"An optional description of this resource.\n"},"enableEnhancedIpv4Allocation":{"type":"boolean","description":"(Output)\nWhether this PublicDelegatedSubPrefix supports enhanced IPv4 allocations.\nApplicable for IPv4 sub-PDPs only.\n"},"ipCidrRange":{"type":"string","description":"The IP address range, in CIDR format, represented by this public delegated prefix.\n"},"ipv6AccessType":{"type":"string","description":"(Output)\nThe internet access type for IPv6 Public Delegated Prefixes. Inherited\nfrom parent prefix and can be one of following:\n* EXTERNAL: The prefix will be announced to the internet. All children\nPDPs will have access type as EXTERNAL.\n* INTERNAL: The prefix won’t be announced to the internet. Prefix will\nbe used privately within Google Cloud. All children PDPs will have\naccess type as INTERNAL.\n"},"isAddress":{"type":"boolean","description":"Whether the sub prefix is delegated for address creation.\n"},"mode":{"type":"string","description":"Specifies the mode of this IPv6 PDP. MODE must be one of:\n* DELEGATION\n* EXTERNAL_IPV6_FORWARDING_RULE_CREATION\n* EXTERNAL_IPV6_SUBNETWORK_CREATION\n* INTERNAL_IPV6_SUBNETWORK_CREATION\nPossible values are: `DELEGATION`, `EXTERNAL_IPV6_FORWARDING_RULE_CREATION`, `EXTERNAL_IPV6_SUBNETWORK_CREATION`, `INTERNAL_IPV6_SUBNETWORK_CREATION`.\n"},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression `a-z?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.\n"},"region":{"type":"string","description":"A region where the prefix will reside.\n"},"status":{"type":"string","description":"The status of the sub public delegated prefix.\nPossible values are: `INITIALIZING`, `READY_TO_ANNOUNCE`, `ANNOUNCED`, `DELETING`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableEnhancedIpv4Allocation","ipv6AccessType"]}}},"gcp:compute/RegionAutoscalerAutoscalingPolicy:RegionAutoscalerAutoscalingPolicy":{"properties":{"cooldownPeriod":{"type":"integer","description":"The number of seconds that the autoscaler should wait before it\nstarts collecting information from a new instance. This prevents\nthe autoscaler from collecting information when the instance is\ninitializing, during which the collected usage would not be\nreliable. The default time autoscaler waits is 60 seconds.\nVirtual machine initialization times might vary because of\nnumerous factors. We recommend that you test how long an\ninstance may take to initialize. To do this, create an instance\nand time the startup process.\n"},"cpuUtilization":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyCpuUtilization:RegionAutoscalerAutoscalingPolicyCpuUtilization","description":"Defines the CPU utilization policy that allows the autoscaler to\nscale based on the average CPU utilization of a managed instance\ngroup.\nStructure is documented below.\n"},"loadBalancingUtilization":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyLoadBalancingUtilization:RegionAutoscalerAutoscalingPolicyLoadBalancingUtilization","description":"Configuration parameters of autoscaling based on a load balancer.\nStructure is documented below.\n"},"maxReplicas":{"type":"integer","description":"The maximum number of instances that the autoscaler can scale up\nto. This is required when creating or updating an autoscaler. The\nmaximum number of replicas should not be lower than minimal number\nof replicas.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyMetric:RegionAutoscalerAutoscalingPolicyMetric"},"description":"Configuration parameters of autoscaling based on a custom metric.\nStructure is documented below.\n"},"minReplicas":{"type":"integer","description":"The minimum number of replicas that the autoscaler can scale down\nto. This cannot be less than 0. If not provided, autoscaler will\nchoose a default value depending on maximum number of instances\nallowed.\n"},"mode":{"type":"string","description":"Defines operating mode for this policy.\n"},"scaleDownControl":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyScaleDownControl:RegionAutoscalerAutoscalingPolicyScaleDownControl","description":"(Optional, Beta)\nDefines scale down controls to reduce the risk of response latency\nand outages due to abrupt scale-in events\nStructure is documented below.\n"},"scaleInControl":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyScaleInControl:RegionAutoscalerAutoscalingPolicyScaleInControl","description":"Defines scale in controls to reduce the risk of response latency\nand outages due to abrupt scale-in events\nStructure is documented below.\n"},"scalingSchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyScalingSchedule:RegionAutoscalerAutoscalingPolicyScalingSchedule"},"description":"Scaling schedules defined for an autoscaler. Multiple schedules can be set on an autoscaler and they can overlap.\nStructure is documented below.\n"}},"type":"object","required":["maxReplicas","minReplicas"],"language":{"nodejs":{"requiredOutputs":["cpuUtilization","maxReplicas","minReplicas"]}}},"gcp:compute/RegionAutoscalerAutoscalingPolicyCpuUtilization:RegionAutoscalerAutoscalingPolicyCpuUtilization":{"properties":{"predictiveMethod":{"type":"string","description":"Indicates whether predictive autoscaling based on CPU metric is enabled. Valid values are:\n- NONE (default). No predictive method is used. The autoscaler scales the group to meet current demand based on real-time metrics.\n- OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability by monitoring daily and weekly load patterns and scaling out ahead of anticipated demand.\n"},"target":{"type":"number","description":"The target CPU utilization that the autoscaler should maintain.\nMust be a float value in the range (0, 1]. If not specified, the\ndefault is 0.6.\nIf the CPU level is below the target utilization, the autoscaler\nscales down the number of instances until it reaches the minimum\nnumber of instances you specified or until the average CPU of\nyour instances reaches the target utilization.\nIf the average CPU is above the target utilization, the autoscaler\nscales up until it reaches the maximum number of instances you\nspecified or until the average utilization reaches the target\nutilization.\n"}},"type":"object","required":["target"]},"gcp:compute/RegionAutoscalerAutoscalingPolicyLoadBalancingUtilization:RegionAutoscalerAutoscalingPolicyLoadBalancingUtilization":{"properties":{"target":{"type":"number","description":"Fraction of backend capacity utilization (set in HTTP(s) load\nbalancing configuration) that autoscaler should maintain. Must\nbe a positive float value. If not defined, the default is 0.8.\n"}},"type":"object","required":["target"]},"gcp:compute/RegionAutoscalerAutoscalingPolicyMetric:RegionAutoscalerAutoscalingPolicyMetric":{"properties":{"filter":{"type":"string","description":"A filter string to be used as the filter string for\na Stackdriver Monitoring TimeSeries.list API call.\nThis filter is used to select a specific TimeSeries for\nthe purpose of autoscaling and to determine whether the metric\nis exporting per-instance or per-group data.\nYou can only use the AND operator for joining selectors.\nYou can only use direct equality comparison operator (=) without\nany functions for each selector.\nYou can specify the metric in both the filter string and in the\nmetric field. However, if specified in both places, the metric must\nbe identical.\nThe monitored resource type determines what kind of values are\nexpected for the metric. If it is a gce_instance, the autoscaler\nexpects the metric to include a separate TimeSeries for each\ninstance in a group. In such a case, you cannot filter on resource\nlabels.\nIf the resource type is any other value, the autoscaler expects\nthis metric to contain values that apply to the entire autoscaled\ninstance group and resource label filtering can be performed to\npoint autoscaler at the correct TimeSeries to scale upon.\nThis is called a per-group metric for the purpose of autoscaling.\nIf not specified, the type defaults to gce_instance.\nYou should provide a filter that is selective enough to pick just\none TimeSeries for the autoscaled group or for each of the instances\n(if you are using\u003cspan pulumi-lang-nodejs=\" gceInstance \" pulumi-lang-dotnet=\" GceInstance \" pulumi-lang-go=\" gceInstance \" pulumi-lang-python=\" gce_instance \" pulumi-lang-yaml=\" gceInstance \" pulumi-lang-java=\" gceInstance \"\u003e gce_instance \u003c/span\u003eresource type). If multiple\nTimeSeries are returned upon the query execution, the autoscaler\nwill sum their respective values to obtain its scaling value.\n"},"name":{"type":"string","description":"The identifier (type) of the Stackdriver Monitoring metric.\nThe metric cannot have negative values.\nThe metric must have a value type of INT64 or DOUBLE.\n"},"singleInstanceAssignment":{"type":"number","description":"If scaling is based on a per-group metric value that represents the\ntotal amount of work to be done or resource usage, set this value to\nan amount assigned for a single instance of the scaled group.\nThe autoscaler will keep the number of instances proportional to the\nvalue of this metric, the metric itself should not change value due\nto group resizing.\nFor example, a good metric to use with the target is\n`pubsub.googleapis.com/subscription/num_undelivered_messages`\nor a custom metric exporting the total number of requests coming to\nyour instances.\nA bad example would be a metric exporting an average or median\nlatency, since this value can't include a chunk assignable to a\nsingle instance, it could be better used with\u003cspan pulumi-lang-nodejs=\" utilizationTarget\n\" pulumi-lang-dotnet=\" UtilizationTarget\n\" pulumi-lang-go=\" utilizationTarget\n\" pulumi-lang-python=\" utilization_target\n\" pulumi-lang-yaml=\" utilizationTarget\n\" pulumi-lang-java=\" utilizationTarget\n\"\u003e utilization_target\n\u003c/span\u003einstead.\n"},"target":{"type":"number","description":"The target value of the metric that autoscaler should\nmaintain. This must be a positive value. A utilization\nmetric scales number of virtual machines handling requests\nto increase or decrease proportionally to the metric.\nFor example, a good metric to use as a utilizationTarget is\nwww.googleapis.com/compute/instance/network/received_bytes_count.\nThe autoscaler will work to keep this value constant for each\nof the instances.\n"},"type":{"type":"string","description":"Defines how target utilization value is expressed for a\nStackdriver Monitoring metric.\nPossible values are: `GAUGE`, `DELTA_PER_SECOND`, `DELTA_PER_MINUTE`.\n"}},"type":"object","required":["name"]},"gcp:compute/RegionAutoscalerAutoscalingPolicyScaleDownControl:RegionAutoscalerAutoscalingPolicyScaleDownControl":{"properties":{"maxScaledDownReplicas":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas:RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas","description":"A nested object resource.\nStructure is documented below.\n"},"timeWindowSec":{"type":"integer","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.\n"}},"type":"object"},"gcp:compute/RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas:RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas":{"properties":{"fixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.\n"},"percent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.\n"}},"type":"object"},"gcp:compute/RegionAutoscalerAutoscalingPolicyScaleInControl:RegionAutoscalerAutoscalingPolicyScaleInControl":{"properties":{"maxScaledInReplicas":{"$ref":"#/types/gcp:compute/RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas:RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas","description":"A nested object resource.\nStructure is documented below.\n"},"timeWindowSec":{"type":"integer","description":"How long back autoscaling should look when computing recommendations\nto include directives regarding slower scale down, as described above.\n"}},"type":"object"},"gcp:compute/RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas:RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas":{"properties":{"fixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive\ninteger.\n"},"percent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive.\nFor example, specify 80 for 80%.\n"}},"type":"object"},"gcp:compute/RegionAutoscalerAutoscalingPolicyScalingSchedule:RegionAutoscalerAutoscalingPolicyScalingSchedule":{"properties":{"description":{"type":"string","description":"A description of a scaling schedule.\n"},"disabled":{"type":"boolean","description":"A boolean value that specifies if a scaling schedule can influence autoscaler recommendations. If set to true, then a scaling schedule has no effect.\n"},"durationSec":{"type":"integer","description":"The duration of time intervals (in seconds) for which this scaling schedule will be running. The minimum allowed value is 300.\n"},"minRequiredReplicas":{"type":"integer","description":"Minimum number of VM instances that autoscaler will recommend in time intervals starting according to schedule.\n"},"name":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"schedule":{"type":"string","description":"The start timestamps of time intervals when this scaling schedule should provide a scaling signal. This field uses the extended cron format (with an optional year field).\n"},"timeZone":{"type":"string","description":"The time zone to be used when interpreting the schedule. The value of this field must be a time zone name from the tz database: http://en.wikipedia.org/wiki/Tz_database.\n"}},"type":"object","required":["durationSec","minRequiredReplicas","name","schedule"]},"gcp:compute/RegionBackendBucketIamBindingCondition:RegionBackendBucketIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/RegionBackendBucketIamMemberCondition:RegionBackendBucketIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/RegionBackendServiceBackend:RegionBackendServiceBackend":{"properties":{"balancingMode":{"type":"string","description":"Specifies the balancing mode for this backend.\nSee the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)\nfor an explanation of load balancing modes.\nDefault value is `UTILIZATION`.\nPossible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.\n"},"capacityScaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n~\u003e**NOTE**: This field cannot be set for\nINTERNAL region backend services (default loadBalancingScheme),\nbut is required for non-INTERNAL backend service. The total\u003cspan pulumi-lang-nodejs=\"\ncapacityScaler \" pulumi-lang-dotnet=\"\nCapacityScaler \" pulumi-lang-go=\"\ncapacityScaler \" pulumi-lang-python=\"\ncapacity_scaler \" pulumi-lang-yaml=\"\ncapacityScaler \" pulumi-lang-java=\"\ncapacityScaler \"\u003e\ncapacity_scaler \u003c/span\u003efor all backends must be non-zero.\nA setting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].\n"},"customMetrics":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionBackendServiceBackendCustomMetric:RegionBackendServiceBackendCustomMetric"},"description":"The set of custom metrics that are used for \u003ccode\u003eCUSTOM_METRICS\u003c/code\u003e BalancingMode.\nStructure is documented below.\n"},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.\n"},"failover":{"type":"boolean","description":"This field designates whether this is a failover backend. More\nthan one failover backend can be configured for a given RegionBackendService.\n"},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\nWhen the \u003cspan pulumi-lang-nodejs=\"`loadBalancingScheme`\" pulumi-lang-dotnet=\"`LoadBalancingScheme`\" pulumi-lang-go=\"`loadBalancingScheme`\" pulumi-lang-python=\"`load_balancing_scheme`\" pulumi-lang-yaml=\"`loadBalancingScheme`\" pulumi-lang-java=\"`loadBalancingScheme`\"\u003e`load_balancing_scheme`\u003c/span\u003e is INTERNAL, only instance groups\nare supported.\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.\n"},"maxConnections":{"type":"integer","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\nCannot be set for INTERNAL backend services.\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.\n"},"maxConnectionsPerEndpoint":{"type":"integer","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. Cannot be set\nfor INTERNAL backend services.\nThis is used to calculate the capacity of the group. Can be\nused in either CONNECTION or UTILIZATION balancing modes. For\nCONNECTION mode, either maxConnections or\nmaxConnectionsPerEndpoint must be set.\n"},"maxConnectionsPerInstance":{"type":"integer","description":"The max number of simultaneous connections that a single\nbackend instance can handle. Cannot be set for INTERNAL backend\nservices.\nThis is used to calculate the capacity of the group.\nCan be used in either CONNECTION or UTILIZATION balancing modes.\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.\n"},"maxInFlightRequests":{"type":"integer","description":"(Optional, Beta)\nDefines a maximum number of in-flight requests for the whole NEG\nor instance group. Not available if backend's balancingMode is RATE\nor CONNECTION.\n"},"maxInFlightRequestsPerEndpoint":{"type":"integer","description":"(Optional, Beta)\nDefines a maximum number of in-flight requests for a single endpoint.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxInFlightRequestsPerInstance":{"type":"integer","description":"(Optional, Beta)\nDefines a maximum number of in-flight requests for a single VM.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxRate":{"type":"integer","description":"The max requests per second (RPS) of the group. Cannot be set\nfor INTERNAL backend services.\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. Either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.\n"},"maxRatePerEndpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set. Cannot be set\nfor INTERNAL backend services.\n"},"maxRatePerInstance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set. Cannot be set\nfor INTERNAL backend services.\n"},"maxUtilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].\nCannot be set for INTERNAL backend services.\n"},"trafficDuration":{"type":"string","description":"(Optional, Beta)\nThis field specifies how long a connection should be kept alive for:\n- LONG: Most of the requests are expected to take more than multiple\nseconds to finish.\n- SHORT: Most requests are expected to finish with a sub-second latency.\nPossible values are: `LONG`, `SHORT`.\n"}},"type":"object","required":["group"],"language":{"nodejs":{"requiredOutputs":["failover","group","maxInFlightRequests","maxInFlightRequestsPerEndpoint","maxInFlightRequestsPerInstance"]}}},"gcp:compute/RegionBackendServiceBackendCustomMetric:RegionBackendServiceBackendCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is not used for load balancing.\n"},"maxUtilization":{"type":"number","description":"Optional parameter to define a target utilization for the Custom Metrics\nbalancing mode. The valid range is \u003ccode\u003e[0.0, 1.0]\u003c/code\u003e.\n"},"name":{"type":"string","description":"Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression a-z? which\nmeans the first character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to \u003ccode\u003eEXTERNAL_MANAGED\u003c/code\u003e,\n\u003ccode\u003eINTERNAL_MANAGED\u003c/code\u003e \u003ccode\u003eINTERNAL_SELF_MANAGED\u003c/code\u003e.\n"}},"type":"object","required":["dryRun","name"]},"gcp:compute/RegionBackendServiceCdnPolicy:RegionBackendServiceCdnPolicy":{"properties":{"cacheKeyPolicy":{"$ref":"#/types/gcp:compute/RegionBackendServiceCdnPolicyCacheKeyPolicy:RegionBackendServiceCdnPolicyCacheKeyPolicy","description":"The CacheKeyPolicy for this CdnPolicy.\nStructure is documented below.\n"},"cacheMode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC\nPossible values are: `USE_ORIGIN_HEADERS`, `FORCE_CACHE_ALL`, `CACHE_ALL_STATIC`.\n"},"clientTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"defaultTtl":{"type":"integer","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).\n"},"maxTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"negativeCaching":{"type":"boolean","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.\n"},"negativeCachingPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionBackendServiceCdnPolicyNegativeCachingPolicy:RegionBackendServiceCdnPolicyNegativeCachingPolicy"},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.\nStructure is documented below.\n"},"serveWhileStale":{"type":"integer","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.\n"},"signedUrlCacheMaxAgeSec":{"type":"integer","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cacheMode","clientTtl","defaultTtl","maxTtl","negativeCaching","serveWhileStale"]}}},"gcp:compute/RegionBackendServiceCdnPolicyCacheKeyPolicy:RegionBackendServiceCdnPolicyCacheKeyPolicy":{"properties":{"includeHost":{"type":"boolean","description":"If true requests to different hosts will be cached separately.\n"},"includeNamedCookies":{"type":"array","items":{"type":"string"},"description":"Names of cookies to include in cache keys.\n"},"includeProtocol":{"type":"boolean","description":"If true, http and https requests will be cached separately.\n"},"includeQueryString":{"type":"boolean","description":"If true, include query string parameters in the cache key\naccording to\u003cspan pulumi-lang-nodejs=\" queryStringWhitelist \" pulumi-lang-dotnet=\" QueryStringWhitelist \" pulumi-lang-go=\" queryStringWhitelist \" pulumi-lang-python=\" query_string_whitelist \" pulumi-lang-yaml=\" queryStringWhitelist \" pulumi-lang-java=\" queryStringWhitelist \"\u003e query_string_whitelist \u003c/span\u003eand\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\nIf false, the query string will be excluded from the cache\nkey entirely.\n"},"queryStringBlacklists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to exclude in cache keys.\nAll other parameters will be included. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"},"queryStringWhitelists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to include in cache keys.\nAll other parameters will be excluded. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceCdnPolicyNegativeCachingPolicy:RegionBackendServiceCdnPolicyNegativeCachingPolicy":{"properties":{"code":{"type":"integer","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.\n"},"ttl":{"type":"integer","description":"(Optional, Beta)\nThe TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceCircuitBreakers:RegionBackendServiceCircuitBreakers":{"properties":{"connectTimeout":{"$ref":"#/types/gcp:compute/RegionBackendServiceCircuitBreakersConnectTimeout:RegionBackendServiceCircuitBreakersConnectTimeout","description":"(Optional, Beta)\nThe timeout for new network connections to hosts.\nStructure is documented below.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.\n"},"maxPendingRequests":{"type":"integer","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequests":{"type":"integer","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequestsPerConnection":{"type":"integer","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.\n"},"maxRetries":{"type":"integer","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceCircuitBreakersConnectTimeout:RegionBackendServiceCircuitBreakersConnectTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionBackendServiceConnectionTrackingPolicy:RegionBackendServiceConnectionTrackingPolicy":{"properties":{"connectionPersistenceOnUnhealthyBackends":{"type":"string","description":"Specifies connection persistence when backends are unhealthy.\nIf set to `DEFAULT_FOR_PROTOCOL`, the existing connections persist on\nunhealthy backends only for connection-oriented protocols (TCP and SCTP)\nand only if the Tracking Mode is PER_CONNECTION (default tracking mode)\nor the Session Affinity is configured for 5-tuple. They do not persist\nfor UDP.\nIf set to `NEVER_PERSIST`, after a backend becomes unhealthy, the existing\nconnections on the unhealthy backend are never persisted on the unhealthy\nbackend. They are always diverted to newly selected healthy backends\n(unless all backends are unhealthy).\nIf set to `ALWAYS_PERSIST`, existing connections always persist on\nunhealthy backends regardless of protocol and session affinity. It is\ngenerally not recommended to use this mode overriding the default.\nDefault value is `DEFAULT_FOR_PROTOCOL`.\nPossible values are: `DEFAULT_FOR_PROTOCOL`, `NEVER_PERSIST`, `ALWAYS_PERSIST`.\n"},"enableStrongAffinity":{"type":"boolean","description":"Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly.\n"},"idleTimeoutSec":{"type":"integer","description":"Specifies how long to keep a Connection Tracking entry while there is\nno matching traffic (in seconds).\nFor L4 ILB the minimum(default) is 10 minutes and maximum is 16 hours.\nFor NLB the minimum(default) is 60 seconds and the maximum is 16 hours.\n"},"trackingMode":{"type":"string","description":"Specifies the key used for connection tracking. There are two options:\n`PER_CONNECTION`: The Connection Tracking is performed as per the\nConnection Key (default Hash Method) for the specific protocol.\n`PER_SESSION`: The Connection Tracking is performed as per the\nconfigured Session Affinity. It matches the configured Session Affinity.\nDefault value is `PER_CONNECTION`.\nPossible values are: `PER_CONNECTION`, `PER_SESSION`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["idleTimeoutSec"]}}},"gcp:compute/RegionBackendServiceConsistentHash:RegionBackendServiceConsistentHash":{"properties":{"httpCookie":{"$ref":"#/types/gcp:compute/RegionBackendServiceConsistentHashHttpCookie:RegionBackendServiceConsistentHashHttpCookie","description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.\nStructure is documented below.\n"},"httpHeaderName":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.\n"},"minimumRingSize":{"type":"integer","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceConsistentHashHttpCookie:RegionBackendServiceConsistentHashHttpCookie":{"properties":{"name":{"type":"string","description":"Name of the cookie.\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttl":{"$ref":"#/types/gcp:compute/RegionBackendServiceConsistentHashHttpCookieTtl:RegionBackendServiceConsistentHashHttpCookieTtl","description":"Lifetime of the cookie.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceConsistentHashHttpCookieTtl:RegionBackendServiceConsistentHashHttpCookieTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionBackendServiceCustomMetric:RegionBackendServiceCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is not used for load balancing.\n"},"name":{"type":"string","description":"Name of a custom utilization signal. The name must be 1-64 characters\nlong and match the regular expression a-z? which\nmeans the first character must be a lowercase letter, and all following\ncharacters must be a dash, period, underscore, lowercase letter, or\ndigit, except the last character, which cannot be a dash, period, or\nunderscore. For usage guidelines, see Custom Metrics balancing mode. This\nfield can only be used for a global or regional backend service with the\nloadBalancingScheme set to \u003ccode\u003eEXTERNAL_MANAGED\u003c/code\u003e,\n\u003ccode\u003eINTERNAL_MANAGED\u003c/code\u003e \u003ccode\u003eINTERNAL_SELF_MANAGED\u003c/code\u003e.\n"}},"type":"object","required":["dryRun","name"]},"gcp:compute/RegionBackendServiceDynamicForwarding:RegionBackendServiceDynamicForwarding":{"properties":{"ipPortSelection":{"$ref":"#/types/gcp:compute/RegionBackendServiceDynamicForwardingIpPortSelection:RegionBackendServiceDynamicForwardingIpPortSelection","description":"(Optional, Beta)\nIP:PORT based dynamic forwarding configuration.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceDynamicForwardingIpPortSelection:RegionBackendServiceDynamicForwardingIpPortSelection":{"properties":{"enabled":{"type":"boolean","description":"(Optional, Beta)\nA boolean flag enabling IP:PORT based dynamic forwarding.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionBackendServiceFailoverPolicy:RegionBackendServiceFailoverPolicy":{"properties":{"disableConnectionDrainOnFailover":{"type":"boolean","description":"On failover or failback, this field indicates whether connection drain\nwill be honored. Setting this to true has the following effect: connections\nto the old active pool are not drained. Connections to the new active pool\nuse the timeout of 10 min (currently fixed). Setting to false has the\nfollowing effect: both old and new connections will have a drain timeout\nof 10 min.\nThis can be set to true only if the protocol is TCP.\nThe default is false.\n"},"dropTrafficIfUnhealthy":{"type":"boolean","description":"This option is used only when no healthy VMs are detected in the primary\nand backup instance groups. When set to true, traffic is dropped. When\nset to false, new connections are sent across all VMs in the primary group.\nThe default is false.\n"},"failoverRatio":{"type":"number","description":"The value of the field must be in [0, 1]. If the ratio of the healthy\nVMs in the primary backend is at or below this number, traffic arriving\nat the load-balanced IP will be directed to the failover backend.\nIn case where 'failoverRatio' is not set or all the VMs in the backup\nbackend are unhealthy, the traffic will be directed back to the primary\nbackend in the \"force\" mode, where traffic will be spread to the healthy\nVMs with the best effort, or to all VMs when no VM is healthy.\nThis field is only used with l4 load balancing.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disableConnectionDrainOnFailover","dropTrafficIfUnhealthy"]}}},"gcp:compute/RegionBackendServiceHaPolicy:RegionBackendServiceHaPolicy":{"properties":{"fastIpMove":{"type":"string","description":"Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.\nSupported values are:\n* `DISABLED`: Fast IP Move is disabled. You can only use the haPolicy.leader API to\nupdate the leader.\n* `GARP_RA`: Provides a method to very quickly define a new network endpoint as the\nleader. This method is faster than updating the leader using the\nhaPolicy.leader API. Fast IP move works as follows: The VM hosting the\nnetwork endpoint that should become the new leader sends either a\nGratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)\npacket (IPv6). Google Cloud immediately but temporarily associates the\nforwarding rule IP address with that VM, and both new and in-flight packets\nare quickly delivered to that VM.\nPossible values are: `DISABLED`, `GARP_RA`.\n","willReplaceOnChanges":true},"leader":{"$ref":"#/types/gcp:compute/RegionBackendServiceHaPolicyLeader:RegionBackendServiceHaPolicyLeader","description":"Selects one of the network endpoints attached to the backend NEGs of this service as the\nactive endpoint (the leader) that receives all traffic.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceHaPolicyLeader:RegionBackendServiceHaPolicyLeader":{"properties":{"backendGroup":{"type":"string","description":"A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is\nattached to.\n"},"networkEndpoint":{"$ref":"#/types/gcp:compute/RegionBackendServiceHaPolicyLeaderNetworkEndpoint:RegionBackendServiceHaPolicyLeaderNetworkEndpoint","description":"The network endpoint within the leader.backendGroup that is designated as the leader.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceHaPolicyLeaderNetworkEndpoint:RegionBackendServiceHaPolicyLeaderNetworkEndpoint":{"properties":{"instance":{"type":"string","description":"The name of the VM instance of the leader network endpoint. The instance must\nalready be attached to the NEG specified in the haPolicy.leader.backendGroup.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceIamBindingCondition:RegionBackendServiceIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/RegionBackendServiceIamMemberCondition:RegionBackendServiceIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/RegionBackendServiceIap:RegionBackendServiceIap":{"properties":{"enabled":{"type":"boolean","description":"Whether the serving infrastructure will authenticate and authorize all incoming requests.\n"},"oauth2ClientId":{"type":"string","description":"OAuth2 Client ID for IAP\n"},"oauth2ClientSecret":{"type":"string","description":"OAuth2 Client Secret for IAP\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"oauth2ClientSecretSha256":{"type":"string","description":"(Output)\nOAuth2 Client Secret SHA-256 for IAP\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","oauth2ClientSecretSha256"]}}},"gcp:compute/RegionBackendServiceLogConfig:RegionBackendServiceLogConfig":{"properties":{"enable":{"type":"boolean","description":"Whether to enable logging for the load balancer traffic served by this backend service.\n"},"optionalFields":{"type":"array","items":{"type":"string"},"description":"Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.\n"},"optionalMode":{"type":"string","description":"Specifies the optional logging mode for the load balancer traffic.\nSupported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.\nPossible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.\n"},"sampleRate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["optionalFields","optionalMode"]}}},"gcp:compute/RegionBackendServiceNetworkPassThroughLbTrafficPolicy:RegionBackendServiceNetworkPassThroughLbTrafficPolicy":{"properties":{"zonalAffinity":{"$ref":"#/types/gcp:compute/RegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:RegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity","description":"When configured, new connections are load balanced across healthy backend endpoints in the local zone.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:RegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity":{"properties":{"spillover":{"type":"string","description":"This field indicates whether zonal affinity is enabled or not.\nDefault value is `ZONAL_AFFINITY_DISABLED`.\nPossible values are: `ZONAL_AFFINITY_DISABLED`, `ZONAL_AFFINITY_SPILL_CROSS_ZONE`, `ZONAL_AFFINITY_STAY_WITHIN_ZONE`.\n"},"spilloverRatio":{"type":"number","description":"The value of the field must be in [0, 1]. When the ratio of the count of healthy backend endpoints in a zone\nto the count of backend endpoints in that same zone is equal to or above this threshold, the load balancer\ndistributes new connections to all healthy endpoints in the local zone only. When the ratio of the count\nof healthy backend endpoints in a zone to the count of backend endpoints in that same zone is below this\nthreshold, the load balancer distributes all new connections to all healthy endpoints across all zones.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceOutlierDetection:RegionBackendServiceOutlierDetection":{"properties":{"baseEjectionTime":{"$ref":"#/types/gcp:compute/RegionBackendServiceOutlierDetectionBaseEjectionTime:RegionBackendServiceOutlierDetectionBaseEjectionTime","description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.\nStructure is documented below.\n"},"consecutiveErrors":{"type":"integer","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.\n"},"consecutiveGatewayFailure":{"type":"integer","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.\n"},"enforcingConsecutiveErrors":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.\n"},"enforcingConsecutiveGatewayFailure":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.\n"},"enforcingSuccessRate":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.\n"},"interval":{"$ref":"#/types/gcp:compute/RegionBackendServiceOutlierDetectionInterval:RegionBackendServiceOutlierDetectionInterval","description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.\nStructure is documented below.\n"},"maxEjectionPercent":{"type":"integer","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.\n"},"successRateMinimumHosts":{"type":"integer","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.\n"},"successRateRequestVolume":{"type":"integer","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.\n"},"successRateStdevFactor":{"type":"integer","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceOutlierDetectionBaseEjectionTime:RegionBackendServiceOutlierDetectionBaseEjectionTime":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive\n\u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionBackendServiceOutlierDetectionInterval:RegionBackendServiceOutlierDetectionInterval":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 \u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive\n\u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionBackendServiceParams:RegionBackendServiceParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the region backend service. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionBackendServiceStrongSessionAffinityCookie:RegionBackendServiceStrongSessionAffinityCookie":{"properties":{"name":{"type":"string","description":"Name of the cookie.\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttl":{"$ref":"#/types/gcp:compute/RegionBackendServiceStrongSessionAffinityCookieTtl:RegionBackendServiceStrongSessionAffinityCookieTtl","description":"Lifetime of the cookie.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceStrongSessionAffinityCookieTtl:RegionBackendServiceStrongSessionAffinityCookieTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionBackendServiceSubsetting:RegionBackendServiceSubsetting":{"properties":{"policy":{"type":"string","description":"The algorithm used for subsetting.\nPossible values are: `CONSISTENT_HASH_SUBSETTING`.\n"},"subsetSize":{"type":"integer","description":"The number of backends per backend group assigned to each proxy instance or each service mesh client.\nAn input parameter to the CONSISTENT_HASH_SUBSETTING algorithm. Can only be set if policy is set to\nCONSISTENT_HASH_SUBSETTING. Can only be set if load balancing scheme is INTERNAL_MANAGED or INTERNAL_SELF_MANAGED.\nsubsetSize is optional for Internal HTTP(S) load balancing and required for Traffic Director.\nIf you do not provide this value, Cloud Load Balancing will calculate it dynamically to optimize the number\nof proxies/clients visible to each backend and vice versa.\nMust be greater than 0. If subsetSize is larger than the number of backends/endpoints, then subsetting is disabled.\n"}},"type":"object","required":["policy"]},"gcp:compute/RegionBackendServiceTlsSettings:RegionBackendServiceTlsSettings":{"properties":{"authenticationConfig":{"type":"string","description":"Reference to the BackendAuthenticationConfig resource from the networksecurity.googleapis.com namespace.\nCan be used in authenticating TLS connections to the backend, as specified by the authenticationMode field.\nCan only be specified if authenticationMode is not NONE.\n"},"sni":{"type":"string","description":"Server Name Indication - see RFC3546 section 3.1. If set, the load balancer sends this string as the SNI hostname in the\nTLS connection to the backend, and requires that this string match a Subject Alternative Name (SAN) in the backend's\nserver certificate. With a Regional Internet NEG backend, if the SNI is specified here, the load balancer uses it\nregardless of whether the Regional Internet NEG is specified with FQDN or IP address and port.\n"},"subjectAltNames":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionBackendServiceTlsSettingsSubjectAltName:RegionBackendServiceTlsSettingsSubjectAltName"},"description":"A list of Subject Alternative Names (SANs) that the Load Balancer verifies during a TLS handshake with the backend.\nWhen the server presents its X.509 certificate to the Load Balancer, the Load Balancer inspects the certificate's SAN field,\nand requires that at least one SAN match one of the subjectAltNames in the list. This field is limited to 5 entries.\nWhen both sni and subjectAltNames are specified, the load balancer matches the backend certificate's SAN only to\nsubjectAltNames.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionBackendServiceTlsSettingsSubjectAltName:RegionBackendServiceTlsSettingsSubjectAltName":{"properties":{"dnsName":{"type":"string","description":"The SAN specified as a DNS Name.\n"},"uniformResourceIdentifier":{"type":"string","description":"The SAN specified as a URI.\n"}},"type":"object"},"gcp:compute/RegionCommitmentLicenseResource:RegionCommitmentLicenseResource":{"properties":{"amount":{"type":"string","description":"The number of licenses purchased.\n","willReplaceOnChanges":true},"coresPerLicense":{"type":"string","description":"Specifies the core range of the instance for which this license applies.\n","willReplaceOnChanges":true},"license":{"type":"string","description":"Any applicable license URI.\n","willReplaceOnChanges":true}},"type":"object","required":["license"]},"gcp:compute/RegionCommitmentResource:RegionCommitmentResource":{"properties":{"acceleratorType":{"type":"string","description":"Name of the accelerator type resource. Applicable only when the type is ACCELERATOR.\n","willReplaceOnChanges":true},"amount":{"type":"string","description":"The amount of the resource purchased (in a type-dependent unit,\nsuch as bytes). For vCPUs, this can just be an integer. For memory,\nthis must be provided in MB. Memory must be a multiple of 256 MB,\nwith up to 6.5GB of memory per every vCPU.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Type of resource for which this commitment applies.\nPossible values are VCPU, MEMORY, LOCAL_SSD, and ACCELERATOR.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionDiskAsyncPrimaryDisk:RegionDiskAsyncPrimaryDisk":{"properties":{"disk":{"type":"string","description":"Primary disk for asynchronous disk replication.\n","willReplaceOnChanges":true}},"type":"object","required":["disk"]},"gcp:compute/RegionDiskDiskEncryptionKey:RegionDiskDiskEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/RegionDiskGuestOsFeature:RegionDiskGuestOsFeature":{"properties":{"type":{"type":"string","description":"The type of supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options.\nPossible values are: `MULTI_IP_SUBNET`, `SECURE_BOOT`, `SEV_CAPABLE`, `UEFI_COMPATIBLE`, `VIRTIO_SCSI_MULTIQUEUE`, `WINDOWS`, `GVNIC`, `SEV_LIVE_MIGRATABLE`, `SEV_SNP_CAPABLE`, `SUSPEND_RESUME_COMPATIBLE`, `TDX_CAPABLE`.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/RegionDiskIamBindingCondition:RegionDiskIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/RegionDiskIamMemberCondition:RegionDiskIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/RegionDiskSourceSnapshotEncryptionKey:RegionDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"(Optional, Beta)\nThe name of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n","willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/RegionHealthCheckGrpcHealthCheck:RegionHealthCheckGrpcHealthCheck":{"properties":{"grpcServiceName":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n* Empty serviceName means the overall status of all services at the backend.\n* Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.\n"},"port":{"type":"integer","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if\u003cspan pulumi-lang-nodejs=\" portSpecification \" pulumi-lang-dotnet=\" PortSpecification \" pulumi-lang-go=\" portSpecification \" pulumi-lang-python=\" port_specification \" pulumi-lang-yaml=\" portSpecification \" pulumi-lang-java=\" portSpecification \"\u003e port_specification \u003c/span\u003eis USE_FIXED_PORT. Valid values are 1 through 65535.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, gRPC health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckGrpcTlsHealthCheck:RegionHealthCheckGrpcTlsHealthCheck":{"properties":{"grpcServiceName":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n* Empty serviceName means the overall status of all services at the backend.\n* Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.\n"},"port":{"type":"integer","description":"The port number for the health check request.\nMust be specified if\u003cspan pulumi-lang-nodejs=\" portSpecification \" pulumi-lang-dotnet=\" PortSpecification \" pulumi-lang-go=\" portSpecification \" pulumi-lang-python=\" port_specification \" pulumi-lang-yaml=\" portSpecification \" pulumi-lang-java=\" portSpecification \"\u003e port_specification \u003c/span\u003eis USE_FIXED_PORT. Valid values are 1 through 65535.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: Not supported for GRPC with TLS health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, gRPC health check follows behavior specified in the \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e field.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckHttp2HealthCheck:RegionHealthCheckHttp2HealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"requestPath":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckHttpHealthCheck:RegionHealthCheckHttpHealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, HTTP health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"requestPath":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckHttpsHealthCheck:RegionHealthCheckHttpsHealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, HTTPS health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"requestPath":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckLogConfig:RegionHealthCheckLogConfig":{"properties":{"enable":{"type":"boolean","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckSslHealthCheck:RegionHealthCheckSslHealthCheck":{"properties":{"port":{"type":"integer","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, HTTP2 health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/RegionHealthCheckTcpHealthCheck:RegionHealthCheckTcpHealthCheck":{"properties":{"port":{"type":"integer","description":"The TCP port number for the TCP health check request.\nThe default value is 80.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n* `USE_FIXED_PORT`: The port number in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e is used for health checking.\n* `USE_NAMED_PORT`: The `portName` is used for health checking.\n* `USE_SERVING_PORT`: For NetworkEndpointGroup, the port specified for each\nnetwork endpoint is used for health checking. For other backends, the\nport or named port specified in the Backend Service is used for health\nchecking.\nIf not specified, TCP health check follows behavior specified in \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and\n`portName` fields.\nPossible values are: `USE_FIXED_PORT`, `USE_NAMED_PORT`, `USE_SERVING_PORT`.\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend.\nDefault value is `NONE`.\nPossible values are: `NONE`, `PROXY_V1`.\n"},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerAllInstancesConfig:RegionInstanceGroupManagerAllInstancesConfig":{"properties":{"labels":{"type":"object","additionalProperties":{"type":"string"},"description":", The label key-value pairs that you want to patch onto the instance.\n\n- - -\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":", The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata).\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerAutoHealingPolicies:RegionInstanceGroupManagerAutoHealingPolicies":{"properties":{"healthCheck":{"type":"string","description":"The health check resource that signals autohealing.\n"},"initialDelaySec":{"type":"integer","description":"The number of seconds that the managed instance group waits before\nit applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.\n"}},"type":"object","required":["healthCheck","initialDelaySec"]},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicy:RegionInstanceGroupManagerInstanceFlexibilityPolicy":{"properties":{"instanceSelections":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection"},"description":"Named instance selections configuring properties that the group will use when creating new VMs.\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection":{"properties":{"disks":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk"},"description":"List of disks to be attached to the instances created from this selection.\n"},"machineTypes":{"type":"array","items":{"type":"string"},"description":"Full machine-type names, e.g. \"n1-standard-16\"\n"},"minCpuPlatform":{"type":"string","description":"Name of the minimum CPU platform to be used by this instance selection. e.g. 'Intel Ice Lake'\n"},"name":{"type":"string","description":"The name of the instance group manager. Must be 1-63\ncharacters long and comply with\n[RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters\ninclude lowercase letters, numbers, and hyphens.\n"},"rank":{"type":"integer","description":"Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.\n"}},"type":"object","required":["machineTypes","name"]},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk":{"properties":{"architecture":{"type":"string","description":", The architecture of the image. Allowed values are ARM64 or X86_64.\n"},"autoDelete":{"type":"boolean","description":", Whether or not the disk should be auto-deleted. This defaults to true.\n"},"boot":{"type":"boolean","description":", Indicates that this is a boot disk. This defaults to false.\n"},"deviceName":{"type":"string","description":", A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.\n"},"diskEncryptionKey":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey","description":", Encrypts or decrypts a disk using a customer-supplied encryption key.  Structure is documented below.\n"},"diskName":{"type":"string","description":", Name of the disk. When not provided, this defaults to the name of the instance.\n"},"diskSizeGb":{"type":"integer","description":", The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be one of 375 or 3000 GB, with a default of 375 GB.\n"},"diskType":{"type":"string","description":", The Google Compute Engine disk type. Such as \"pd-ssd\", \"local-ssd\", \"pd-balanced\" or \"pd-standard\".\n"},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":", A list of features to enable on the guest operating system. Applicable only for bootable images.\n"},"interface":{"type":"string","description":", Specifies the disk interface to use for attaching this disk.\n"},"labels":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel"},"description":", A set of key/value label pairs to assign to disks. Structure is documented below.\n"},"mode":{"type":"string","description":", The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.\n"},"provisionedIops":{"type":"integer","description":", Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details, see the [Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk) or the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks) depending on the selected disk_type.\n"},"provisionedThroughput":{"type":"integer","description":", Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\n"},"resourceManagerTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag"},"description":", A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty. Structure is documented below.\n"},"resourcePolicies":{"type":"string","description":", A list (short name or id) of resource policies to attach to this disk. Currently a max of 1 resource policy is supported.\n"},"source":{"type":"string","description":", The name (not self_link) of the disk (such as those managed by google_compute_disk) to attach. \u003e Note: Either source or\u003cspan pulumi-lang-nodejs=\" sourceImage \" pulumi-lang-dotnet=\" SourceImage \" pulumi-lang-go=\" sourceImage \" pulumi-lang-python=\" source_image \" pulumi-lang-yaml=\" sourceImage \" pulumi-lang-java=\" sourceImage \"\u003e source_image \u003c/span\u003eis required when creating a new instance except for when creating a local SSD.\n"},"sourceImage":{"type":"string","description":", The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. \u003e Note: Either source or\u003cspan pulumi-lang-nodejs=\" sourceImage \" pulumi-lang-dotnet=\" SourceImage \" pulumi-lang-go=\" sourceImage \" pulumi-lang-python=\" source_image \" pulumi-lang-yaml=\" sourceImage \" pulumi-lang-java=\" sourceImage \"\u003e source_image \u003c/span\u003eis required when creating a new instance except for when creating a local SSD.\n"},"sourceImageEncryptionKey":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey","description":", The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys. Structure is documented below.\n"},"sourceSnapshot":{"type":"string","description":", The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot, initializeParams.sourceImage, or disks.source is required except for local SSD.\n"},"sourceSnapshotEncryptionKey":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey","description":", The customer-supplied encryption key of the source snapshot. Structure is documented below.\n- - -\n"},"type":{"type":"string","description":", The type of Google Compute Engine disk, can be either \"SCRATCH\" or \"PERSISTENT\".\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":", The self link of the encryption key that is stored in Google Cloud KMS.\n- - -\n"},"kmsKeyServiceAccount":{"type":"string","description":", The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":", Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true},"rsaEncryptedKey":{"type":"string","description":", Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel":{"properties":{"key":{"type":"string","description":", The unique key of the label to assign to disks.\n"},"value":{"type":"string","description":", The value of the label to assign to disks.\n- - -\n"}},"type":"object","required":["key","value"]},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag":{"properties":{"key":{"type":"string","description":", The unique key of the resource manager tag to assign to disks. Keys must be in the format tagKeys/{tag_key_id}.\n"},"value":{"type":"string","description":", The value of the resource manager tag to assign to disks. Values must be in the format tagValues/456.\n- - -\n"}},"type":"object","required":["key","value"]},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":", The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n- - -\n"},"kmsKeyServiceAccount":{"type":"string","description":", The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":", Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true},"rsaEncryptedKey":{"type":"string","description":", Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey:RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":", The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n- - -\n"},"kmsKeyServiceAccount":{"type":"string","description":", The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":", Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true},"rsaEncryptedKey":{"type":"string","description":", Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n","secret":true}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicy:RegionInstanceGroupManagerInstanceLifecyclePolicy":{"properties":{"defaultActionOnFailure":{"type":"string","description":", Specifies the action that a MIG performs on a failed VM. If the value of the \u003cspan pulumi-lang-nodejs=\"`onFailedHealthCheck`\" pulumi-lang-dotnet=\"`OnFailedHealthCheck`\" pulumi-lang-go=\"`onFailedHealthCheck`\" pulumi-lang-python=\"`on_failed_health_check`\" pulumi-lang-yaml=\"`onFailedHealthCheck`\" pulumi-lang-java=\"`onFailedHealthCheck`\"\u003e`on_failed_health_check`\u003c/span\u003e field is `DEFAULT_ACTION`, then the same action also applies to the VMs on which your application fails a health check. Valid options are: `DO_NOTHING`, `REPAIR`. If `DO_NOTHING`, then MIG does not repair a failed VM. If `REPAIR` (default), then MIG automatically repairs a failed VM by recreating it. For more information, see about repairing VMs in a MIG.\n"},"forceUpdateOnRepair":{"type":"string","description":", Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type.\n"},"onFailedHealthCheck":{"type":"string","description":", Specifies the action that a MIG performs on an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid options are: `DEFAULT_ACTION`, `DO_NOTHING`, `REPAIR`. If `DEFAULT_ACTION` (default), then MIG uses the same action configured for the  \u003cspan pulumi-lang-nodejs=\"`defaultActionOnFailure`\" pulumi-lang-dotnet=\"`DefaultActionOnFailure`\" pulumi-lang-go=\"`defaultActionOnFailure`\" pulumi-lang-python=\"`default_action_on_failure`\" pulumi-lang-yaml=\"`defaultActionOnFailure`\" pulumi-lang-java=\"`defaultActionOnFailure`\"\u003e`default_action_on_failure`\u003c/span\u003e field. If `DO_NOTHING`, then MIG does not repair unhealthy VM. If `REPAIR`, then MIG automatically repairs an unhealthy VM by recreating it. For more information, see about repairing VMs in a MIG.\n"},"onRepair":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair:RegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair","description":"), Configuration for VM repairs in the MIG. Structure is documented below.\n- - -\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["onRepair"]}}},"gcp:compute/RegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair:RegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair":{"properties":{"allowChangingZone":{"type":"string","description":", Specifies whether the MIG can change a VM's zone during a repair. If \"YES\", MIG can select a different zone for the VM during a repair. Else if \"NO\", MIG cannot change a VM's zone during a repair. The default value of\u003cspan pulumi-lang-nodejs=\" allowChangingZone \" pulumi-lang-dotnet=\" AllowChangingZone \" pulumi-lang-go=\" allowChangingZone \" pulumi-lang-python=\" allow_changing_zone \" pulumi-lang-yaml=\" allowChangingZone \" pulumi-lang-java=\" allowChangingZone \"\u003e allow_changing_zone \u003c/span\u003eis \"NO\".\n\n- - -\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedInstanceFlexibilityPolicy\"\" pulumi-lang-dotnet=\"\"NestedInstanceFlexibilityPolicy\"\" pulumi-lang-go=\"\"nestedInstanceFlexibilityPolicy\"\" pulumi-lang-python=\"\"nested_instance_flexibility_policy\"\" pulumi-lang-yaml=\"\"nestedInstanceFlexibilityPolicy\"\" pulumi-lang-java=\"\"nestedInstanceFlexibilityPolicy\"\"\u003e\"nested_instance_flexibility_policy\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`instanceFlexibilityPolicy`\" pulumi-lang-dotnet=\"`InstanceFlexibilityPolicy`\" pulumi-lang-go=\"`instanceFlexibilityPolicy`\" pulumi-lang-python=\"`instance_flexibility_policy`\" pulumi-lang-yaml=\"`instanceFlexibilityPolicy`\" pulumi-lang-java=\"`instanceFlexibilityPolicy`\"\u003e`instance_flexibility_policy`\u003c/span\u003e block supports:\n\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerNamedPort:RegionInstanceGroupManagerNamedPort":{"properties":{"name":{"type":"string","description":"The name of the port.\n"},"port":{"type":"integer","description":"The port number.\n- - -\n"}},"type":"object","required":["name","port"]},"gcp:compute/RegionInstanceGroupManagerParams:RegionInstanceGroupManagerParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456. For more information, see [Manage tags for resources](https://cloud.google.com/compute/docs/tag-resources)\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerStandbyPolicy:RegionInstanceGroupManagerStandbyPolicy":{"properties":{"initialDelaySec":{"type":"integer","description":"Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.\n"},"mode":{"type":"string","description":"Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. Valid options are: `MANUAL`, `SCALE_OUT_POOL`. If `MANUAL`(default), you have full control over which VMs are stopped and suspended in the MIG. If `SCALE_OUT_POOL`, the MIG uses the VMs from the standby pools to accelerate the scale out by resuming or starting them and then automatically replenishes the standby pool with new VMs to maintain the target sizes.\n- - -\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["initialDelaySec","mode"]}}},"gcp:compute/RegionInstanceGroupManagerStatefulDisk:RegionInstanceGroupManagerStatefulDisk":{"properties":{"deleteRule":{"type":"string","description":", A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. `NEVER` - detach the disk when the VM is deleted, but do not delete the disk. `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently deleted from the instance group. The default is `NEVER`.\n"},"deviceName":{"type":"string","description":", The device name of the disk to be attached.\n"}},"type":"object","required":["deviceName"]},"gcp:compute/RegionInstanceGroupManagerStatefulExternalIp:RegionInstanceGroupManagerStatefulExternalIp":{"properties":{"deleteRule":{"type":"string","description":", A value that prescribes what should happen to the external ip when the VM instance is deleted. The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. `NEVER` - detach the ip when the VM is deleted, but do not delete the ip. `ON_PERMANENT_INSTANCE_DELETION` will delete the external ip when the VM is permanently deleted from the instance group.\n"},"interfaceName":{"type":"string","description":", The network interface name of the external Ip. Possible value: \u003cspan pulumi-lang-nodejs=\"`nic0`\" pulumi-lang-dotnet=\"`Nic0`\" pulumi-lang-go=\"`nic0`\" pulumi-lang-python=\"`nic0`\" pulumi-lang-yaml=\"`nic0`\" pulumi-lang-java=\"`nic0`\"\u003e`nic0`\u003c/span\u003e.\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerStatefulInternalIp:RegionInstanceGroupManagerStatefulInternalIp":{"properties":{"deleteRule":{"type":"string","description":", A value that prescribes what should happen to the internal ip when the VM instance is deleted. The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`. `NEVER` - detach the ip when the VM is deleted, but do not delete the ip. `ON_PERMANENT_INSTANCE_DELETION` will delete the internal ip when the VM is permanently deleted from the instance group.\n"},"interfaceName":{"type":"string","description":", The network interface name of the internal Ip. Possible value: \u003cspan pulumi-lang-nodejs=\"`nic0`\" pulumi-lang-dotnet=\"`Nic0`\" pulumi-lang-go=\"`nic0`\" pulumi-lang-python=\"`nic0`\" pulumi-lang-yaml=\"`nic0`\" pulumi-lang-java=\"`nic0`\"\u003e`nic0`\u003c/span\u003e.\n"}},"type":"object"},"gcp:compute/RegionInstanceGroupManagerStatus:RegionInstanceGroupManagerStatus":{"properties":{"allInstancesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerStatusAllInstancesConfig:RegionInstanceGroupManagerStatusAllInstancesConfig"},"description":"Properties to set on all instances in the group. After setting\nallInstancesConfig on the group, you must update the group's instances to\napply the configuration.\n"},"isStable":{"type":"boolean","description":"A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.\n"},"statefuls":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerStatusStateful:RegionInstanceGroupManagerStatusStateful"},"description":"Stateful status of the given Instance Group Manager.\n"},"versionTargets":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerStatusVersionTarget:RegionInstanceGroupManagerStatusVersionTarget"},"description":"A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allInstancesConfigs","isStable","statefuls","versionTargets"]}}},"gcp:compute/RegionInstanceGroupManagerStatusAllInstancesConfig:RegionInstanceGroupManagerStatusAllInstancesConfig":{"properties":{"currentRevision":{"type":"string","description":"Current all-instances configuration revision. This value is in RFC3339 text format.\n"},"effective":{"type":"boolean","description":"A bit indicating whether this configuration has been applied to all managed instances in the group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["currentRevision","effective"]}}},"gcp:compute/RegionInstanceGroupManagerStatusStateful:RegionInstanceGroupManagerStatusStateful":{"properties":{"hasStatefulConfig":{"type":"boolean","description":"A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.\n"},"perInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerStatusStatefulPerInstanceConfig:RegionInstanceGroupManagerStatusStatefulPerInstanceConfig"},"description":"Status of per-instance configs on the instances.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hasStatefulConfig","perInstanceConfigs"]}}},"gcp:compute/RegionInstanceGroupManagerStatusStatefulPerInstanceConfig:RegionInstanceGroupManagerStatusStatefulPerInstanceConfig":{"properties":{"allEffective":{"type":"boolean","description":"A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status `EFFECTIVE` or there are no per-instance-configs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allEffective"]}}},"gcp:compute/RegionInstanceGroupManagerStatusVersionTarget:RegionInstanceGroupManagerStatusVersionTarget":{"properties":{"isReached":{"type":"boolean","description":"A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["isReached"]}}},"gcp:compute/RegionInstanceGroupManagerUpdatePolicy:RegionInstanceGroupManagerUpdatePolicy":{"properties":{"instanceRedistributionType":{"type":"string","description":"The instance redistribution policy for regional managed instance groups. Valid values are: `\"PROACTIVE\"`, `\"NONE\"`. If `PROACTIVE` (default), the group attempts to maintain an even distribution of VM instances across zones in the region. If `NONE`, proactive redistribution is disabled.\n"},"maxSurgeFixed":{"type":"integer","description":", Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with \u003cspan pulumi-lang-nodejs=\"`maxSurgePercent`\" pulumi-lang-dotnet=\"`MaxSurgePercent`\" pulumi-lang-go=\"`maxSurgePercent`\" pulumi-lang-python=\"`max_surge_percent`\" pulumi-lang-yaml=\"`maxSurgePercent`\" pulumi-lang-java=\"`maxSurgePercent`\"\u003e`max_surge_percent`\u003c/span\u003e. Both cannot be 0.\n"},"maxSurgePercent":{"type":"integer","description":", Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with \u003cspan pulumi-lang-nodejs=\"`maxSurgeFixed`\" pulumi-lang-dotnet=\"`MaxSurgeFixed`\" pulumi-lang-go=\"`maxSurgeFixed`\" pulumi-lang-python=\"`max_surge_fixed`\" pulumi-lang-yaml=\"`maxSurgeFixed`\" pulumi-lang-java=\"`maxSurgeFixed`\"\u003e`max_surge_fixed`\u003c/span\u003e.\n"},"maxUnavailableFixed":{"type":"integer","description":", Specifies a fixed number of VM instances. This must be a positive integer.\n"},"maxUnavailablePercent":{"type":"integer","description":", Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%..\n"},"minReadySec":{"type":"integer","description":"), Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600]\n"},"minimalAction":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either `NONE` to forbid any actions, `REFRESH` to update without stopping instances, `RESTART` to restart existing instances or `REPLACE` to delete and create new instances from the target template. If you specify a `REFRESH`, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.\n"},"mostDisruptiveAllowedAction":{"type":"string","description":"Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.\n"},"replacementMethod":{"type":"string","description":", The instance replacement method for managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved.  You must also set\u003cspan pulumi-lang-nodejs=\" maxUnavailableFixed \" pulumi-lang-dotnet=\" MaxUnavailableFixed \" pulumi-lang-go=\" maxUnavailableFixed \" pulumi-lang-python=\" max_unavailable_fixed \" pulumi-lang-yaml=\" maxUnavailableFixed \" pulumi-lang-java=\" maxUnavailableFixed \"\u003e max_unavailable_fixed \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" maxUnavailablePercent \" pulumi-lang-dotnet=\" MaxUnavailablePercent \" pulumi-lang-go=\" maxUnavailablePercent \" pulumi-lang-python=\" max_unavailable_percent \" pulumi-lang-yaml=\" maxUnavailablePercent \" pulumi-lang-java=\" maxUnavailablePercent \"\u003e max_unavailable_percent \u003c/span\u003eto be greater than 0.\n- - -\n"},"type":{"type":"string","description":"The type of update process. You can specify either `PROACTIVE` so that the instance group manager proactively executes actions in order to bring instances to their target versions or `OPPORTUNISTIC` so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).\n"}},"type":"object","required":["minimalAction","type"],"language":{"nodejs":{"requiredOutputs":["maxSurgeFixed","maxUnavailableFixed","minimalAction","type"]}}},"gcp:compute/RegionInstanceGroupManagerVersion:RegionInstanceGroupManagerVersion":{"properties":{"instanceTemplate":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.\n"},"name":{"type":"string","description":"Version name.\n"},"targetSize":{"$ref":"#/types/gcp:compute/RegionInstanceGroupManagerVersionTargetSize:RegionInstanceGroupManagerVersionTargetSize","description":"The number of instances calculated as a fixed number or a percentage depending on the settings. Structure is documented below.\n\n\u003e Exactly one \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e you specify must not have a \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e specified. During a rolling update, the instance group manager will fulfill the \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e\nconstraints of every other \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e, and any remaining instances will be provisioned with the version where \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e is unset.\n"}},"type":"object","required":["instanceTemplate"]},"gcp:compute/RegionInstanceGroupManagerVersionTargetSize:RegionInstanceGroupManagerVersionTargetSize":{"properties":{"fixed":{"type":"integer","description":", The number of instances which are managed for this version. Conflicts with \u003cspan pulumi-lang-nodejs=\"`percent`\" pulumi-lang-dotnet=\"`Percent`\" pulumi-lang-go=\"`percent`\" pulumi-lang-python=\"`percent`\" pulumi-lang-yaml=\"`percent`\" pulumi-lang-java=\"`percent`\"\u003e`percent`\u003c/span\u003e.\n"},"percent":{"type":"integer","description":", The number of instances (calculated as percentage) which are managed for this version. Conflicts with \u003cspan pulumi-lang-nodejs=\"`fixed`\" pulumi-lang-dotnet=\"`Fixed`\" pulumi-lang-go=\"`fixed`\" pulumi-lang-python=\"`fixed`\" pulumi-lang-yaml=\"`fixed`\" pulumi-lang-java=\"`fixed`\"\u003e`fixed`\u003c/span\u003e.\nNote that when using \u003cspan pulumi-lang-nodejs=\"`percent`\" pulumi-lang-dotnet=\"`Percent`\" pulumi-lang-go=\"`percent`\" pulumi-lang-python=\"`percent`\" pulumi-lang-yaml=\"`percent`\" pulumi-lang-java=\"`percent`\"\u003e`percent`\u003c/span\u003e, rounding will be in favor of explicitly set \u003cspan pulumi-lang-nodejs=\"`targetSize`\" pulumi-lang-dotnet=\"`TargetSize`\" pulumi-lang-go=\"`targetSize`\" pulumi-lang-python=\"`target_size`\" pulumi-lang-yaml=\"`targetSize`\" pulumi-lang-java=\"`targetSize`\"\u003e`target_size`\u003c/span\u003e values; a managed instance group with 2 instances and 2 \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003es,\none of which has a `target_size.percent` of \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e will create 2 instances of that \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e.\n"}},"type":"object"},"gcp:compute/RegionInstanceTemplateAdvancedMachineFeatures:RegionInstanceTemplateAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Defines whether the instance should have nested virtualization enabled. Defaults to false.\n","willReplaceOnChanges":true},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking for instance creation.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"[The PMU](https://cloud.google.com/compute/docs/pmu-overview) is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are `STANDARD`, `ENHANCED`, and `ARCHITECTURAL`.\n","willReplaceOnChanges":true},"threadsPerCore":{"type":"integer","description":"The 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","willReplaceOnChanges":true},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Supported modes are currently either `ALL_CORE_MAX` or unset (default).\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","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceTemplateConfidentialInstanceConfig:RegionInstanceTemplateConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the confidential computing technology the instance uses. SEV is an AMD feature. TDX is an Intel feature. One of the following values is required: `SEV`, `SEV_SNP`, `TDX`. \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e can be set to MIGRATE if \u003cspan pulumi-lang-nodejs=\"`confidentialInstanceType`\" pulumi-lang-dotnet=\"`ConfidentialInstanceType`\" pulumi-lang-go=\"`confidentialInstanceType`\" pulumi-lang-python=\"`confidential_instance_type`\" pulumi-lang-yaml=\"`confidentialInstanceType`\" pulumi-lang-java=\"`confidentialInstanceType`\"\u003e`confidential_instance_type`\u003c/span\u003e is set to `SEV` and \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e is set to `\"AMD Milan\"`. Otherwise, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM. If `SEV_SNP`, currently \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e has to be set to `\"AMD Milan\"` or this will fail to create the VM.\n","willReplaceOnChanges":true},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled with AMD SEV. If enabled, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e can be set to MIGRATE if \u003cspan pulumi-lang-nodejs=\"`minCpuPlatform`\" pulumi-lang-dotnet=\"`MinCpuPlatform`\" pulumi-lang-go=\"`minCpuPlatform`\" pulumi-lang-python=\"`min_cpu_platform`\" pulumi-lang-yaml=\"`minCpuPlatform`\" pulumi-lang-java=\"`minCpuPlatform`\"\u003e`min_cpu_platform`\u003c/span\u003e is set to `\"AMD Milan\"`. Otherwise, \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceTemplateDisk:RegionInstanceTemplateDisk":{"properties":{"architecture":{"type":"string","description":"The architecture of the attached disk. Valid values are `ARM64` or \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoDelete":{"type":"boolean","description":"Whether or not the disk should be auto-deleted.\nThis defaults to true.\n","willReplaceOnChanges":true},"boot":{"type":"boolean","description":"Indicates that this is a boot disk.\n","willReplaceOnChanges":true},"deviceName":{"type":"string","description":"A unique device name that is reflected into the\n/dev/  tree of a Linux operating system running within the instance. If not\nspecified, the server chooses a default device name to apply to this disk.\n","willReplaceOnChanges":true},"diskEncryptionKey":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateDiskDiskEncryptionKey:RegionInstanceTemplateDiskDiskEncryptionKey","description":"Encrypts or decrypts a disk using a customer-supplied encryption key.\n\nIf you are creating a new disk, this field encrypts the new disk using an encryption key that you provide. If you are attaching an existing disk that is already encrypted, this field decrypts the disk using the customer-supplied encryption key.\n\nIf you encrypt a disk using a customer-supplied key, you must provide the same key again when you attempt to use this resource at a later time. For example, you must provide the key when you create a snapshot or an image from the disk or when you attach the disk to a virtual machine instance.\n\nIf you do not provide an encryption key, then the disk will be encrypted using an automatically generated key and you do not need to provide a key to use the disk later.\n\nInstance templates do not store customer-supplied encryption keys, so you cannot use your own keys to encrypt disks in a managed instance group. Structure documented below.\n","willReplaceOnChanges":true},"diskName":{"type":"string","description":"Name of the disk. When not provided, this defaults\nto the name of the instance.\n","willReplaceOnChanges":true},"diskSizeGb":{"type":"integer","description":"The size of the image in gigabytes. If not\nspecified, it will inherit the size of its base image. For SCRATCH disks,\nthe size must be exactly 375GB.\n","willReplaceOnChanges":true},"diskType":{"type":"string","description":"The GCE disk type. Such as `\"pd-ssd\"`, `\"local-ssd\"`,\n`\"pd-balanced\"` or `\"pd-standard\"`.\n","willReplaceOnChanges":true},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk,\nwhich is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI\nand the request will fail if you attempt to attach a persistent disk in any other format\nthan SCSI. Local SSDs can use either NVME or SCSI.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of ket/value label pairs to assign to disk created from\nthis template\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE\nor READ_ONLY. If you are attaching or creating a boot disk, this must\nread-write mode.\n","willReplaceOnChanges":true},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details, see the [Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk) or the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks) depending on the selected disk_type.\n","willReplaceOnChanges":true},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\n","willReplaceOnChanges":true},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key/value resource manager tag pairs to bind to this disk. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456.\n","willReplaceOnChanges":true},"resourcePolicies":{"type":"string","description":"- A list (short name or id) of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.\n","willReplaceOnChanges":true},"source":{"type":"string","description":"The name (**not self_link**)\nof the disk (such as those managed by \u003cspan pulumi-lang-nodejs=\"`gcp.compute.Disk`\" pulumi-lang-dotnet=\"`gcp.compute.Disk`\" pulumi-lang-go=\"`compute.Disk`\" pulumi-lang-python=\"`compute.Disk`\" pulumi-lang-yaml=\"`gcp.compute.Disk`\" pulumi-lang-java=\"`gcp.compute.Disk`\"\u003e`gcp.compute.Disk`\u003c/span\u003e) to attach.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`sourceSnapshot`\" pulumi-lang-dotnet=\"`SourceSnapshot`\" pulumi-lang-go=\"`sourceSnapshot`\" pulumi-lang-python=\"`source_snapshot`\" pulumi-lang-yaml=\"`sourceSnapshot`\" pulumi-lang-java=\"`sourceSnapshot`\"\u003e`source_snapshot`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n","willReplaceOnChanges":true},"sourceImage":{"type":"string","description":"The image from which to\ninitialize this disk. This can be one of: the image's \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e,\n`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}`.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`sourceSnapshot`\" pulumi-lang-dotnet=\"`SourceSnapshot`\" pulumi-lang-go=\"`sourceSnapshot`\" pulumi-lang-python=\"`source_snapshot`\" pulumi-lang-yaml=\"`sourceSnapshot`\" pulumi-lang-java=\"`sourceSnapshot`\"\u003e`source_snapshot`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n","willReplaceOnChanges":true},"sourceImageEncryptionKey":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateDiskSourceImageEncryptionKey:RegionInstanceTemplateDiskSourceImageEncryptionKey","description":"The customer-supplied encryption\nkey of the source image. Required if the source image is protected by a\ncustomer-supplied encryption key.\n\nInstance templates do not store customer-supplied encryption keys, so you\ncannot create disks for instances in a managed instance group if the source\nimages are encrypted with your own keys. Structure\ndocumented below.\n","willReplaceOnChanges":true},"sourceSnapshot":{"type":"string","description":"The source snapshot to create this disk.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`sourceSnapshot`\" pulumi-lang-dotnet=\"`SourceSnapshot`\" pulumi-lang-go=\"`sourceSnapshot`\" pulumi-lang-python=\"`source_snapshot`\" pulumi-lang-yaml=\"`sourceSnapshot`\" pulumi-lang-java=\"`sourceSnapshot`\"\u003e`source_snapshot`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n","willReplaceOnChanges":true},"sourceSnapshotEncryptionKey":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateDiskSourceSnapshotEncryptionKey:RegionInstanceTemplateDiskSourceSnapshotEncryptionKey","description":"The customer-supplied encryption\nkey of the source snapshot. Structure\ndocumented below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of GCE disk, can be either `\"SCRATCH\"` or\n`\"PERSISTENT\"`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["architecture","boot","deviceName","diskSizeGb","diskType","interface","mode","provisionedIops","provisionedThroughput","sourceImage","type"]}}},"gcp:compute/RegionInstanceTemplateDiskDiskEncryptionKey:RegionInstanceTemplateDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the\nencryption request for the given KMS key. If absent, the Compute Engine\ndefault service account is used.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceTemplateDiskSourceImageEncryptionKey:RegionInstanceTemplateDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is\nstored in Google Cloud KMS. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the\nencryption request for the given KMS key. If absent, the Compute Engine\ndefault service account is used.\n","willReplaceOnChanges":true},"rawKey":{"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 decrypt the given image. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to decrypt the given image. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceTemplateDiskSourceSnapshotEncryptionKey:RegionInstanceTemplateDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is\nstored in Google Cloud KMS. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the\nencryption request for the given KMS key. If absent, the Compute Engine\ndefault service account is used.\n","willReplaceOnChanges":true},"rawKey":{"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 decrypt this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit [customer-supplied encryption key]\n(https://cloud.google.com/compute/docs/disks/customer-supplied-encryption) to decrypt this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`kmsKeySelfLink`\" pulumi-lang-dotnet=\"`KmsKeySelfLink`\" pulumi-lang-go=\"`kmsKeySelfLink`\" pulumi-lang-python=\"`kms_key_self_link`\" pulumi-lang-yaml=\"`kmsKeySelfLink`\" pulumi-lang-java=\"`kmsKeySelfLink`\"\u003e`kms_key_self_link`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsaEncryptedKey`\" pulumi-lang-dotnet=\"`RsaEncryptedKey`\" pulumi-lang-go=\"`rsaEncryptedKey`\" pulumi-lang-python=\"`rsa_encrypted_key`\" pulumi-lang-yaml=\"`rsaEncryptedKey`\" pulumi-lang-java=\"`rsaEncryptedKey`\"\u003e`rsa_encrypted_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`rawKey`\" pulumi-lang-dotnet=\"`RawKey`\" pulumi-lang-go=\"`rawKey`\" pulumi-lang-python=\"`raw_key`\" pulumi-lang-yaml=\"`rawKey`\" pulumi-lang-java=\"`rawKey`\"\u003e`raw_key`\u003c/span\u003e\nmay be set.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceTemplateGuestAccelerator:RegionInstanceTemplateGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"]},"gcp:compute/RegionInstanceTemplateNetworkInterface:RegionInstanceTemplateNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateNetworkInterfaceAccessConfig:RegionInstanceTemplateNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this\ninstance can be accessed via the Internet. Omit to ensure that the instance\nis not accessible from the Internet (this means that ssh provisioners will\nnot work unless you are running Terraform can send traffic to the instance's\nnetwork (e.g. via tunnel or because it is running on another cloud instance\non that network). This block can be specified once per \u003cspan pulumi-lang-nodejs=\"`networkInterface`\" pulumi-lang-dotnet=\"`NetworkInterface`\" pulumi-lang-go=\"`networkInterface`\" pulumi-lang-python=\"`network_interface`\" pulumi-lang-yaml=\"`networkInterface`\" pulumi-lang-java=\"`networkInterface`\"\u003e`network_interface`\u003c/span\u003e. Structure documented below.\n","willReplaceOnChanges":true},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateNetworkInterfaceAliasIpRange:RegionInstanceTemplateNetworkInterfaceAliasIpRange"},"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","willReplaceOnChanges":true},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n","willReplaceOnChanges":true},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateNetworkInterfaceIpv6AccessConfig:RegionInstanceTemplateNetworkInterfaceIpv6AccessConfig"},"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","willReplaceOnChanges":true},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n","willReplaceOnChanges":true},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the instance template. If you leave\nthis blank, Terraform will auto-generate a unique name.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network to attach this interface to.\nUse \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e attribute for Legacy or Auto subnetted networks and\n\u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e for custom subnetted networks.\n","willReplaceOnChanges":true},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.\n","willReplaceOnChanges":true},"networkIp":{"type":"string","description":"The private IP address to assign to the instance. If\nempty, the address will be automatically assigned.\n","willReplaceOnChanges":true},"nicType":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values: GVNIC, VIRTIO_NET, MRDMA, IRDMA.\n","willReplaceOnChanges":true},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"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, IPV6_ONLY or IPV4_ONLY. If not specified, IPV4_ONLY will be used.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"the name of the subnetwork to attach this interface\nto. The subnetwork must exist in the same \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e this instance will be\ncreated in. Either \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e must be provided.\n","willReplaceOnChanges":true},"subnetworkProject":{"type":"string","description":"The ID of the project in which the subnetwork belongs.\nIf it is not provided, the provider project is used.\n","willReplaceOnChanges":true},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["igmpQuery","internalIpv6PrefixLength","ipv6AccessConfigs","ipv6AccessType","ipv6Address","name","network","networkAttachment","parentNicName","stackType","subnetwork","subnetworkProject"]}}},"gcp:compute/RegionInstanceTemplateNetworkInterfaceAccessConfig:RegionInstanceTemplateNetworkInterfaceAccessConfig":{"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","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the\nsubnet has an external subnet. Only PREMIUM and STANDARD tier is valid for IPv6.\n","willReplaceOnChanges":true},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["natIp","networkTier","publicPtrDomainName"]}}},"gcp:compute/RegionInstanceTemplateNetworkInterfaceAliasIpRange:RegionInstanceTemplateNetworkInterfaceAliasIpRange":{"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. At the time of writing only a\nnetmask (e.g. /24) may be supplied, with a CIDR format resulting in an API\nerror.\n","willReplaceOnChanges":true},"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","willReplaceOnChanges":true}},"type":"object","required":["ipCidrRange"]},"gcp:compute/RegionInstanceTemplateNetworkInterfaceIpv6AccessConfig:RegionInstanceTemplateNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.\n","willReplaceOnChanges":true},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the instance template. If you leave\nthis blank, Terraform will auto-generate a unique name.\n","willReplaceOnChanges":true},"networkTier":{"type":"string","description":"The service-level to be provided for IPv6 traffic when the subnet has an external subnet. Only PREMIUM tier is valid for IPv6\n","willReplaceOnChanges":true},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n","willReplaceOnChanges":true}},"type":"object","required":["networkTier"],"language":{"nodejs":{"requiredOutputs":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName"]}}},"gcp:compute/RegionInstanceTemplateNetworkPerformanceConfig:RegionInstanceTemplateNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier to enable. Possible values: TIER_1, DEFAULT\n","willReplaceOnChanges":true}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:compute/RegionInstanceTemplateReservationAffinity:RegionInstanceTemplateReservationAffinity":{"properties":{"specificReservation":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateReservationAffinitySpecificReservation:RegionInstanceTemplateReservationAffinitySpecificReservation","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/RegionInstanceTemplateReservationAffinitySpecificReservation:RegionInstanceTemplateReservationAffinitySpecificReservation":{"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/RegionInstanceTemplateScheduling:RegionInstanceTemplateScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies whether the instance should be\nautomatically restarted if it is terminated by Compute Engine (not\nterminated by a user). This defaults to true.\n","willReplaceOnChanges":true},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain to place the instance in. The value must be a number between 1 and the number of availability domains specified in the spread placement policy attached to the instance.\n","willReplaceOnChanges":true},"gracefulShutdown":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateSchedulingGracefulShutdown:RegionInstanceTemplateSchedulingGracefulShutdown","description":"Settings for the instance to perform a graceful shutdown.\n","willReplaceOnChanges":true},"hostErrorTimeoutSeconds":{"type":"integer","description":"Beta Specifies the time in seconds for host error detection, the value must be within the range of [90, 330] with the increment of 30, if unset, the default behavior of host error recovery will be used.\n","willReplaceOnChanges":true},"instanceTerminationAction":{"type":"string","description":"Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`.  Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n","willReplaceOnChanges":true},"localSsdRecoveryTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout:RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout"},"description":"Specifies the maximum amount of time a Local Ssd Vm should wait while\n  recovery of the Local Ssd state is attempted. Its value should be in\n  between 0 and 168 hours with hour granularity and the default value being 1\n  hour.\n","willReplaceOnChanges":true},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\n","willReplaceOnChanges":true},"maxRunDuration":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateSchedulingMaxRunDuration:RegionInstanceTemplateSchedulingMaxRunDuration","description":"The duration of the instance. Instance will run and be terminated after then, the termination action could be defined in \u003cspan pulumi-lang-nodejs=\"`instanceTerminationAction`\" pulumi-lang-dotnet=\"`InstanceTerminationAction`\" pulumi-lang-go=\"`instanceTerminationAction`\" pulumi-lang-python=\"`instance_termination_action`\" pulumi-lang-yaml=\"`instanceTerminationAction`\" pulumi-lang-java=\"`instanceTerminationAction`\"\u003e`instance_termination_action`\u003c/span\u003e. Only support `DELETE` \u003cspan pulumi-lang-nodejs=\"`instanceTerminationAction`\" pulumi-lang-dotnet=\"`InstanceTerminationAction`\" pulumi-lang-go=\"`instanceTerminationAction`\" pulumi-lang-python=\"`instance_termination_action`\" pulumi-lang-yaml=\"`instanceTerminationAction`\" pulumi-lang-java=\"`instanceTerminationAction`\"\u003e`instance_termination_action`\u003c/span\u003e at this point. Structure is documented below.\n","willReplaceOnChanges":true},"minNodeCpus":{"type":"integer","description":"Minimum number of cpus for the instance.\n","willReplaceOnChanges":true},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateSchedulingNodeAffinity:RegionInstanceTemplateSchedulingNodeAffinity"},"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","willReplaceOnChanges":true},"onHostMaintenance":{"type":"string","description":"Defines the maintenance behavior for this\ninstance.\n","willReplaceOnChanges":true},"onInstanceStopAction":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateSchedulingOnInstanceStopAction:RegionInstanceTemplateSchedulingOnInstanceStopAction","description":"Defines the behaviour for instances with the instance_termination_action.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Allows instance to be preempted. This defaults to\nfalse. Read more on this\n[here](https://cloud.google.com/compute/docs/instances/preemptible).\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\u003cspan pulumi-lang-nodejs=\"`preemptible`\" pulumi-lang-dotnet=\"`Preemptible`\" pulumi-lang-go=\"`preemptible`\" pulumi-lang-python=\"`preemptible`\" pulumi-lang-yaml=\"`preemptible`\" pulumi-lang-java=\"`preemptible`\"\u003e`preemptible`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`automaticRestart`\" pulumi-lang-dotnet=\"`AutomaticRestart`\" pulumi-lang-go=\"`automaticRestart`\" pulumi-lang-python=\"`automatic_restart`\" pulumi-lang-yaml=\"`automaticRestart`\" pulumi-lang-java=\"`automaticRestart`\"\u003e`automatic_restart`\u003c/span\u003e should be\n\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. For more info about\n`SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)\n","willReplaceOnChanges":true},"skipGuestOsShutdown":{"type":"boolean","description":"Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["onHostMaintenance","provisioningModel"]}}},"gcp:compute/RegionInstanceTemplateSchedulingGracefulShutdown:RegionInstanceTemplateSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n","willReplaceOnChanges":true},"maxDuration":{"$ref":"#/types/gcp:compute/RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration:RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration","description":"The time allotted for the instance to gracefully shut down.\nIf the graceful shutdown isn't complete after this time, then the instance\ntransitions to the STOPPING state. Structure is documented below:\n"}},"type":"object","required":["enabled"]},"gcp:compute/RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration:RegionInstanceTemplateSchedulingGracefulShutdownMaxDuration":{"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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e 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.\nThe value must be between 1 and 3600, which is 3,600 seconds (one hour).`\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"]},"gcp:compute/RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout:RegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"]},"gcp:compute/RegionInstanceTemplateSchedulingMaxRunDuration:RegionInstanceTemplateSchedulingMaxRunDuration":{"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\u003cspan pulumi-lang-nodejs=\"`seconds`\" pulumi-lang-dotnet=\"`Seconds`\" pulumi-lang-go=\"`seconds`\" pulumi-lang-python=\"`seconds`\" pulumi-lang-yaml=\"`seconds`\" pulumi-lang-java=\"`seconds`\"\u003e`seconds`\u003c/span\u003e field and a positive \u003cspan pulumi-lang-nodejs=\"`nanos`\" pulumi-lang-dotnet=\"`Nanos`\" pulumi-lang-go=\"`nanos`\" pulumi-lang-python=\"`nanos`\" pulumi-lang-yaml=\"`nanos`\" pulumi-lang-java=\"`nanos`\"\u003e`nanos`\u003c/span\u003e 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/RegionInstanceTemplateSchedulingNodeAffinity:RegionInstanceTemplateSchedulingNodeAffinity":{"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":"Corresponds to the label values of a reservation resource.\n"}},"type":"object","required":["key","operator","values"]},"gcp:compute/RegionInstanceTemplateSchedulingOnInstanceStopAction:RegionInstanceTemplateSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"If true, the contents of any attached Local SSD disks will be discarded.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionInstanceTemplateServiceAccount:RegionInstanceTemplateServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address. If not given, the\ndefault Google Compute Engine service account is used.\n","willReplaceOnChanges":true},"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\nThe [service accounts documentation](https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam)\nexplains that access scopes are the legacy method of specifying permissions for your instance.\nTo follow best practices you should create a dedicated service account with the minimum permissions the VM requires.\nTo use a dedicated service account this field should be configured as a list containing the `cloud-platform` scope.\nSee [Authenticate workloads using service accounts best practices](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#best_practices)\nand [Best practices for using service accounts](https://cloud.google.com/iam/docs/best-practices-service-accounts#single-purpose).\n","willReplaceOnChanges":true}},"type":"object","required":["scopes"],"language":{"nodejs":{"requiredOutputs":["email","scopes"]}}},"gcp:compute/RegionInstanceTemplateShieldedInstanceConfig:RegionInstanceTemplateShieldedInstanceConfig":{"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","willReplaceOnChanges":true},"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","willReplaceOnChanges":true},"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","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionNetworkEndpointGroupAppEngine:RegionNetworkEndpointGroupAppEngine":{"properties":{"service":{"type":"string","description":"Optional serving service.\nThe service name must be 1-63 characters long, and comply with RFC1035.\nExample value: \"default\", \"my-service\".\n","willReplaceOnChanges":true},"urlMask":{"type":"string","description":"A template to parse service and version fields from a request URL.\nURL mask allows for routing to multiple App Engine services without\nhaving to create multiple Network Endpoint Groups and backend services.\nFor example, the request URLs \"foo1-dot-appname.appspot.com/v1\" and\n\"foo1-dot-appname.appspot.com/v2\" can be backed by the same Serverless NEG with\nURL mask \"-dot-appname.appspot.com/\". The URL mask will parse\nthem to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"Optional serving version.\nThe version must be 1-63 characters long, and comply with RFC1035.\nExample value: \"v1\", \"v2\".\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionNetworkEndpointGroupCloudFunction:RegionNetworkEndpointGroupCloudFunction":{"properties":{"function":{"type":"string","description":"A user-defined name of the Cloud Function.\nThe function name is case-sensitive and must be 1-63 characters long.\nExample value: \"func1\".\n","willReplaceOnChanges":true},"urlMask":{"type":"string","description":"A template to parse function field from a request URL. URL mask allows\nfor routing to multiple Cloud Functions without having to create\nmultiple Network Endpoint Groups and backend services.\nFor example, request URLs \"mydomain.com/function1\" and \"mydomain.com/function2\"\ncan be backed by the same Serverless NEG with URL mask \"/\". The URL mask\nwill parse them to { function = \"function1\" } and { function = \"function2\" } respectively.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionNetworkEndpointGroupCloudRun:RegionNetworkEndpointGroupCloudRun":{"properties":{"service":{"type":"string","description":"Cloud Run service is the main resource of Cloud Run.\nThe service must be 1-63 characters long, and comply with RFC1035.\nExample value: \"run-service\".\n","willReplaceOnChanges":true},"tag":{"type":"string","description":"Cloud Run tag represents the \"named-revision\" to provide\nadditional fine-grained traffic routing information.\nThe tag must be 1-63 characters long, and comply with RFC1035.\nExample value: \"revision-0010\".\n","willReplaceOnChanges":true},"urlMask":{"type":"string","description":"A template to parse service and tag fields from a request URL.\nURL mask allows for routing to multiple Run services without having\nto create multiple network endpoint groups and backend services.\nFor example, request URLs \"foo1.domain.com/bar1\" and \"foo1.domain.com/bar2\"\nan be backed by the same Serverless Network Endpoint Group (NEG) with\nURL mask \".domain.com/\". The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" }\nand { service=\"bar2\", tag=\"foo2\" } respectively.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionNetworkEndpointGroupPscData:RegionNetworkEndpointGroupPscData":{"properties":{"producerPort":{"type":"string","description":"The PSC producer port to use when consumer PSC NEG connects to a producer. If\nthis flag isn't specified for a PSC NEG with endpoint type\nprivate-service-connect, then PSC NEG will be connected to a first port in the\navailable PSC producer port range.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RegionNetworkEndpointGroupServerlessDeployment:RegionNetworkEndpointGroupServerlessDeployment":{"properties":{"platform":{"type":"string","description":"The platform of the NEG backend target(s). Possible values:\nAPI Gateway: apigateway.googleapis.com\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"The user-defined name of the workload/instance. This value must be provided explicitly or in the urlMask.\nThe resource identified by this value is platform-specific and is as follows: API Gateway: The gateway ID, App Engine: The service name,\nCloud Functions: The function name, Cloud Run: The service name\n","willReplaceOnChanges":true},"urlMask":{"type":"string","description":"A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources\non the same serverless platform without having to create multiple Network Endpoint Groups and backend resources.\nThe fields parsed by this template are platform-specific and are as follows: API Gateway: The gateway ID,\nApp Engine: The service and version, Cloud Functions: The function name, Cloud Run: The service and tag\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The optional resource version. The version identified by this value is platform-specific and is follows:\nAPI Gateway: Unused, App Engine: The service version, Cloud Functions: Unused, Cloud Run: The service tag\n","willReplaceOnChanges":true}},"type":"object","required":["platform"]},"gcp:compute/RegionNetworkFirewallPolicyRuleMatch:RegionNetworkFirewallPolicyRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.\n"},"destNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic destination.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of dest region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyRuleMatchLayer4Config:RegionNetworkFirewallPolicyRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.\n"},"srcNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic source.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"srcNetworks":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nNetworks of the traffic source. It can be either a full or partial url.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex.\"US\" Maximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyRuleMatchSrcSecureTag:RegionNetworkFirewallPolicyRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source of the traffic. For INGRESS rule, if all the srcSecureTag are INEFFECTIVE, and there is no srcIpRange, this rule will be ignored. Maximum number of source tag values allowed is 256.\nStructure is documented below.\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-dotnet=\"\"NestedMatchLayer4Configs\"\" pulumi-lang-go=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-python=\"\"nested_match_layer4_configs\"\" pulumi-lang-yaml=\"\"nestedMatchLayer4Configs\"\" pulumi-lang-java=\"\"nestedMatchLayer4Configs\"\"\u003e\"nested_match_layer4_configs\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Configs`\" pulumi-lang-dotnet=\"`Layer4Configs`\" pulumi-lang-go=\"`layer4Configs`\" pulumi-lang-python=\"`layer4_configs`\" pulumi-lang-yaml=\"`layer4Configs`\" pulumi-lang-java=\"`layer4Configs`\"\u003e`layer4_configs`\u003c/span\u003e block supports:\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/RegionNetworkFirewallPolicyRuleMatchLayer4Config:RegionNetworkFirewallPolicyRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.\nThis value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and [\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/RegionNetworkFirewallPolicyRuleMatchSrcSecureTag:RegionNetworkFirewallPolicyRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/RegionNetworkFirewallPolicyRuleTargetSecureTag:RegionNetworkFirewallPolicyRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n"},"state":{"type":"string","description":"(Output)\nState of the secure tag, either EFFECTIVE or INEFFECTIVE. A secure tag is INEFFECTIVE when it is deleted or its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRule:RegionNetworkFirewallPolicyWithRulesPredefinedRule":{"properties":{"action":{"type":"string","description":"(Output)\nThe Action to perform when the client connection triggers the rule. Can currently be either\n\"allow\", \"deny\", \u003cspan pulumi-lang-nodejs=\"\"applySecurityProfileGroup\"\" pulumi-lang-dotnet=\"\"ApplySecurityProfileGroup\"\" pulumi-lang-go=\"\"applySecurityProfileGroup\"\" pulumi-lang-python=\"\"apply_security_profile_group\"\" pulumi-lang-yaml=\"\"applySecurityProfileGroup\"\" pulumi-lang-java=\"\"applySecurityProfileGroup\"\"\u003e\"apply_security_profile_group\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"gotoNext\"\" pulumi-lang-dotnet=\"\"GotoNext\"\" pulumi-lang-go=\"\"gotoNext\"\" pulumi-lang-python=\"\"goto_next\"\" pulumi-lang-yaml=\"\"gotoNext\"\" pulumi-lang-java=\"\"gotoNext\"\"\u003e\"goto_next\"\u003c/span\u003e.\n"},"description":{"type":"string","description":"An optional description of this resource.\n"},"direction":{"type":"string","description":"(Output)\nThe direction in which this rule applies. If unspecified an INGRESS rule is created.\n"},"disabled":{"type":"boolean","description":"(Output)\nDenotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.\n"},"enableLogging":{"type":"boolean","description":"(Output)\nDenotes whether to enable logging for a particular rule.\nIf logging is enabled, logs will be exported to the\nconfigured export destination in Stackdriver.\n"},"matches":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatch:RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatch"},"description":"(Output)\nA match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"(Output)\nAn integer indicating the priority of a rule in the list. The priority must be a value\nbetween 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.\n"},"ruleName":{"type":"string","description":"(Output)\nAn optional name for the rule. This field is not a unique identifier\nand can be updated.\n"},"securityProfileGroup":{"type":"string","description":"(Output)\nA fully-qualified URL of a SecurityProfile resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is 'apply_security_profile_group'.\n"},"targetSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag:RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag"},"description":"(Output)\nA list of secure tags that controls which instances the firewall rule\napplies to. If \u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the\u003cspan pulumi-lang-nodejs=\" targetSecureTag \" pulumi-lang-dotnet=\" TargetSecureTag \" pulumi-lang-go=\" targetSecureTag \" pulumi-lang-python=\" target_secure_tag \" pulumi-lang-yaml=\" targetSecureTag \" pulumi-lang-java=\" targetSecureTag \"\u003e target_secure_tag \u003c/span\u003eare in\nINEFFECTIVE state, then this rule will be ignored.\n\u003ccode\u003etargetSecureTag\u003c/code\u003e may not be set at the same time as\n\u003ccode\u003etargetServiceAccounts\u003c/code\u003e.\nIf neither \u003ccode\u003etargetServiceAccounts\u003c/code\u003e nor\n\u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target label tags allowed is 256.\nStructure is documented below.\n"},"targetServiceAccounts":{"type":"array","items":{"type":"string"},"description":"(Output)\nA list of service accounts indicating the sets of\ninstances that are applied with this rule.\n"},"tlsInspect":{"type":"boolean","description":"(Output)\nBoolean flag indicating if the traffic should be TLS decrypted.\nIt can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["action","description","direction","disabled","enableLogging","matches","priority","ruleName","securityProfileGroup","targetSecureTags","targetServiceAccounts","tlsInspect"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatch:RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of destination region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config:RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag:RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the \u003ccode\u003esrcSecureTag\u003c/code\u003e are INEFFECTIVE,\nand there is no \u003ccode\u003esrcIpRange\u003c/code\u003e, this rule will be ignored.\nMaximum number of source tag values allowed is 256.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedRuleMatchLayer4Config\"\" pulumi-lang-go=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-python=\"\"nested_rule_match_layer4_config\"\" pulumi-lang-yaml=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-java=\"\"nestedRuleMatchLayer4Config\"\"\u003e\"nested_rule_match_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["destAddressGroups","destFqdns","destIpRanges","destRegionCodes","destThreatIntelligences","layer4Configs","srcAddressGroups","srcFqdns","srcIpRanges","srcRegionCodes","srcSecureTags","srcThreatIntelligences"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config:RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"(Output)\nThe IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"(Output)\nAn optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipProtocol","ports"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag:RegionNetworkFirewallPolicyWithRulesPredefinedRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","state"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag:RegionNetworkFirewallPolicyWithRulesPredefinedRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","state"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesRule:RegionNetworkFirewallPolicyWithRulesRule":{"properties":{"action":{"type":"string","description":"The Action to perform when the client connection triggers the rule. Can currently be either\n\"allow\", \"deny\", \u003cspan pulumi-lang-nodejs=\"\"applySecurityProfileGroup\"\" pulumi-lang-dotnet=\"\"ApplySecurityProfileGroup\"\" pulumi-lang-go=\"\"applySecurityProfileGroup\"\" pulumi-lang-python=\"\"apply_security_profile_group\"\" pulumi-lang-yaml=\"\"applySecurityProfileGroup\"\" pulumi-lang-java=\"\"applySecurityProfileGroup\"\"\u003e\"apply_security_profile_group\"\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"\"gotoNext\"\" pulumi-lang-dotnet=\"\"GotoNext\"\" pulumi-lang-go=\"\"gotoNext\"\" pulumi-lang-python=\"\"goto_next\"\" pulumi-lang-yaml=\"\"gotoNext\"\" pulumi-lang-java=\"\"gotoNext\"\"\u003e\"goto_next\"\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description of the rule.\n"},"direction":{"type":"string","description":"The direction in which this rule applies. If unspecified an INGRESS rule is created.\nPossible values are: `INGRESS`, `EGRESS`.\n"},"disabled":{"type":"boolean","description":"Denotes whether the firewall policy rule is disabled. When set to true,\nthe firewall policy rule is not enforced and traffic behaves as if it did\nnot exist. If this is unspecified, the firewall policy rule will be\nenabled.\n"},"enableLogging":{"type":"boolean","description":"Denotes whether to enable logging for a particular rule.\nIf logging is enabled, logs will be exported to the\nconfigured export destination in Stackdriver.\n"},"match":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleMatch:RegionNetworkFirewallPolicyWithRulesRuleMatch","description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"An integer indicating the priority of a rule in the list. The priority must be a value\nbetween 0 and 2147483647. Rules are evaluated from highest to lowest priority where 0 is the\nhighest priority and 2147483647 is the lowest priority.\n"},"ruleName":{"type":"string","description":"An optional name for the rule. This field is not a unique identifier\nand can be updated.\n"},"securityProfileGroup":{"type":"string","description":"A fully-qualified URL of a SecurityProfile resource instance.\nExample:\nhttps://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group\nMust be specified if action is 'apply_security_profile_group'.\n"},"targetSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTag:RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTag"},"description":"A list of secure tags that controls which instances the firewall rule\napplies to. If \u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, then the\nfirewall rule applies only to instances in the VPC network that have one\nof those EFFECTIVE secure tags, if all the\u003cspan pulumi-lang-nodejs=\" targetSecureTag \" pulumi-lang-dotnet=\" TargetSecureTag \" pulumi-lang-go=\" targetSecureTag \" pulumi-lang-python=\" target_secure_tag \" pulumi-lang-yaml=\" targetSecureTag \" pulumi-lang-java=\" targetSecureTag \"\u003e target_secure_tag \u003c/span\u003eare in\nINEFFECTIVE state, then this rule will be ignored.\n\u003ccode\u003etargetSecureTag\u003c/code\u003e may not be set at the same time as\n\u003ccode\u003etargetServiceAccounts\u003c/code\u003e.\nIf neither \u003ccode\u003etargetServiceAccounts\u003c/code\u003e nor\n\u003ccode\u003etargetSecureTag\u003c/code\u003e are specified, the firewall rule applies\nto all instances on the specified network.\nMaximum number of target label tags allowed is 256.\nStructure is documented below.\n"},"targetServiceAccounts":{"type":"array","items":{"type":"string"},"description":"A list of service accounts indicating the sets of\ninstances that are applied with this rule.\n"},"tlsInspect":{"type":"boolean","description":"Boolean flag indicating if the traffic should be TLS decrypted.\nIt can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.\n"}},"type":"object","required":["action","match","priority"]},"gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleMatch:RegionNetworkFirewallPolicyWithRulesRuleMatch":{"properties":{"destAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic destination.\nMaximum number of destination address groups is 10.\n"},"destFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic destination. Maximum number of destination fqdn allowed is 100.\n"},"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IP address range in CIDR format. Required for\nEGRESS rules.\n"},"destNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic destination.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"destRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for destination\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of destination region codes allowed is 5000.\n"},"destThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic destination.\n"},"layer4Configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4Config:RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4Config"},"description":"Pairs of IP protocols and ports that the rule should match.\nStructure is documented below.\n"},"srcAddressGroups":{"type":"array","items":{"type":"string"},"description":"Address groups which should be matched against the traffic source.\nMaximum number of source address groups is 10.\n"},"srcFqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (FQDN) which should be matched against\ntraffic source. Maximum number of source fqdn allowed is 100.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IP address range in CIDR format. Required for\nINGRESS rules.\n"},"srcNetworkScope":{"type":"string","description":"(Optional, Beta)\nNetwork scope of the traffic source.\nPossible values are: `INTERNET`, `INTRA_VPC`, `NON_INTERNET`, `VPC_NETWORKS`.\n"},"srcNetworks":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nNetworks of the traffic source. It can be either a full or partial url.\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Region codes whose IP addresses will be used to match for source\nof traffic. Should be specified as 2 letter country code defined as per\nISO 3166 alpha-2 country codes. ex.\"US\"\nMaximum number of source region codes allowed is 5000.\n"},"srcSecureTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag:RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag"},"description":"List of secure tag values, which should be matched at the source\nof the traffic.\nFor INGRESS rule, if all the \u003ccode\u003esrcSecureTag\u003c/code\u003e are INEFFECTIVE,\nand there is no \u003ccode\u003esrcIpRange\u003c/code\u003e, this rule will be ignored.\nMaximum number of source tag values allowed is 256.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-dotnet=\"\"NestedRuleMatchLayer4Config\"\" pulumi-lang-go=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-python=\"\"nested_rule_match_layer4_config\"\" pulumi-lang-yaml=\"\"nestedRuleMatchLayer4Config\"\" pulumi-lang-java=\"\"nestedRuleMatchLayer4Config\"\"\u003e\"nested_rule_match_layer4_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer4Config`\" pulumi-lang-dotnet=\"`Layer4Config`\" pulumi-lang-go=\"`layer4Config`\" pulumi-lang-python=\"`layer4_config`\" pulumi-lang-yaml=\"`layer4Config`\" pulumi-lang-java=\"`layer4Config`\"\u003e`layer4_config`\u003c/span\u003e block supports:\n"},"srcThreatIntelligences":{"type":"array","items":{"type":"string"},"description":"Names of Network Threat Intelligence lists.\nThe IPs in these lists will be matched against traffic source.\n"}},"type":"object","required":["layer4Configs"]},"gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4Config:RegionNetworkFirewallPolicyWithRulesRuleMatchLayer4Config":{"properties":{"ipProtocol":{"type":"string","description":"(Output)\nThe IP protocol to which this rule applies. The protocol\ntype is required when creating a firewall rule.\nThis value can either be one of the following well\nknown protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),\nor the IP protocol number.\n"},"ports":{"type":"array","items":{"type":"string"},"description":"(Output)\nAn optional list of ports to which this rule applies. This field\nis only applicable for UDP or TCP protocol. Each entry must be\neither an integer or a range. If not specified, this rule\napplies to connections through any port.\nExample inputs include: [\"22\"], [\"80\",\"443\"], and\n[\"12345-12349\"].\n"}},"type":"object","required":["ipProtocol"]},"gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag:RegionNetworkFirewallPolicyWithRulesRuleMatchSrcSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTag:RegionNetworkFirewallPolicyWithRulesRuleTargetSecureTag":{"properties":{"name":{"type":"string","description":"Name of the secure tag, created with TagManager's TagValue API.\n@pattern tagValues/[0-9]+\n"},"state":{"type":"string","description":"(Output)\n[Output Only] State of the secure tag, either `EFFECTIVE` or\n`INEFFECTIVE`. A secure tag is `INEFFECTIVE` when it is deleted\nor its network is deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state"]}}},"gcp:compute/RegionPerInstanceConfigPreservedState:RegionPerInstanceConfigPreservedState":{"properties":{"disks":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionPerInstanceConfigPreservedStateDisk:RegionPerInstanceConfigPreservedStateDisk"},"description":"Stateful disks for the instance.\nStructure is documented below.\n"},"externalIps":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionPerInstanceConfigPreservedStateExternalIp:RegionPerInstanceConfigPreservedStateExternalIp"},"description":"Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.\nStructure is documented below.\n"},"internalIps":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionPerInstanceConfigPreservedStateInternalIp:RegionPerInstanceConfigPreservedStateInternalIp"},"description":"Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.\nStructure is documented below.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Preserved metadata defined for this instance. This is a list of key-\u003evalue pairs.\n"}},"type":"object"},"gcp:compute/RegionPerInstanceConfigPreservedStateDisk:RegionPerInstanceConfigPreservedStateDisk":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted.\nThe available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`.\n`NEVER` - detach the disk when the VM is deleted, but do not delete the disk.\n`ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently\ndeleted from the instance group.\nDefault value is `NEVER`.\nPossible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.\n"},"deviceName":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.\n"},"mode":{"type":"string","description":"The mode of the disk.\nDefault value is `READ_WRITE`.\nPossible values are: `READ_ONLY`, `READ_WRITE`.\n"},"source":{"type":"string","description":"The URI of an existing persistent disk to attach under the specified device-name in the format\n`projects/project-id/zones/zone/disks/disk-name`.\n"}},"type":"object","required":["deviceName","source"]},"gcp:compute/RegionPerInstanceConfigPreservedStateExternalIp:RegionPerInstanceConfigPreservedStateExternalIp":{"properties":{"autoDelete":{"type":"string","description":"These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.\nDefault value is `NEVER`.\nPossible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.\n"},"interfaceName":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"ipAddress":{"$ref":"#/types/gcp:compute/RegionPerInstanceConfigPreservedStateExternalIpIpAddress:RegionPerInstanceConfigPreservedStateExternalIpIpAddress","description":"Ip address representation\nStructure is documented below.\n"}},"type":"object","required":["interfaceName"]},"gcp:compute/RegionPerInstanceConfigPreservedStateExternalIpIpAddress:RegionPerInstanceConfigPreservedStateExternalIpIpAddress":{"properties":{"address":{"type":"string","description":"The URL of the reservation for this IP address.\n"}},"type":"object"},"gcp:compute/RegionPerInstanceConfigPreservedStateInternalIp:RegionPerInstanceConfigPreservedStateInternalIp":{"properties":{"autoDelete":{"type":"string","description":"These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.\nDefault value is `NEVER`.\nPossible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.\n"},"interfaceName":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"ipAddress":{"$ref":"#/types/gcp:compute/RegionPerInstanceConfigPreservedStateInternalIpIpAddress:RegionPerInstanceConfigPreservedStateInternalIpIpAddress","description":"Ip address representation\nStructure is documented below.\n"}},"type":"object","required":["interfaceName"]},"gcp:compute/RegionPerInstanceConfigPreservedStateInternalIpIpAddress:RegionPerInstanceConfigPreservedStateInternalIpIpAddress":{"properties":{"address":{"type":"string","description":"The URL of the reservation for this IP address.\n"}},"type":"object"},"gcp:compute/RegionResizeRequestRequestedRunDuration:RegionResizeRequestRequestedRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"]},"gcp:compute/RegionResizeRequestStatus:RegionResizeRequestStatus":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusError:RegionResizeRequestStatusError"},"description":"(Output)\nFatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.\nStructure is documented below.\n"},"lastAttempts":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttempt:RegionResizeRequestStatusLastAttempt"},"description":"(Output)\nInformation about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors","lastAttempts"]}}},"gcp:compute/RegionResizeRequestStatusError:RegionResizeRequestStatusError":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorError:RegionResizeRequestStatusErrorError"},"description":"(Output)\nThe array of errors encountered while processing this operation.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors"]}}},"gcp:compute/RegionResizeRequestStatusErrorError:RegionResizeRequestStatusErrorError":{"properties":{"code":{"type":"string","description":"(Output)\nThe error type identifier for this error.\n"},"errorDetails":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetail:RegionResizeRequestStatusErrorErrorErrorDetail"},"description":"(Output)\nAn array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.\nStructure is documented below.\n"},"location":{"type":"string","description":"(Output)\nIndicates the field in the request that caused the error. This property is optional.\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","errorDetails","location","message"]}}},"gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetail:RegionResizeRequestStatusErrorErrorErrorDetail":{"properties":{"errorInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo:RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"helps":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailHelp:RegionResizeRequestStatusErrorErrorErrorDetailHelp"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"localizedMessages":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage:RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"quotaInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo:RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorInfos","helps","localizedMessages","quotaInfos"]}}},"gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo:RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo":{"properties":{"domain":{"type":"string","description":"(Output)\nThe logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\".\n"},"metadatas":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAdditional structured details about this error.\n"},"reason":{"type":"string","description":"(Output)\nThe reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domain","metadatas","reason"]}}},"gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailHelp:RegionResizeRequestStatusErrorErrorErrorDetailHelp":{"properties":{"links":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink:RegionResizeRequestStatusErrorErrorErrorDetailHelpLink"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["links"]}}},"gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailHelpLink:RegionResizeRequestStatusErrorErrorErrorDetailHelpLink":{"properties":{"description":{"type":"string","description":"An optional description of this resize-request.\n"},"url":{"type":"string","description":"(Output)\nThe URL of the link.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","url"]}}},"gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage:RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage":{"properties":{"locale":{"type":"string","description":"(Output)\nThe locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["locale","message"]}}},"gcp:compute/RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo:RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo":{"properties":{"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nThe map holding related quota dimensions\n"},"futureLimit":{"type":"integer","description":"(Output)\nFuture quota limit being rolled out. The limit's unit depends on the quota type or metric.\n"},"limit":{"type":"integer","description":"(Output)\nCurrent effective quota limit. The limit's unit depends on the quota type or metric.\n"},"limitName":{"type":"string","description":"(Output)\nThe name of the quota limit.\n"},"metricName":{"type":"string","description":"(Output)\nThe Compute Engine quota metric name.\n"},"rolloutStatus":{"type":"string","description":"(Output)\nRollout status of the future quota limit.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dimensions","futureLimit","limit","limitName","metricName","rolloutStatus"]}}},"gcp:compute/RegionResizeRequestStatusLastAttempt:RegionResizeRequestStatusLastAttempt":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptError:RegionResizeRequestStatusLastAttemptError"},"description":"(Output)\nFatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptError:RegionResizeRequestStatusLastAttemptError":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorError:RegionResizeRequestStatusLastAttemptErrorError"},"description":"(Output)\nThe array of errors encountered while processing this operation.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorError:RegionResizeRequestStatusLastAttemptErrorError":{"properties":{"code":{"type":"string","description":"(Output)\nThe error type identifier for this error.\n"},"errorDetails":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail"},"description":"(Output)\nAn array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.\nStructure is documented below.\n"},"location":{"type":"string","description":"(Output)\nIndicates the field in the request that caused the error. This property is optional.\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","errorDetails","location","message"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail":{"properties":{"errorInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"helps":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"localizedMessages":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"quotaInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorInfos","helps","localizedMessages","quotaInfos"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo":{"properties":{"domain":{"type":"string","description":"(Output)\nThe logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\".\n"},"metadatas":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAdditional structured details about this error.\n"},"reason":{"type":"string","description":"(Output)\nThe reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domain","metadatas","reason"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp":{"properties":{"links":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["links"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink":{"properties":{"description":{"type":"string","description":"An optional description of this resize-request.\n"},"url":{"type":"string","description":"(Output)\nThe URL of the link.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","url"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage":{"properties":{"locale":{"type":"string","description":"(Output)\nThe locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["locale","message"]}}},"gcp:compute/RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo:RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo":{"properties":{"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nThe map holding related quota dimensions\n"},"futureLimit":{"type":"integer","description":"(Output)\nFuture quota limit being rolled out. The limit's unit depends on the quota type or metric.\n"},"limit":{"type":"integer","description":"(Output)\nCurrent effective quota limit. The limit's unit depends on the quota type or metric.\n"},"limitName":{"type":"string","description":"(Output)\nThe name of the quota limit.\n"},"metricName":{"type":"string","description":"(Output)\nThe Compute Engine quota metric name.\n"},"rolloutStatus":{"type":"string","description":"(Output)\nRollout status of the future quota limit.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dimensions","futureLimit","limit","limitName","metricName","rolloutStatus"]}}},"gcp:compute/RegionSecurityPolicyAdvancedOptionsConfig:RegionSecurityPolicyAdvancedOptionsConfig":{"properties":{"jsonCustomConfig":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig:RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig","description":"Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.\nStructure is documented below.\n"},"jsonParsing":{"type":"string","description":"JSON body parsing. Supported values include: \"DISABLED\", \"STANDARD\", \"STANDARD_WITH_GRAPHQL\".\nPossible values are: `DISABLED`, `STANDARD`, `STANDARD_WITH_GRAPHQL`.\n"},"logLevel":{"type":"string","description":"Logging level. Supported values include: \"NORMAL\", \"VERBOSE\".\nPossible values are: `NORMAL`, `VERBOSE`.\n"},"requestBodyInspectionSize":{"type":"string","description":"(Optional, Beta)\nThe maximum request size chosen by the customer with Waf enabled. Values supported are \"8KB\", \"16KB, \"32KB\", \"48KB\" and \"64KB\".\nValues are case insensitive.\nPossible values are: `8KB`, `16KB`, `32KB`, `48KB`, `64KB`.\n"},"userIpRequestHeaders":{"type":"array","items":{"type":"string"},"description":"An optional list of case-insensitive request header names to use for resolving the callers client IP address.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig:RegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig":{"properties":{"contentTypes":{"type":"array","items":{"type":"string"},"description":"A list of custom Content-Type header values to apply the JSON parsing.\n"}},"type":"object","required":["contentTypes"]},"gcp:compute/RegionSecurityPolicyDdosProtectionConfig:RegionSecurityPolicyDdosProtectionConfig":{"properties":{"ddosProtection":{"type":"string","description":"Google Cloud Armor offers the following options to help protect systems against DDoS attacks:\n- STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.\n- ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.\n- ADVANCED_PREVIEW: flag to enable the security policy in preview mode.\nPossible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.\n"}},"type":"object","required":["ddosProtection"]},"gcp:compute/RegionSecurityPolicyRule:RegionSecurityPolicyRule":{"properties":{"action":{"type":"string","description":"The Action to perform when the rule is matched. The following are the valid actions:\n* allow: allow access to target.\n* deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.\n* rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set.\n* redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR.\n* throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.\n"},"match":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleMatch:RegionSecurityPolicyRuleMatch","description":"A match condition that incoming traffic is evaluated against.\nIf it evaluates to true, the corresponding 'action' is enforced.\nStructure is documented below.\n"},"networkMatch":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleNetworkMatch:RegionSecurityPolicyRuleNetworkMatch","description":"A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced.\nThe match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').\nField values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds.\nEach match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all.\nFor a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.\nExample:\nnetworkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \u003cspan pulumi-lang-nodejs=\"\"ipv4FragmentOffset\"\" pulumi-lang-dotnet=\"\"Ipv4FragmentOffset\"\" pulumi-lang-go=\"\"ipv4FragmentOffset\"\" pulumi-lang-python=\"\"ipv4_fragment_offset\"\" pulumi-lang-yaml=\"\"ipv4FragmentOffset\"\" pulumi-lang-java=\"\"ipv4FragmentOffset\"\"\u003e\"ipv4_fragment_offset\"\u003c/span\u003e values: - \"1-0x1fff\"\nThe above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \u003cspan pulumi-lang-nodejs=\"\"ipv4FragmentOffset\"\" pulumi-lang-dotnet=\"\"Ipv4FragmentOffset\"\" pulumi-lang-go=\"\"ipv4FragmentOffset\"\" pulumi-lang-python=\"\"ipv4_fragment_offset\"\" pulumi-lang-yaml=\"\"ipv4FragmentOffset\"\" pulumi-lang-java=\"\"ipv4FragmentOffset\"\"\u003e\"ipv4_fragment_offset\"\u003c/span\u003e with a value between 1 and 0x1fff inclusive\nStructure is documented below.\n"},"preconfiguredWafConfig":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfig:RegionSecurityPolicyRulePreconfiguredWafConfig","description":"Preconfigured WAF configuration to be applied for the rule.\nIf the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.\nStructure is documented below.\n"},"preview":{"type":"boolean","description":"If set to true, the specified action is not enforced.\n"},"priority":{"type":"integer","description":"An integer indicating the priority of a rule in the list.\nThe priority must be a positive value between 0 and 2147483647.\nRules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.\n"},"rateLimitOptions":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleRateLimitOptions:RegionSecurityPolicyRuleRateLimitOptions","description":"Must be specified if the action is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e or \"throttle\". Cannot be specified for any other actions.\nStructure is documented below.\n"}},"type":"object","required":["action","priority"]},"gcp:compute/RegionSecurityPolicyRuleMatch:RegionSecurityPolicyRuleMatch":{"properties":{"config":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleMatchConfig:RegionSecurityPolicyRuleMatchConfig","description":"The configuration options available when specifying versionedExpr.\nThis field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.\nStructure is documented below.\n"},"expr":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleMatchExpr:RegionSecurityPolicyRuleMatchExpr","description":"User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.\nStructure is documented below.\n"},"versionedExpr":{"type":"string","description":"Preconfigured versioned expression. If this field is specified, config must also be specified.\nAvailable preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.\nPossible values are: `SRC_IPS_V1`.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRuleMatchConfig:RegionSecurityPolicyRuleMatchConfig":{"properties":{"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of srcIpRanges allowed is 10.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRuleMatchExpr:RegionSecurityPolicyRuleMatchExpr":{"properties":{"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.\n"}},"type":"object","required":["expression"]},"gcp:compute/RegionSecurityPolicyRuleNetworkMatch:RegionSecurityPolicyRuleNetworkMatch":{"properties":{"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.\n"},"destPorts":{"type":"array","items":{"type":"string"},"description":"Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").\n"},"ipProtocols":{"type":"array","items":{"type":"string"},"description":"IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".\n"},"srcAsns":{"type":"array","items":{"type":"integer"},"description":"BGP Autonomous System Number associated with the source IP address.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.\n"},"srcPorts":{"type":"array","items":{"type":"string"},"description":"Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.\n"},"userDefinedFields":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleNetworkMatchUserDefinedField:RegionSecurityPolicyRuleNetworkMatchUserDefinedField"},"description":"User-defined fields. Each element names a defined field and lists the matching values for that field.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRuleNetworkMatchUserDefinedField:RegionSecurityPolicyRuleNetworkMatchUserDefinedField":{"properties":{"name":{"type":"string","description":"Name of the user-defined field, as given in the definition.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfig:RegionSecurityPolicyRulePreconfiguredWafConfig":{"properties":{"exclusions":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusion:RegionSecurityPolicyRulePreconfiguredWafConfigExclusion"},"description":"An exclusion to apply during preconfigured WAF evaluation.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusion:RegionSecurityPolicyRulePreconfiguredWafConfigExclusion":{"properties":{"requestCookies":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky"},"description":"Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation.\nStructure is documented below.\n"},"requestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader"},"description":"Request header whose value will be excluded from inspection during preconfigured WAF evaluation.\nStructure is documented below.\n"},"requestQueryParams":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam"},"description":"Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation.\nNote that the parameter can be in the query string or in the POST body.\nStructure is documented below.\n"},"requestUris":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri"},"description":"Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation.\nWhen specifying this field, the query or fragment part should be excluded.\nStructure is documented below.\n"},"targetRuleIds":{"type":"array","items":{"type":"string"},"description":"A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion.\nIf omitted, it refers to all the rule IDs under the WAF rule set.\n"},"targetRuleSet":{"type":"string","description":"Target WAF rule set to apply the preconfigured WAF exclusion.\n"}},"type":"object","required":["targetRuleSet"]},"gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\nPossible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\nPossible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\nPossible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:RegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\nPossible values are: `CONTAINS`, `ENDS_WITH`, `EQUALS`, `EQUALS_ANY`, `STARTS_WITH`.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/RegionSecurityPolicyRuleRateLimitOptions:RegionSecurityPolicyRuleRateLimitOptions":{"properties":{"banDurationSec":{"type":"integer","description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e.\nIf specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.\n"},"banThreshold":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleRateLimitOptionsBanThreshold:RegionSecurityPolicyRuleRateLimitOptionsBanThreshold","description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e.\nIf specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.\nStructure is documented below.\n"},"conformAction":{"type":"string","description":"Action to take for requests that are under the configured rate limit threshold.\nValid option is \"allow\" only.\n"},"enforceOnKey":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on. Possible values are:\n* ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKey\" is not configured.\n* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.\n* HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.\n* XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.\n* HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.\n* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.\n* SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.\n* REGION_CODE: The country/region from which the request originates.\n* TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP.\nPossible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.\n"},"enforceOnKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig:RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig"},"description":"If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.\nYou can specify up to 3 enforceOnKeyConfigs.\nIf enforceOnKeyConfigs is specified, enforceOnKey must not be specified.\nStructure is documented below.\n"},"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"exceedAction":{"type":"string","description":"Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code.\nValid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.\n"},"rateLimitThreshold":{"$ref":"#/types/gcp:compute/RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold:RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold","description":"Threshold at which to begin ratelimiting.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRuleRateLimitOptionsBanThreshold:RegionSecurityPolicyRuleRateLimitOptionsBanThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig:RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig":{"properties":{"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"enforceOnKeyType":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on. Possible values are:\n* ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured.\n* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.\n* HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.\n* XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.\n* HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.\n* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.\n* SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.\n* REGION_CODE: The country/region from which the request originates.\n* TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP.\nPossible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold:RegionSecurityPolicyRuleRateLimitOptionsRateLimitThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object"},"gcp:compute/RegionSecurityPolicyUserDefinedField:RegionSecurityPolicyUserDefinedField":{"properties":{"base":{"type":"string","description":"The base relative to which 'offset' is measured. Possible values are:\n- IPV4: Points to the beginning of the IPv4 header.\n- IPV6: Points to the beginning of the IPv6 header.\n- TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.\n- UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.\nPossible values are: `IPV4`, `IPV6`, `TCP`, `UDP`.\n"},"mask":{"type":"string","description":"If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.\nEncoded as a hexadecimal number (starting with \"0x\").\nThe last byte of the field (in network byte order) corresponds to the least significant byte of the mask.\n"},"name":{"type":"string","description":"Name of the user-defined field, as given in the definition.\n"},"offset":{"type":"integer","description":"Offset of the first byte of the field (in network byte order) relative to 'base'.\n"},"size":{"type":"integer","description":"Size of the field in bytes. Valid values: 1-4.\n"}},"type":"object","required":["base"]},"gcp:compute/RegionUrlMapDefaultRouteAction:RegionUrlMapDefaultRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionCorsPolicy:RegionUrlMapDefaultRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicy:RegionUrlMapDefaultRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service.\nSimilarly requests from clients can be aborted by the load balancer for a percentage of requests.\ntimeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection.\nFault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management).\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionRequestMirrorPolicy:RegionUrlMapDefaultRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nThe load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow.\nNot supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionRetryPolicy:RegionUrlMapDefaultRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionTimeout:RegionUrlMapDefaultRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries.\nIf not specified, this field uses the largest timeout among all backend services associated with the route.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionUrlRewrite:RegionUrlMapDefaultRouteActionUrlRewrite","description":"The spec to modify the URL of the request, before forwarding the request to the matched service.\nurlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers.\nNot supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendService:RegionUrlMapDefaultRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number.\nAfter a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionCorsPolicy:RegionUrlMapDefaultRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header.\nDefault is false.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regualar expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicy:RegionUrlMapDefaultRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort:RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay:RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort:RegionUrlMapDefaultRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay:RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionRequestMirrorPolicy:RegionUrlMapDefaultRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the RegionBackendService resource being mirrored to.\nThe backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.\nServerless NEG backends are not currently supported as a mirrored backend service.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionRetryPolicy:RegionUrlMapDefaultRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout:RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specifies one or more conditions when this retry policy applies.\nValid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable.\n- 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams.\n- gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504.\n- connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts.\n- retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409.\n- refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n- cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled.\n- deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded.\n- internal :  a retry is attempted if the gRPC status code in the response header is set to internal.\n- resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted.\n- unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout:RegionUrlMapDefaultRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionTimeout:RegionUrlMapDefaultRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionUrlRewrite:RegionUrlMapDefaultRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite.\nThe value must be from 1 to 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite.\nThe value must be from 1 to 1024 characters.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendService:RegionUrlMapDefaultRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for the selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.\nheaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy.\nThe value must be from 0 to 1000.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapDefaultUrlRedirect:RegionUrlMapDefaultUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\nThis field is required to ensure an empty block is not set. The normal default value is false.\n"}},"type":"object","required":["stripQuery"]},"gcp:compute/RegionUrlMapHeaderAction:RegionUrlMapHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapHeaderActionRequestHeadersToAdd:RegionUrlMapHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapHeaderActionResponseHeadersToAdd:RegionUrlMapHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapHeaderActionRequestHeadersToAdd:RegionUrlMapHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapHeaderActionResponseHeadersToAdd:RegionUrlMapHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapHostRule:RegionUrlMapHostRule":{"properties":{"description":{"type":"string","description":"An optional description of this HostRule. Provide this property\nwhen you create the resource.\n"},"hosts":{"type":"array","items":{"type":"string"},"description":"The list of host patterns to match. They must be valid\nhostnames, except * will match any string of ([a-z0-9-.]*). In\nthat case, * must be the first character and must be followed in\nthe pattern by either - or ..\n"},"pathMatcher":{"type":"string","description":"The name of the PathMatcher to use to match the path portion of\nthe URL if the hostRule matches the URL's host portion.\n"}},"type":"object","required":["hosts","pathMatcher"]},"gcp:compute/RegionUrlMapPathMatcher:RegionUrlMapPathMatcher":{"properties":{"defaultRouteAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteAction:RegionUrlMapPathMatcherDefaultRouteAction","description":"defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs\nadvanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request\nto the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.\nConversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.\nOnly one of defaultRouteAction or defaultUrlRedirect must be set.\nStructure is documented below.\n"},"defaultService":{"type":"string","description":"A reference to a RegionBackendService resource. This will be used if\nnone of the pathRules defined by this PathMatcher is matched by\nthe URL's path portion.\n"},"defaultUrlRedirect":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultUrlRedirect:RegionUrlMapPathMatcherDefaultUrlRedirect","description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.\nStructure is documented below.\n"},"description":{"type":"string","description":"An optional description of this resource.\n"},"headerAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherHeaderAction:RegionUrlMapPathMatcherHeaderAction","description":"Specifies changes to request and response headers that need to take effect for the selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.\nheaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.\n"},"pathRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRule:RegionUrlMapPathMatcherPathRule"},"description":"The list of path rules. Use this list instead of routeRules when routing based\non simple path matching is all that's required. The order by which path rules\nare specified does not matter. Matches are always done on the longest-path-first\nbasis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*\nirrespective of the order in which those paths appear in this list. Within a\ngiven pathMatcher, only one of pathRules or routeRules must be set.\nStructure is documented below.\n"},"routeRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRule:RegionUrlMapPathMatcherRouteRule"},"description":"The list of ordered HTTP route rules. Use this list instead of pathRules when\nadvanced route matching and routing actions are desired. The order of specifying\nrouteRules matters: the first rule that matches will cause its specified routing\naction to take effect. Within a given pathMatcher, only one of pathRules or\nrouteRules must be set. routeRules are not supported in UrlMaps intended for\nExternal load balancers.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteAction:RegionUrlMapPathMatcherDefaultRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionCorsPolicy:RegionUrlMapPathMatcherDefaultRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicy:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by a load balancer on a percentage of requests before sending those requests to the backend service.\nSimilarly requests from clients can be aborted by the load balancer for a percentage of requests.\ntimeout and retryPolicy is ignored by clients that are configured with a faultInjectionPolicy if: 1. The traffic is generated by fault injection AND 2. The fault injection is not a delay fault injection.\nFault injection is not supported with the global external HTTP(S) load balancer (classic). To see which load balancers support fault injection, see Load balancing: [Routing and traffic management features](https://cloud.google.com/load-balancing/docs/features#routing-traffic-management).\nStructure is documented below.\n"},"maxStreamDuration":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionMaxStreamDuration:RegionUrlMapPathMatcherDefaultRouteActionMaxStreamDuration","description":"Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the `Timeout` field where the timeout duration starts from the time the request\nhas been fully processed (known as end-of-stream), the duration in this field\nis computed from the beginning of the stream until the response has been processed,\nincluding all retries. A stream that does not complete in this duration is closed.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy:RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nThe load balancer does not wait for responses from the shadow service. Before sending traffic to the shadow service, the host / authority header is suffixed with -shadow.\nNot supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionRetryPolicy:RegionUrlMapPathMatcherDefaultRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionTimeout:RegionUrlMapPathMatcherDefaultRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been fully processed (known as end-of-stream) up until the response has been processed. Timeout includes all retries.\nIf not specified, this field uses the largest timeout among all backend services associated with the route.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionUrlRewrite:RegionUrlMapPathMatcherDefaultRouteActionUrlRewrite","description":"The spec to modify the URL of the request, before forwarding the request to the matched service.\nurlRewrite is the only action supported in UrlMaps for external HTTP(S) load balancers.\nNot supported when the URL map is bound to a target gRPC proxy that has the validateForProxyless field set to true.\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendService:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match occurs. The weights determine the fraction of traffic that flows to their corresponding backend service. If all traffic needs to go to a single backend service, there must be one weightedBackendService with weight set to a non-zero number.\nAfter a backend service is identified and before forwarding the request to the backend service, advanced routing actions such as URL rewrites and header transformations are applied depending on additional settings specified in this HttpRouteAction.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxStreamDuration","timeout"]}}},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionCorsPolicy:RegionUrlMapPathMatcherDefaultRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header.\nDefault is false.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regualar expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicy:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionMaxStreamDuration:RegionUrlMapPathMatcherDefaultRouteActionMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy:RegionUrlMapPathMatcherDefaultRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the RegionBackendService resource being mirrored to.\nThe backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.\nServerless NEG backends are not currently supported as a mirrored backend service.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionRetryPolicy:RegionUrlMapPathMatcherDefaultRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout:RegionUrlMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specifies one or more conditions when this retry policy applies.\nValid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable.\n- 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams.\n- gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504.\n- connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts.\n- retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409.\n- refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n- cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled.\n- deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded.\n- internal :  a retry is attempted if the gRPC status code in the response header is set to internal.\n- resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted.\n- unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout:RegionUrlMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionTimeout:RegionUrlMapPathMatcherDefaultRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionUrlRewrite:RegionUrlMapPathMatcherDefaultRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite.\nThe value must be from 1 to 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite.\nThe value must be from 1 to 1024 characters.\n"},"pathTemplateRewrite":{"type":"string","description":"If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax.\nA corresponding pathTemplateMatch must be specified. Any template variables must exist in the pathTemplateMatch field.\n* At least one variable must be specified in the pathTemplateMatch field\n* You can omit variables from the rewritten URL\n* The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}.\nFor example, a pathTemplateMatch of /static/{format=**} could be rewritten as /static/content/{format} to prefix\n/content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be\nrewritten as /content/{format}/{country}/{suffix}.\nAt least one non-empty routeRules[].matchRules[].path_template_match is required.\nOnly one of pathPrefixRewrite or pathTemplateRewrite may be specified.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendService:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for the selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.\nheaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy.\nThe value must be from 0 to 1000.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherDefaultUrlRedirect:RegionUrlMapPathMatcherDefaultUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained.\nThis field is required to ensure an empty block is not set. The normal default value is false.\n"}},"type":"object","required":["stripQuery"]},"gcp:compute/RegionUrlMapPathMatcherHeaderAction:RegionUrlMapPathMatcherHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherPathRule:RegionUrlMapPathMatcherPathRule":{"properties":{"paths":{"type":"array","items":{"type":"string"},"description":"The list of path patterns to match. Each must start with / and the only place a\n\\* is allowed is at the end following a /. The string fed to the path matcher\ndoes not include any text after the first ? or #, and those chars are not\nallowed here.\n"},"routeAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteAction:RegionUrlMapPathMatcherPathRuleRouteAction","description":"In response to a matching path, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any  weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.\nStructure is documented below.\n"},"service":{"type":"string","description":"The region backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.\n"},"urlRedirect":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleUrlRedirect:RegionUrlMapPathMatcherPathRuleUrlRedirect","description":"When a path pattern is matched, the request is redirected to a URL specified\nby urlRedirect. If urlRedirect is specified, service or routeAction must not\nbe set.\nStructure is documented below.\n"}},"type":"object","required":["paths"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteAction:RegionUrlMapPathMatcherPathRuleRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy:RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and\u003cspan pulumi-lang-nodejs=\" retryPolicy \" pulumi-lang-dotnet=\" RetryPolicy \" pulumi-lang-go=\" retryPolicy \" pulumi-lang-python=\" retry_policy \" pulumi-lang-yaml=\" retryPolicy \" pulumi-lang-java=\" retryPolicy \"\u003e retry_policy \u003c/span\u003ewill be\nignored by clients that are configured with a fault_injection_policy.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy:RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy:RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionTimeout:RegionUrlMapPathMatcherPathRuleRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite:RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite","description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one  weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy:RegionUrlMapPathMatcherPathRuleRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header.\nDefault is false.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regualar expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object","required":["disabled"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["httpStatus","percentage"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["fixedDelay","percentage"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy:RegionUrlMapPathMatcherPathRuleRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the RegionBackendService resource being mirrored to.\nThe backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.\nServerless NEG backends are not currently supported as a mirrored backend service.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy:RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout:RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specifies one or more conditions when this retry policy applies.\nValid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable.\n- 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams.\n- gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504.\n- connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts.\n- retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409.\n- refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n- cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled.\n- deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded.\n- internal :  a retry is attempted if the gRPC status code in the response header is set to internal.\n- resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted.\n- unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout:RegionUrlMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionTimeout:RegionUrlMapPathMatcherPathRuleRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite:RegionUrlMapPathMatcherPathRuleRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite.\nThe value must be from 1 to 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite.\nThe value must be from 1 to 1024 characters.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for the selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.\nheaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy.\nThe value must be from 0 to 1000.\n"}},"type":"object","required":["backendService","weight"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/RegionUrlMapPathMatcherPathRuleUrlRedirect:RegionUrlMapPathMatcherPathRuleUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained.\nThis field is required to ensure an empty block is not set. The normal default value is false.\n"}},"type":"object","required":["stripQuery"]},"gcp:compute/RegionUrlMapPathMatcherRouteRule:RegionUrlMapPathMatcherRouteRule":{"properties":{"headerAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleHeaderAction:RegionUrlMapPathMatcherRouteRuleHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here are applied before\nthe matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r\nouteAction.weightedBackendService.backendServiceWeightAction[].headerAction\nStructure is documented below.\n"},"matchRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRule:RegionUrlMapPathMatcherRouteRuleMatchRule"},"description":"The rules for determining a match.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"For routeRules within a given pathMatcher, priority determines the order\nin which load balancer will interpret routeRules. RouteRules are evaluated\nin order of priority, from the lowest to highest number. The priority of\na rule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number between 0 and\n2147483647 inclusive.\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example,\n1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which\nyou could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the\nfuture without any impact on existing rules.\n"},"routeAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteAction:RegionUrlMapPathMatcherRouteRuleRouteAction","description":"In response to a matching matchRule, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If  routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any  weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.\nStructure is documented below.\n"},"service":{"type":"string","description":"The region backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.\n"},"urlRedirect":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleUrlRedirect:RegionUrlMapPathMatcherRouteRuleUrlRedirect","description":"When this rule is matched, the request is redirected to a URL specified by\nurlRedirect. If urlRedirect is specified, service or routeAction must not be\nset.\nStructure is documented below.\n"}},"type":"object","required":["priority"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleHeaderAction:RegionUrlMapPathMatcherRouteRuleHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRule:RegionUrlMapPathMatcherRouteRuleMatchRule":{"properties":{"fullPathMatch":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly\nmatch the value specified in fullPathMatch after removing any query parameters\nand anchor that may be part of the original URL. FullPathMatch must be between 1\nand 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must\nbe specified.\n"},"headerMatches":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch:RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch"},"description":"Specifies a list of header match criteria, all of which must match corresponding\nheaders in the request.\nStructure is documented below.\n"},"ignoreCase":{"type":"boolean","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.\nDefaults to false.\n"},"metadataFilters":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter:RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter"},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to\na limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS\nclients present node metadata. If a match takes place, the relevant routing\nconfiguration is made available to those proxies. For each metadataFilter in\nthis list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the\nfilterLabels must match the corresponding label provided in the metadata. If its\nfilterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match\nwith corresponding labels in the provided metadata. metadataFilters specified\nhere can be overrides those specified in ForwardingRule that refers to this\nUrlMap. metadataFilters only applies to Loadbalancers that have their\nloadBalancingScheme set to INTERNAL_SELF_MANAGED.\nStructure is documented below.\n"},"pathTemplateMatch":{"type":"string","description":"For satisfying the matchRule condition, the path of the request\nmust match the wildcard pattern specified in pathTemplateMatch\nafter removing any query parameters and anchor that may be part\nof the original URL.\npathTemplateMatch must be between 1 and 255 characters\n(inclusive).  The pattern specified by pathTemplateMatch may\nhave at most 5 wildcard operators and at most 5 variable\ncaptures in total.\n"},"prefixMatch":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the\nspecified prefixMatch. prefixMatch must begin with a /. The value must be\nbetween 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or\nregexMatch must be specified.\n"},"queryParameterMatches":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch:RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch"},"description":"Specifies a list of query parameter match criteria, all of which must match\ncorresponding query parameters in the request.\nStructure is documented below.\n"},"regexMatch":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must satisfy the\nregular expression specified in regexMatch after removing any query parameters\nand anchor supplied with the original URL. For regular expression grammar please\nsee en.cppreference.com/w/cpp/regex/ecmascript  Only one of prefixMatch,\nfullPathMatch or regexMatch must be specified.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch:RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatch":{"properties":{"exactMatch":{"type":"string","description":"The value should exactly match contents of exactMatch. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.\n"},"headerName":{"type":"string","description":"The name of the HTTP header to match. For matching against the HTTP request's\nauthority, use a headerMatch with the header name \":authority\". For matching a\nrequest's method, use the headerName \":method\".\n"},"invertMatch":{"type":"boolean","description":"If set to false, the headerMatch is considered a match if the match criteria\nabove are met. If set to true, the headerMatch is considered a match if the\nmatch criteria above are NOT met. Defaults to false.\n"},"prefixMatch":{"type":"string","description":"The value of the header must start with the contents of prefixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.\n"},"presentMatch":{"type":"boolean","description":"A header with the contents of headerName must exist. The match takes place\nwhether or not the request's header has a value or not. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.\n"},"rangeMatch":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch:RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch","description":"The header value must be an integer and its value must be in the range specified\nin rangeMatch. If the header does not contain an integer, number or is empty,\nthe match fails. For example for a range [-5, 0]\n* -3 will match\n* 0 will not match\n* 0.25 will not match\n* -3someString will not match.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.\nStructure is documented below.\n"},"regexMatch":{"type":"string","description":"The value of the header must match the regular expression specified in\nregexMatch. For regular expression grammar, please see:\nen.cppreference.com/w/cpp/regex/ecmascript  For matching against a port\nspecified in the HTTP request, use a headerMatch with headerName set to PORT and\na regular expression that satisfies the RFC2616 Host header's port specifier.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.\n"},"suffixMatch":{"type":"string","description":"The value of the header must end with the contents of suffixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.\n"}},"type":"object","required":["headerName"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch:RegionUrlMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch":{"properties":{"rangeEnd":{"type":"integer","description":"The end of the range (exclusive).\n"},"rangeStart":{"type":"integer","description":"The start of the range (inclusive).\n"}},"type":"object","required":["rangeEnd","rangeStart"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter:RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilter":{"properties":{"filterLabels":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel:RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel"},"description":"The list of label value pairs that must match labels in the provided metadata\nbased on filterMatchCriteria  This list must not be empty and can have at the\nmost 64 entries.\nStructure is documented below.\n"},"filterMatchCriteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of filterLabels\ncontribute towards the overall metadataFilter match. Supported values are:\n* MATCH_ANY: At least one of the filterLabels must have a matching label in the\nprovided metadata.\n* MATCH_ALL: All filterLabels must have matching labels in\nthe provided metadata.\nPossible values are: `MATCH_ALL`, `MATCH_ANY`.\n"}},"type":"object","required":["filterLabels","filterMatchCriteria"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel:RegionUrlMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel":{"properties":{"name":{"type":"string","description":"Name of metadata label. The name can have a maximum length of 1024 characters\nand must be at least 1 character long.\n"},"value":{"type":"string","description":"The value of the label must match the specified value. value can have a maximum\nlength of 1024 characters.\n"}},"type":"object","required":["name","value"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch:RegionUrlMapPathMatcherRouteRuleMatchRuleQueryParameterMatch":{"properties":{"exactMatch":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches\nthe contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch\nmust be set.\n"},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the\nrequest, in the absence of which the request match fails.\n"},"presentMatch":{"type":"boolean","description":"Specifies that the queryParameterMatch matches if the request contains the query\nparameter, irrespective of whether the parameter has a value or not. Only one of\npresentMatch, exactMatch and regexMatch must be set.\n"},"regexMatch":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter matches the\nregular expression specified by regexMatch. For the regular expression grammar,\nplease see en.cppreference.com/w/cpp/regex/ecmascript  Only one of presentMatch,\nexactMatch and regexMatch must be set.\n"}},"type":"object","required":["name"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteAction:RegionUrlMapPathMatcherRouteRuleRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and\u003cspan pulumi-lang-nodejs=\" retryPolicy \" pulumi-lang-dotnet=\" RetryPolicy \" pulumi-lang-go=\" retryPolicy \" pulumi-lang-python=\" retry_policy \" pulumi-lang-yaml=\" retryPolicy \" pulumi-lang-java=\" retryPolicy \"\u003e retry_policy \u003c/span\u003ewill be\nignored by clients that are configured with a fault_injection_policy.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionTimeout:RegionUrlMapPathMatcherRouteRuleRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite:RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite","description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one  weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials. This field translates to the Access-Control-Allow-Credentials header.\nDefault is false.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regualar expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, the setting specifies the CORS policy is disabled. The default value of false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay:RegionUrlMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the RegionBackendService resource being mirrored to.\nThe backend service configured for a mirroring policy must reference backends that are of the same type as the original backend service matched in the URL map.\nServerless NEG backends are not currently supported as a mirrored backend service.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy:RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout:RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specifies one or more conditions when this retry policy applies.\nValid values are listed below. Only the following codes are supported when the URL map is bound to target gRPC proxy that has validateForProxyless field set to true: cancelled, deadline-exceeded, internal, resource-exhausted, unavailable.\n- 5xx : retry is attempted if the instance or endpoint responds with any 5xx response code, or if the instance or endpoint does not respond at all. For example, disconnects, reset, read timeout, connection failure, and refused streams.\n- gateway-error : Similar to 5xx, but only applies to response codes 502, 503 or 504.\n- connect-failure : a retry is attempted on failures connecting to the instance or endpoint. For example, connection timeouts.\n- retriable-4xx : a retry is attempted if the instance or endpoint responds with a 4xx response code. The only error that you can retry is error code 409.\n- refused-stream : a retry is attempted if the instance or endpoint resets the stream with a REFUSED_STREAM error code. This reset type indicates that it is safe to retry.\n- cancelled : a retry is attempted if the gRPC status code in the response header is set to cancelled.\n- deadline-exceeded : a retry is attempted if the gRPC status code in the response header is set to deadline-exceeded.\n- internal :  a retry is attempted if the gRPC status code in the response header is set to internal.\n- resource-exhausted : a retry is attempted if the gRPC status code in the response header is set to resource-exhausted.\n- unavailable : a retry is attempted if the gRPC status code in the response header is set to unavailable.\n"}},"type":"object","required":["numRetries"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout:RegionUrlMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionTimeout:RegionUrlMapPathMatcherRouteRuleRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite:RegionUrlMapPathMatcherRouteRuleRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Before forwarding the request to the selected service, the request's host header is replaced with contents of hostRewrite.\nThe value must be from 1 to 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Before forwarding the request to the selected backend service, the matching portion of the request's path is replaced by pathPrefixRewrite.\nThe value must be from 1 to 1024 characters.\n"},"pathTemplateRewrite":{"type":"string","description":"If specified, the pattern rewrites the URL path (based on the :path header) using the HTTP template syntax.\nA corresponding pathTemplateMatch must be specified. Any template variables must exist in the pathTemplateMatch field.\n* At least one variable must be specified in the pathTemplateMatch field\n* You can omit variables from the rewritten URL\n* The * and ** operators cannot be matched unless they have a corresponding variable name - e.g. {format=*} or {var=**}.\nFor example, a pathTemplateMatch of /static/{format=**} could be rewritten as /static/content/{format} to prefix\n/content to the URL. Variables can also be re-ordered in a rewrite, so that /{country}/{format}/{suffix=**} can be\nrewritten as /content/{format}/{country}/{suffix}.\nAt least one non-empty routeRules[].matchRules[].path_template_match is required.\nOnly one of pathPrefixRewrite or pathTemplateRewrite may be specified.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the request to backendService, the load balancer applies any relevant headerActions specified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for the selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing HttpRouteRule, PathMatcher and UrlMap.\nheaderAction is not supported for load balancers that have their loadBalancingScheme set to EXTERNAL.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to a backend service, computed as weight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request has been directed to a backend service, subsequent requests are sent to the same backend service as determined by the backend service's session affinity policy.\nThe value must be from 0 to 1000.\n"}},"type":"object","required":["backendService","weight"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request before forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request before forwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response before sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response before sending the response back to the client.\n"}},"type":"object"},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:RegionUrlMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header. If true, headerValue is set for the header, discarding any values that were set for that header.\nThe default value is false.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/RegionUrlMapPathMatcherRouteRuleUrlRedirect:RegionUrlMapPathMatcherRouteRuleUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one\nthat was supplied in the request. The value must be between 1 and 255\ncharacters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https.\nIf set to false, the URL scheme of the redirected request will remain the\nsame as that of the request. This must only be set for UrlMaps used in\nTargetHttpProxys. Setting this true for TargetHttpsProxy is not\npermitted. The default is set to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one\nthat was supplied in the request. pathRedirect cannot be supplied\ntogether with prefixRedirect. Supply one alone or neither. If neither is\nsupplied, the path of the original request will be used for the redirect.\nThe value must be between 1 and 1024 characters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the\nHttpRouteRuleMatch, retaining the remaining portion of the URL before\nredirecting the request. prefixRedirect cannot be supplied together with\npathRedirect. Supply one alone or neither. If neither is supplied, the\npath of the original request will be used for the redirect. The value\nmust be between 1 and 1024 characters.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained.\nThis field is required to ensure an empty block is not set. The normal default value is false.\n"}},"type":"object"},"gcp:compute/RegionUrlMapTest:RegionUrlMapTest":{"properties":{"description":{"type":"string","description":"Description of this test case.\n"},"host":{"type":"string","description":"Host portion of the URL.\n"},"path":{"type":"string","description":"Path portion of the URL.\n"},"service":{"type":"string","description":"A reference to expected RegionBackendService resource the given URL should be mapped to.\n"}},"type":"object","required":["host","path","service"]},"gcp:compute/ReservationDeleteAfterDuration:ReservationDeleteAfterDuration":{"properties":{"nanos":{"type":"integer","description":"Number of nanoseconds for the auto-delete duration.\n","willReplaceOnChanges":true},"seconds":{"type":"string","description":"Number of seconds for the auto-delete duration.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/ReservationReservationSharingPolicy:ReservationReservationSharingPolicy":{"properties":{"serviceShareType":{"type":"string","description":"Sharing config for all Google Cloud services.\nPossible values are: `ALLOW_ALL`, `DISALLOW_ALL`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceShareType"]}}},"gcp:compute/ReservationResourceStatus:ReservationResourceStatus":{"properties":{"healthInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationResourceStatusHealthInfo:ReservationResourceStatusHealthInfo"},"description":"(Output)\nHealth information for the reservation.\nStructure is documented below.\n"},"reservationBlockCount":{"type":"integer","description":"(Output)\nThe number of reservation blocks associated with this reservation.\n"},"reservationMaintenances":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationResourceStatusReservationMaintenance:ReservationResourceStatusReservationMaintenance"},"description":"(Output)\nMaintenance information for this reservation\nStructure is documented below.\n"},"specificSkuAllocations":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationResourceStatusSpecificSkuAllocation:ReservationResourceStatusSpecificSkuAllocation"},"description":"(Output)\nAllocation Properties of this reservation.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["healthInfos","reservationBlockCount","reservationMaintenances","specificSkuAllocations"]}}},"gcp:compute/ReservationResourceStatusHealthInfo:ReservationResourceStatusHealthInfo":{"properties":{"degradedBlockCount":{"type":"integer","description":"(Output)\nThe number of reservation blocks that are degraded.\n"},"healthStatus":{"type":"string","description":"(Output)\nThe health status of the reservation.\n"},"healthyBlockCount":{"type":"integer","description":"(Output)\nThe number of reservation blocks that are healthy.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["degradedBlockCount","healthStatus","healthyBlockCount"]}}},"gcp:compute/ReservationResourceStatusReservationMaintenance:ReservationResourceStatusReservationMaintenance":{"properties":{"instanceMaintenanceOngoingCount":{"type":"integer","description":"(Output)\nDescribes number of instances that have ongoing maintenance.\n"},"instanceMaintenancePendingCount":{"type":"integer","description":"(Output)\nDescribes number of instances that have pending maintenance.\n"},"maintenanceOngoingCount":{"type":"integer","description":"(Output)\nProgress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have ongoing maintenance.\n"},"maintenancePendingCount":{"type":"integer","description":"(Output)\nProgress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have pending maintenance.\n"},"schedulingType":{"type":"string","description":"(Output)\nThe type of maintenance for the reservation.\n"},"subblockInfraMaintenanceOngoingCount":{"type":"integer","description":"(Output)\nDescribes number of subblock Infrastructure that has ongoing maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not all VM Families will support this field.\n"},"subblockInfraMaintenancePendingCount":{"type":"integer","description":"(Output)\nDescribes number of subblock Infrastructure that has pending maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not all VM Families will support this field.\n"},"upcomingGroupMaintenances":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance:ReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance"},"description":"(Output)\nMaintenance information on this group of VMs.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceMaintenanceOngoingCount","instanceMaintenancePendingCount","maintenanceOngoingCount","maintenancePendingCount","schedulingType","subblockInfraMaintenanceOngoingCount","subblockInfraMaintenancePendingCount","upcomingGroupMaintenances"]}}},"gcp:compute/ReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance:ReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance":{"properties":{"canReschedule":{"type":"boolean","description":"(Output)\nIndicates if the maintenance can be customer triggered.\n"},"latestWindowStartTime":{"type":"string","description":"(Output)\nThe latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.\n"},"maintenanceOnShutdown":{"type":"boolean","description":"(Output)\nIndicates whether the UpcomingMaintenance will be triggered on VM shutdown.\n"},"maintenanceReasons":{"type":"array","items":{"type":"string"},"description":"(Output)\nThe reasons for the maintenance. Only valid for vms.\n"},"maintenanceStatus":{"type":"string","description":"(Output)\nStatus of the maintenance.\n"},"type":{"type":"string","description":"(Output)\nDefines the type of maintenance.\n"},"windowEndTime":{"type":"string","description":"(Output)\nThe time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.\n"},"windowStartTime":{"type":"string","description":"(Output)\nThe current start time of the maintenance window. This timestamp value is in RFC3339 text format.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["canReschedule","latestWindowStartTime","maintenanceOnShutdown","maintenanceReasons","maintenanceStatus","type","windowEndTime","windowStartTime"]}}},"gcp:compute/ReservationResourceStatusSpecificSkuAllocation:ReservationResourceStatusSpecificSkuAllocation":{"properties":{"sourceInstanceTemplateId":{"type":"string","description":"(Output)\nID of the instance template used to populate reservation properties.\n"},"utilizations":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nPer service utilization breakdown. The Key is the Google Cloud managed service name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sourceInstanceTemplateId","utilizations"]}}},"gcp:compute/ReservationShareSettings:ReservationShareSettings":{"properties":{"projectMaps":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationShareSettingsProjectMap:ReservationShareSettingsProjectMap"},"description":"A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS.\nStructure is documented below.\n"},"projects":{"type":"array","items":{"type":"string"},"description":"(Optional, Beta)\nList of project IDs with which the reservation is shared.\n"},"shareType":{"type":"string","description":"Type of sharing for this shared-reservation\nPossible values are: `LOCAL`, `SPECIFIC_PROJECTS`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["shareType"]}}},"gcp:compute/ReservationShareSettingsProjectMap:ReservationShareSettingsProjectMap":{"properties":{"id":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"projectId":{"type":"string","description":"The project id/number, should be same as the key of this project config in the project map.\n"}},"type":"object","required":["id"]},"gcp:compute/ReservationSpecificReservation:ReservationSpecificReservation":{"properties":{"assuredCount":{"type":"integer","description":"(Output)\nIndicates how many instances are actually usable currently.\n"},"count":{"type":"integer","description":"The number of resources that are allocated.\n"},"inUseCount":{"type":"integer","description":"(Output)\nHow many instances are in use.\n"},"instanceProperties":{"$ref":"#/types/gcp:compute/ReservationSpecificReservationInstanceProperties:ReservationSpecificReservationInstanceProperties","description":"The instance properties for the reservation.\nStructure is documented below.\n","willReplaceOnChanges":true},"sourceInstanceTemplate":{"type":"string","description":"Specifies the instance template to create the reservation. If you use this field, you must exclude the\ninstanceProperties field.\n"}},"type":"object","required":["count"],"language":{"nodejs":{"requiredOutputs":["assuredCount","count","inUseCount","instanceProperties"]}}},"gcp:compute/ReservationSpecificReservationInstanceProperties:ReservationSpecificReservationInstanceProperties":{"properties":{"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationSpecificReservationInstancePropertiesGuestAccelerator:ReservationSpecificReservationInstancePropertiesGuestAccelerator"},"description":"Guest accelerator type and count.\nStructure is documented below.\n","willReplaceOnChanges":true},"localSsds":{"type":"array","items":{"$ref":"#/types/gcp:compute/ReservationSpecificReservationInstancePropertiesLocalSsd:ReservationSpecificReservationInstancePropertiesLocalSsd"},"description":"The amount of local ssd to reserve with each instance. This\nreserves disks of type `local-ssd`.\nStructure is documented below.\n","willReplaceOnChanges":true},"locationHint":{"type":"string","description":"(Output)\nAn opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.\n"},"machineType":{"type":"string","description":"The name of the machine type to reserve.\n","willReplaceOnChanges":true},"maintenanceInterval":{"type":"string","description":"(Optional, Beta)\nSpecifies the frequency of planned maintenance events.\nPossible values are: `AS_NEEDED`, `PERIODIC`, `RECURRENT`.\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"The minimum CPU platform for the reservation. For example,\n`\"Intel Skylake\"`. See\nthe CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones)\nfor information on available CPU platforms.\n","willReplaceOnChanges":true}},"type":"object","required":["machineType"],"language":{"nodejs":{"requiredOutputs":["locationHint","machineType","minCpuPlatform"]}}},"gcp:compute/ReservationSpecificReservationInstancePropertiesGuestAccelerator:ReservationSpecificReservationInstancePropertiesGuestAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the guest accelerator cards exposed to\nthis instance.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"The full or partial URL of the accelerator type to\nattach to this instance. For example:\n`projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100`\nIf you are creating an instance template, specify only the accelerator name.\n","willReplaceOnChanges":true}},"type":"object","required":["acceleratorCount","acceleratorType"]},"gcp:compute/ReservationSpecificReservationInstancePropertiesLocalSsd:ReservationSpecificReservationInstancePropertiesLocalSsd":{"properties":{"diskSizeGb":{"type":"integer","description":"The size of the disk in base-2 GB.\n","willReplaceOnChanges":true},"interface":{"type":"string","description":"The disk interface to use for attaching this disk.\nDefault value is `SCSI`.\nPossible values are: `SCSI`, `NVME`.\n","willReplaceOnChanges":true}},"type":"object","required":["diskSizeGb"]},"gcp:compute/ResizeRequestRequestedRunDuration:ResizeRequestRequestedRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n","willReplaceOnChanges":true},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly.\n","willReplaceOnChanges":true}},"type":"object","required":["seconds"]},"gcp:compute/ResizeRequestStatus:ResizeRequestStatus":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusError:ResizeRequestStatusError"},"description":"(Output)\nFatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.\nStructure is documented below.\n"},"lastAttempts":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttempt:ResizeRequestStatusLastAttempt"},"description":"(Output)\nInformation about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the \"error\" field only.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors","lastAttempts"]}}},"gcp:compute/ResizeRequestStatusError:ResizeRequestStatusError":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorError:ResizeRequestStatusErrorError"},"description":"(Output)\nThe array of errors encountered while processing this operation.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors"]}}},"gcp:compute/ResizeRequestStatusErrorError:ResizeRequestStatusErrorError":{"properties":{"code":{"type":"string","description":"(Output)\nThe error type identifier for this error.\n"},"errorDetails":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetail:ResizeRequestStatusErrorErrorErrorDetail"},"description":"(Output)\nAn array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.\nStructure is documented below.\n"},"location":{"type":"string","description":"(Output)\nIndicates the field in the request that caused the error. This property is optional.\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","errorDetails","location","message"]}}},"gcp:compute/ResizeRequestStatusErrorErrorErrorDetail:ResizeRequestStatusErrorErrorErrorDetail":{"properties":{"errorInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailErrorInfo:ResizeRequestStatusErrorErrorErrorDetailErrorInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"helps":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailHelp:ResizeRequestStatusErrorErrorErrorDetailHelp"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"localizedMessages":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage:ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"quotaInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo:ResizeRequestStatusErrorErrorErrorDetailQuotaInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorInfos","helps","localizedMessages","quotaInfos"]}}},"gcp:compute/ResizeRequestStatusErrorErrorErrorDetailErrorInfo:ResizeRequestStatusErrorErrorErrorDetailErrorInfo":{"properties":{"domain":{"type":"string","description":"(Output)\nThe logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\".\n"},"metadatas":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAdditional structured details about this error.\n"},"reason":{"type":"string","description":"(Output)\nThe reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domain","metadatas","reason"]}}},"gcp:compute/ResizeRequestStatusErrorErrorErrorDetailHelp:ResizeRequestStatusErrorErrorErrorDetailHelp":{"properties":{"links":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailHelpLink:ResizeRequestStatusErrorErrorErrorDetailHelpLink"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["links"]}}},"gcp:compute/ResizeRequestStatusErrorErrorErrorDetailHelpLink:ResizeRequestStatusErrorErrorErrorDetailHelpLink":{"properties":{"description":{"type":"string","description":"An optional description of this resize-request.\n"},"url":{"type":"string","description":"(Output)\nThe URL of the link.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","url"]}}},"gcp:compute/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage:ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage":{"properties":{"locale":{"type":"string","description":"(Output)\nThe locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["locale","message"]}}},"gcp:compute/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo:ResizeRequestStatusErrorErrorErrorDetailQuotaInfo":{"properties":{"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nThe map holding related quota dimensions\n"},"futureLimit":{"type":"integer","description":"(Output)\nFuture quota limit being rolled out. The limit's unit depends on the quota type or metric.\n"},"limit":{"type":"integer","description":"(Output)\nCurrent effective quota limit. The limit's unit depends on the quota type or metric.\n"},"limitName":{"type":"string","description":"(Output)\nThe name of the quota limit.\n"},"metricName":{"type":"string","description":"(Output)\nThe Compute Engine quota metric name.\n"},"rolloutStatus":{"type":"string","description":"(Output)\nRollout status of the future quota limit.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dimensions","futureLimit","limit","limitName","metricName","rolloutStatus"]}}},"gcp:compute/ResizeRequestStatusLastAttempt:ResizeRequestStatusLastAttempt":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptError:ResizeRequestStatusLastAttemptError"},"description":"(Output)\nFatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors"]}}},"gcp:compute/ResizeRequestStatusLastAttemptError:ResizeRequestStatusLastAttemptError":{"properties":{"errors":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorError:ResizeRequestStatusLastAttemptErrorError"},"description":"(Output)\nThe array of errors encountered while processing this operation.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errors"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorError:ResizeRequestStatusLastAttemptErrorError":{"properties":{"code":{"type":"string","description":"(Output)\nThe error type identifier for this error.\n"},"errorDetails":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetail:ResizeRequestStatusLastAttemptErrorErrorErrorDetail"},"description":"(Output)\nAn array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.\nStructure is documented below.\n"},"location":{"type":"string","description":"(Output)\nIndicates the field in the request that caused the error. This property is optional.\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","errorDetails","location","message"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetail:ResizeRequestStatusLastAttemptErrorErrorErrorDetail":{"properties":{"errorInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo:ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"helps":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp:ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"localizedMessages":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage:ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"},"quotaInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo:ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorInfos","helps","localizedMessages","quotaInfos"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo:ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo":{"properties":{"domain":{"type":"string","description":"(Output)\nThe logical grouping to which the \"reason\" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: \"pubsub.googleapis.com\".\n"},"metadatas":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nAdditional structured details about this error.\n"},"reason":{"type":"string","description":"(Output)\nThe reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["domain","metadatas","reason"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp:ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp":{"properties":{"links":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink:ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink"},"description":"(Output)\nA nested object resource.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["links"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink:ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink":{"properties":{"description":{"type":"string","description":"An optional description of this resize-request.\n"},"url":{"type":"string","description":"(Output)\nThe URL of the link.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["description","url"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage:ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage":{"properties":{"locale":{"type":"string","description":"(Output)\nThe locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: \"en-US\", \"fr-CH\", \"es-MX\"\n"},"message":{"type":"string","description":"(Output)\nThe localized error message in the above locale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["locale","message"]}}},"gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo:ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo":{"properties":{"dimensions":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nThe map holding related quota dimensions\n"},"futureLimit":{"type":"integer","description":"(Output)\nFuture quota limit being rolled out. The limit's unit depends on the quota type or metric.\n"},"limit":{"type":"integer","description":"(Output)\nCurrent effective quota limit. The limit's unit depends on the quota type or metric.\n"},"limitName":{"type":"string","description":"(Output)\nThe name of the quota limit.\n"},"metricName":{"type":"string","description":"(Output)\nThe Compute Engine quota metric name.\n"},"rolloutStatus":{"type":"string","description":"(Output)\nRollout status of the future quota limit.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dimensions","futureLimit","limit","limitName","metricName","rolloutStatus"]}}},"gcp:compute/ResourcePolicyDiskConsistencyGroupPolicy:ResourcePolicyDiskConsistencyGroupPolicy":{"properties":{"enabled":{"type":"boolean","description":"Enable disk consistency on the resource policy.\n","willReplaceOnChanges":true}},"type":"object","required":["enabled"]},"gcp:compute/ResourcePolicyGroupPlacementPolicy:ResourcePolicyGroupPlacementPolicy":{"properties":{"availabilityDomainCount":{"type":"integer","description":"The number of availability domains instances will be spread across. If two instances are in different\navailability domain, they will not be put in the same low latency network\n"},"collocation":{"type":"string","description":"Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network.\nSpecify `COLLOCATED` to enable collocation. Can only be specified with \u003cspan pulumi-lang-nodejs=\"`vmCount`\" pulumi-lang-dotnet=\"`VmCount`\" pulumi-lang-go=\"`vmCount`\" pulumi-lang-python=\"`vm_count`\" pulumi-lang-yaml=\"`vmCount`\" pulumi-lang-java=\"`vmCount`\"\u003e`vm_count`\u003c/span\u003e. If compute instances are created\nwith a COLLOCATED policy, then exactly \u003cspan pulumi-lang-nodejs=\"`vmCount`\" pulumi-lang-dotnet=\"`VmCount`\" pulumi-lang-go=\"`vmCount`\" pulumi-lang-python=\"`vm_count`\" pulumi-lang-yaml=\"`vmCount`\" pulumi-lang-java=\"`vmCount`\"\u003e`vm_count`\u003c/span\u003e instances must be created at the same time with the resource policy\nattached.\nPossible values are: `COLLOCATED`.\n"},"gpuTopology":{"type":"string","description":"Specifies the shape of the GPU slice, in slice based GPU families eg. A4X.\n","willReplaceOnChanges":true},"maxDistance":{"type":"integer","description":"(Optional, Beta)\nSpecifies the number of max logical switches.\n"},"tpuTopology":{"type":"string","description":"(Optional, Beta)\nSpecifies the shape of the TPU slice.\n","willReplaceOnChanges":true},"vmCount":{"type":"integer","description":"Number of VMs in this placement group. Google does not recommend that you use this field\nunless you use a compact policy and you want your policy to work only if it contains this\nexact number of VMs.\n"}},"type":"object"},"gcp:compute/ResourcePolicyInstanceSchedulePolicy:ResourcePolicyInstanceSchedulePolicy":{"properties":{"expirationTime":{"type":"string","description":"The expiration time of the schedule. The timestamp is an RFC3339 string.\n"},"startTime":{"type":"string","description":"The start time of the schedule. The timestamp is an RFC3339 string.\n"},"timeZone":{"type":"string","description":"Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name\nfrom the tz database: http://en.wikipedia.org/wiki/Tz_database.\n"},"vmStartSchedule":{"$ref":"#/types/gcp:compute/ResourcePolicyInstanceSchedulePolicyVmStartSchedule:ResourcePolicyInstanceSchedulePolicyVmStartSchedule","description":"Specifies the schedule for starting instances.\nStructure is documented below.\n"},"vmStopSchedule":{"$ref":"#/types/gcp:compute/ResourcePolicyInstanceSchedulePolicyVmStopSchedule:ResourcePolicyInstanceSchedulePolicyVmStopSchedule","description":"Specifies the schedule for stopping instances.\nStructure is documented below.\n"}},"type":"object","required":["timeZone"]},"gcp:compute/ResourcePolicyInstanceSchedulePolicyVmStartSchedule:ResourcePolicyInstanceSchedulePolicyVmStartSchedule":{"properties":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.\n"}},"type":"object","required":["schedule"]},"gcp:compute/ResourcePolicyInstanceSchedulePolicyVmStopSchedule:ResourcePolicyInstanceSchedulePolicyVmStopSchedule":{"properties":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.\n"}},"type":"object","required":["schedule"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicy:ResourcePolicySnapshotSchedulePolicy":{"properties":{"retentionPolicy":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicyRetentionPolicy:ResourcePolicySnapshotSchedulePolicyRetentionPolicy","description":"Retention policy applied to snapshots created by this resource policy.\nStructure is documented below.\n"},"schedule":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicySchedule:ResourcePolicySnapshotSchedulePolicySchedule","description":"Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`.\nStructure is documented below.\n"},"snapshotProperties":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicySnapshotProperties:ResourcePolicySnapshotSchedulePolicySnapshotProperties","description":"Properties with which the snapshots are created, such as labels.\nStructure is documented below.\n"}},"type":"object","required":["schedule"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicyRetentionPolicy:ResourcePolicySnapshotSchedulePolicyRetentionPolicy":{"properties":{"maxRetentionDays":{"type":"integer","description":"Maximum age of the snapshot that is allowed to be kept.\n"},"onSourceDiskDelete":{"type":"string","description":"Specifies the behavior to apply to scheduled snapshots when\nthe source disk is deleted.\nDefault value is `KEEP_AUTO_SNAPSHOTS`.\nPossible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`.\n"}},"type":"object","required":["maxRetentionDays"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicySchedule:ResourcePolicySnapshotSchedulePolicySchedule":{"properties":{"dailySchedule":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule:ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule","description":"The policy will execute every nth day at the specified time.\nStructure is documented below.\n"},"hourlySchedule":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule:ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule","description":"The policy will execute every nth hour starting at the specified time.\nStructure is documented below.\n"},"weeklySchedule":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule:ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule","description":"Allows specifying a snapshot time for each day of the week.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule:ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule":{"properties":{"daysInCycle":{"type":"integer","description":"Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1.\n"},"startTime":{"type":"string","description":"This must be in UTC format that resolves to one of\n00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example,\nboth 13:00-5 and 08:00 are valid.\n"}},"type":"object","required":["daysInCycle","startTime"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule:ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule":{"properties":{"hoursInCycle":{"type":"integer","description":"The number of hours between snapshots.\n"},"startTime":{"type":"string","description":"Time within the window to start the operations.\nIt must be in an hourly format \"HH:MM\",\nwhere HH : [00-23] and MM : [00] GMT. eg: 21:00\n"}},"type":"object","required":["hoursInCycle","startTime"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule:ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule":{"properties":{"dayOfWeeks":{"type":"array","items":{"$ref":"#/types/gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek:ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek"},"description":"May contain up to seven (one for each day of the week) snapshot times.\nStructure is documented below.\n"}},"type":"object","required":["dayOfWeeks"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek:ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek":{"properties":{"day":{"type":"string","description":"The day of the week to create the snapshot. e.g. MONDAY\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"startTime":{"type":"string","description":"Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.\n"}},"type":"object","required":["day","startTime"]},"gcp:compute/ResourcePolicySnapshotSchedulePolicySnapshotProperties:ResourcePolicySnapshotSchedulePolicySnapshotProperties":{"properties":{"chainName":{"type":"string","description":"Creates the new snapshot in the snapshot chain labeled with the\nspecified name. The chain name must be 1-63 characters long and comply\nwith RFC1035.\n"},"guestFlush":{"type":"boolean","description":"Whether to perform a 'guest aware' snapshot.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key-value pairs.\n"},"storageLocations":{"type":"string","description":"Cloud Storage bucket location to store the auto snapshot\n(regional or multi-regional)\n"}},"type":"object"},"gcp:compute/ResourcePolicyWorkloadPolicy:ResourcePolicyWorkloadPolicy":{"properties":{"acceleratorTopology":{"type":"string","description":"The accelerator topology. This field can be set only when the workload policy type is HIGH_THROUGHPUT\nand cannot be set if max topology distance is set.\n","willReplaceOnChanges":true},"maxTopologyDistance":{"type":"string","description":"The maximum topology distance. This field can be set only when the workload policy type is HIGH_THROUGHPUT\nand cannot be set if accelerator topology is set.\nPossible values are: `BLOCK`, `CLUSTER`, `SUBBLOCK`.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of workload policy.\nPossible values are: `HIGH_AVAILABILITY`, `HIGH_THROUGHPUT`.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/RolloutPlanWave:RolloutPlanWave":{"properties":{"displayName":{"type":"string","description":"The display name of this wave of the rollout plan.\n","willReplaceOnChanges":true},"number":{"type":"integer","description":"(Output)\nThe wave number.\n"},"orchestrationOptions":{"$ref":"#/types/gcp:compute/RolloutPlanWaveOrchestrationOptions:RolloutPlanWaveOrchestrationOptions","description":"Options to control the pace of orchestration of a wave.\nStructure is documented below.\n","willReplaceOnChanges":true},"selectors":{"type":"array","items":{"$ref":"#/types/gcp:compute/RolloutPlanWaveSelector:RolloutPlanWaveSelector"},"description":"The selectors for this wave. There is a logical AND between each selector\ndefined in a wave, so a resource must satisfy the criteria of *all* the\nspecified selectors to be in scope for the wave.\nStructure is documented below.\n","willReplaceOnChanges":true},"validation":{"$ref":"#/types/gcp:compute/RolloutPlanWaveValidation:RolloutPlanWaveValidation","description":"The validation to be performed before progressing to the next wave.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["selectors","validation"],"language":{"nodejs":{"requiredOutputs":["number","selectors","validation"]}}},"gcp:compute/RolloutPlanWaveOrchestrationOptions:RolloutPlanWaveOrchestrationOptions":{"properties":{"delays":{"type":"array","items":{"$ref":"#/types/gcp:compute/RolloutPlanWaveOrchestrationOptionsDelay:RolloutPlanWaveOrchestrationOptionsDelay"},"description":"Delays, if any, to be added between batches of projects.\nStructure is documented below.\n","willReplaceOnChanges":true},"maxConcurrentLocations":{"type":"integer","description":"Maximum number of locations to be orchestrated in parallel.\n","willReplaceOnChanges":true},"maxConcurrentResourcesPerLocation":{"type":"integer","description":"Maximum number of resources to be orchestrated per location in parallel.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RolloutPlanWaveOrchestrationOptionsDelay:RolloutPlanWaveOrchestrationOptionsDelay":{"properties":{"delimiter":{"type":"string","description":"Controls whether the delay should only be added between batches of projects corresponding to different locations, or also between batches of projects corresponding to the same location.\nPossible values are: `DELIMITER_UNSPECIFIED`, `DELIMITER_LOCATION`, `DELIMITER_BATCH`.\n","willReplaceOnChanges":true},"duration":{"type":"string","description":"The duration of the delay, if any, to be added between batches of projects.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Controls whether the specified duration is to be added at the end of each batch, or if the total processing time for each batch will be padded if needed to meet the specified duration.\nPossible values are: `TYPE_UNSPECIFIED`, `TYPE_OFFSET`, `TYPE_MINIMUM`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RolloutPlanWaveSelector:RolloutPlanWaveSelector":{"properties":{"locationSelector":{"$ref":"#/types/gcp:compute/RolloutPlanWaveSelectorLocationSelector:RolloutPlanWaveSelectorLocationSelector","description":"Roll out to resources by location.\nStructure is documented below.\n","willReplaceOnChanges":true},"resourceHierarchySelector":{"$ref":"#/types/gcp:compute/RolloutPlanWaveSelectorResourceHierarchySelector:RolloutPlanWaveSelectorResourceHierarchySelector","description":"Roll out to resources by Cloud Resource Manager resource hierarchy nodes such as projects, folders, orgs.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RolloutPlanWaveSelectorLocationSelector:RolloutPlanWaveSelectorLocationSelector":{"properties":{"includedLocations":{"type":"array","items":{"type":"string"},"description":"Example: \"us-central1-a\"\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RolloutPlanWaveSelectorResourceHierarchySelector:RolloutPlanWaveSelectorResourceHierarchySelector":{"properties":{"includedFolders":{"type":"array","items":{"type":"string"},"description":"Format: \"folders/{folder_id}\"\n","willReplaceOnChanges":true},"includedOrganizations":{"type":"array","items":{"type":"string"},"description":"Format: \"organizations/{organization_id}\"\n","willReplaceOnChanges":true},"includedProjects":{"type":"array","items":{"type":"string"},"description":"Format: \"projects/{project_id}\"\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RolloutPlanWaveValidation:RolloutPlanWaveValidation":{"properties":{"timeBasedValidationMetadata":{"$ref":"#/types/gcp:compute/RolloutPlanWaveValidationTimeBasedValidationMetadata:RolloutPlanWaveValidationTimeBasedValidationMetadata","description":"Metadata required if type = \"time\".\nStructure is documented below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the validation. Possible values:\n\"manual\": The system waits for an end-user approval API before progressing to the next wave.\n\"time\": The system waits for a user specified duration before progressing to the next wave.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:compute/RolloutPlanWaveValidationTimeBasedValidationMetadata:RolloutPlanWaveValidationTimeBasedValidationMetadata":{"properties":{"waitDuration":{"type":"string","description":"The duration that the system waits in between waves. This wait starts\nafter all changes in the wave are rolled out.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RouteAsPath:RouteAsPath":{"properties":{"asLists":{"type":"array","items":{"type":"integer"},"description":"(Output)\nThe AS numbers of the AS Path.\n"},"pathSegmentType":{"type":"string","description":"(Output)\nThe type of the AS Path, which can be one of the following values:\n- 'AS_SET': unordered set of autonomous systems that the route in has traversed\n- 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed\n- 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed\n- 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["asLists","pathSegmentType"]}}},"gcp:compute/RouteParams:RouteParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the route. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/RouteWarning:RouteWarning":{"properties":{"code":{"type":"string","description":"(Output)\nA warning code, if applicable. For example, Compute Engine returns\nNO_RESULTS_ON_PAGE if there are no results in the response.\n"},"datas":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouteWarningData:RouteWarningData"},"description":"(Output)\nMetadata about this warning in key: value format. For example:\n\"data\":   {  \"key\": \"scope\",  \"value\": \"zones/us-east1-d\"  }\nStructure is [documented below.\n"},"message":{"type":"string","description":"(Output)\nA human-readable description of the warning code.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","datas","message"]}}},"gcp:compute/RouteWarningData:RouteWarningData":{"properties":{"key":{"type":"string","description":"(Output)\nA key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).\n"},"value":{"type":"string","description":"(Output)\nA warning data value corresponding to the key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","value"]}}},"gcp:compute/RouterBgp:RouterBgp":{"properties":{"advertiseMode":{"type":"string","description":"User-specified flag to indicate which mode to use for advertisement.\nDefault value is `DEFAULT`.\nPossible values are: `DEFAULT`, `CUSTOM`.\n"},"advertisedGroups":{"type":"array","items":{"type":"string"},"description":"User-specified list of prefix groups to advertise in custom mode.\nThis field can only be populated if advertiseMode is CUSTOM and\nis advertised to all peers of the router. These groups will be\nadvertised in addition to any specified prefixes. Leave this field\nblank to advertise no custom groups.\nThis enum field has the one valid value: ALL_SUBNETS\n"},"advertisedIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterBgpAdvertisedIpRange:RouterBgpAdvertisedIpRange"},"description":"User-specified list of individual IP ranges to advertise in\ncustom mode. This field can only be populated if advertiseMode\nis CUSTOM and is advertised to all peers of the router. These IP\nranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.\nStructure is documented below.\n"},"asn":{"type":"integer","description":"Local BGP Autonomous System Number (ASN). Must be an RFC6996\nprivate ASN, either 16-bit or 32-bit. The value will be fixed for\nthis router resource. All VPN tunnels that link to this router\nwill have the same local ASN.\n"},"identifierRange":{"type":"string","description":"Explicitly specifies a range of valid BGP Identifiers for this Router.\nIt is provided as a link-local IPv4 range (from 169.254.0.0/16), of\nsize at least /30, even if the BGP sessions are over IPv6. It must\nnot overlap with any IPv4 BGP session ranges. Other vendors commonly\ncall this router ID.\n"},"keepaliveInterval":{"type":"integer","description":"The interval in seconds between BGP keepalive messages that are sent\nto the peer. Hold time is three times the interval at which keepalive\nmessages are sent, and the hold time is the maximum number of seconds\nallowed to elapse between successive keepalive messages that BGP\nreceives from a peer.\nBGP will use the smaller of either the local hold time value or the\npeer's hold time value as the hold time for the BGP connection\nbetween the two peers. If set, this value must be between 20 and 60.\nThe default is 20.\n"}},"type":"object","required":["asn"],"language":{"nodejs":{"requiredOutputs":["asn","identifierRange"]}}},"gcp:compute/RouterBgpAdvertisedIpRange:RouterBgpAdvertisedIpRange":{"properties":{"description":{"type":"string","description":"User-specified description for the IP range.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMd5AuthenticationKeys\"\" pulumi-lang-dotnet=\"\"NestedMd5AuthenticationKeys\"\" pulumi-lang-go=\"\"nestedMd5AuthenticationKeys\"\" pulumi-lang-python=\"\"nested_md5_authentication_keys\"\" pulumi-lang-yaml=\"\"nestedMd5AuthenticationKeys\"\" pulumi-lang-java=\"\"nestedMd5AuthenticationKeys\"\"\u003e\"nested_md5_authentication_keys\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`md5AuthenticationKeys`\" pulumi-lang-dotnet=\"`Md5AuthenticationKeys`\" pulumi-lang-go=\"`md5AuthenticationKeys`\" pulumi-lang-python=\"`md5_authentication_keys`\" pulumi-lang-yaml=\"`md5AuthenticationKeys`\" pulumi-lang-java=\"`md5AuthenticationKeys`\"\u003e`md5_authentication_keys`\u003c/span\u003e block supports:\n"},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.\n"}},"type":"object","required":["range"]},"gcp:compute/RouterMd5AuthenticationKeys:RouterMd5AuthenticationKeys":{"properties":{"key":{"type":"string","description":"Value of the key used for MD5 authentication.\n"},"name":{"type":"string","description":"Name of the resource. The name must be 1-63 characters long, and\ncomply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression `a-z?`\nwhich means the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.\n"}},"type":"object","required":["key","name"]},"gcp:compute/RouterNatLogConfig:RouterNatLogConfig":{"properties":{"enable":{"type":"boolean","description":"Indicates whether or not to export logs.\n"},"filter":{"type":"string","description":"Specifies the desired filtering of logs on this NAT.\nPossible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`.\n"}},"type":"object","required":["enable","filter"]},"gcp:compute/RouterNatNat64Subnetwork:RouterNatNat64Subnetwork":{"properties":{"name":{"type":"string","description":"Name of the NAT service. The name must be 1-63 characters long and\ncomply with RFC1035.\n"}},"type":"object","required":["name"]},"gcp:compute/RouterNatRule:RouterNatRule":{"properties":{"action":{"$ref":"#/types/gcp:compute/RouterNatRuleAction:RouterNatRuleAction","description":"The action to be enforced for traffic that matches this rule.\nStructure is documented below.\n"},"description":{"type":"string","description":"An optional description of this rule.\n"},"match":{"type":"string","description":"CEL expression that specifies the match condition that egress traffic from a VM is evaluated against.\nIf it evaluates to true, the corresponding action is enforced.\nThe following examples are valid match expressions for public NAT:\n\"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\"\n\"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\"\nThe following example is a valid match expression for private NAT:\n\"nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'\"\n"},"ruleNumber":{"type":"integer","description":"An integer uniquely identifying a rule in the list.\nThe rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.\n"}},"type":"object","required":["match","ruleNumber"],"language":{"nodejs":{"requiredOutputs":["action","match","ruleNumber"]}}},"gcp:compute/RouterNatRuleAction:RouterNatRuleAction":{"properties":{"sourceNatActiveIps":{"type":"array","items":{"type":"string"},"description":"A list of URLs of the IP resources used for this NAT rule.\nThese IP addresses must be valid static external IP addresses assigned to the project.\nThis field is used for public NAT.\n"},"sourceNatActiveRanges":{"type":"array","items":{"type":"string"},"description":"A list of URLs of the subnetworks used as source ranges for this NAT Rule.\nThese subnetworks must have purpose set to PRIVATE_NAT.\nThis field is used for private NAT.\n"},"sourceNatDrainIps":{"type":"array","items":{"type":"string"},"description":"A list of URLs of the IP resources to be drained.\nThese IPs must be valid static external IPs that have been assigned to the NAT.\nThese IPs should be used for updating/patching a NAT rule only.\nThis field is used for public NAT.\n"},"sourceNatDrainRanges":{"type":"array","items":{"type":"string"},"description":"A list of URLs of subnetworks representing source ranges to be drained.\nThis is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule.\nThis field is used for private NAT.\n"}},"type":"object"},"gcp:compute/RouterNatSubnetwork:RouterNatSubnetwork":{"properties":{"name":{"type":"string","description":"Self-link of the subnetwork resource that will use NAT64\n"},"secondaryIpRangeNames":{"type":"array","items":{"type":"string"},"description":"List of the secondary ranges of the subnetwork that are allowed\nto use NAT. This can be populated only if\n`LIST_OF_SECONDARY_IP_RANGES` is one of the values in\nsourceIpRangesToNat\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedNat64Subnetwork\"\" pulumi-lang-dotnet=\"\"NestedNat64Subnetwork\"\" pulumi-lang-go=\"\"nestedNat64Subnetwork\"\" pulumi-lang-python=\"\"nested_nat64_subnetwork\"\" pulumi-lang-yaml=\"\"nestedNat64Subnetwork\"\" pulumi-lang-java=\"\"nestedNat64Subnetwork\"\"\u003e\"nested_nat64_subnetwork\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`nat64Subnetwork`\" pulumi-lang-dotnet=\"`Nat64Subnetwork`\" pulumi-lang-go=\"`nat64Subnetwork`\" pulumi-lang-python=\"`nat64_subnetwork`\" pulumi-lang-yaml=\"`nat64Subnetwork`\" pulumi-lang-java=\"`nat64Subnetwork`\"\u003e`nat64_subnetwork`\u003c/span\u003e block supports:\n"},"sourceIpRangesToNats":{"type":"array","items":{"type":"string"},"description":"List of options for which source IPs in the subnetwork\nshould have NAT enabled. Supported values include:\n`ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`,\n`PRIMARY_IP_RANGE`.\n"}},"type":"object","required":["name","sourceIpRangesToNats"]},"gcp:compute/RouterParams:RouterParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the router. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object"},"gcp:compute/RouterPeerAdvertisedIpRange:RouterPeerAdvertisedIpRange":{"properties":{"description":{"type":"string","description":"User-specified description for the IP range.\n"},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.\n"}},"type":"object","required":["range"]},"gcp:compute/RouterPeerBfd:RouterPeerBfd":{"properties":{"minReceiveInterval":{"type":"integer","description":"The minimum interval, in milliseconds, between BFD control packets\nreceived from the peer router. The actual value is negotiated\nbetween the two routers and is equal to the greater of this value\nand the transmit interval of the other router. If set, this value\nmust be between 1000 and 30000.\n"},"minTransmitInterval":{"type":"integer","description":"The minimum interval, in milliseconds, between BFD control packets\ntransmitted to the peer router. The actual value is negotiated\nbetween the two routers and is equal to the greater of this value\nand the corresponding receive interval of the other router. If set,\nthis value must be between 1000 and 30000.\n"},"multiplier":{"type":"integer","description":"The number of consecutive BFD packets that must be missed before\nBFD declares that a peer is unavailable. If set, the value must\nbe a value between 5 and 16.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedMd5AuthenticationKey\"\" pulumi-lang-dotnet=\"\"NestedMd5AuthenticationKey\"\" pulumi-lang-go=\"\"nestedMd5AuthenticationKey\"\" pulumi-lang-python=\"\"nested_md5_authentication_key\"\" pulumi-lang-yaml=\"\"nestedMd5AuthenticationKey\"\" pulumi-lang-java=\"\"nestedMd5AuthenticationKey\"\"\u003e\"nested_md5_authentication_key\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`md5AuthenticationKey`\" pulumi-lang-dotnet=\"`Md5AuthenticationKey`\" pulumi-lang-go=\"`md5AuthenticationKey`\" pulumi-lang-python=\"`md5_authentication_key`\" pulumi-lang-yaml=\"`md5AuthenticationKey`\" pulumi-lang-java=\"`md5AuthenticationKey`\"\u003e`md5_authentication_key`\u003c/span\u003e block supports:\n"},"sessionInitializationMode":{"type":"string","description":"The BFD session initialization mode for this BGP peer.\nIf set to `ACTIVE`, the Cloud Router will initiate the BFD session\nfor this BGP peer. If set to `PASSIVE`, the Cloud Router will wait\nfor the peer router to initiate the BFD session for this BGP peer.\nIf set to `DISABLED`, BFD is disabled for this BGP peer.\nPossible values are: `ACTIVE`, `DISABLED`, `PASSIVE`.\n"}},"type":"object","required":["sessionInitializationMode"]},"gcp:compute/RouterPeerCustomLearnedIpRange:RouterPeerCustomLearnedIpRange":{"properties":{"range":{"type":"string","description":"The IP range to learn. The value must be a\nCIDR-formatted string.\n"}},"type":"object","required":["range"]},"gcp:compute/RouterPeerMd5AuthenticationKey:RouterPeerMd5AuthenticationKey":{"properties":{"key":{"type":"string","description":"Value of the key.\n","secret":true},"name":{"type":"string","description":"Name of this BGP peer. The name must be 1-63 characters long,\nand comply with RFC1035. Specifically, the name must be 1-63 characters\nlong and match the regular expression `a-z?` which\nmeans the first character must be a lowercase letter, and all\nfollowing characters must be a dash, lowercase letter, or digit,\nexcept the last character, which cannot be a dash.\n"}},"type":"object","required":["key","name"]},"gcp:compute/RouterRoutePolicyTerm:RouterRoutePolicyTerm":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterRoutePolicyTermAction:RouterRoutePolicyTermAction"},"description":"'CEL expressions to evaluate to modify a route when this term matches.'\\\nStructure is documented below.\n"},"match":{"$ref":"#/types/gcp:compute/RouterRoutePolicyTermMatch:RouterRoutePolicyTermMatch","description":"CEL expression evaluated against a route to determine if this term applies (see Policy Language).\nStructure is documented below.\n"},"priority":{"type":"integer","description":"The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list.\n"}},"type":"object","required":["match","priority"]},"gcp:compute/RouterRoutePolicyTermAction:RouterRoutePolicyTermAction":{"properties":{"description":{"type":"string","description":"Description of the expression\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression\nLanguage syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error\nreporting, e.g. a file name and a position in the file\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its\npurpose.\n"}},"type":"object","required":["expression"]},"gcp:compute/RouterRoutePolicyTermMatch:RouterRoutePolicyTermMatch":{"properties":{"description":{"type":"string","description":"Description of the expression\n"},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n"},"location":{"type":"string","description":"String indicating the location of the expression for error reporting, e.g. a file name and a position in the file\n"},"title":{"type":"string","description":"Title for the expression, i.e. a short string describing its purpose.\n"}},"type":"object","required":["expression"]},"gcp:compute/RouterStatusBestRoute:RouterStatusBestRoute":{"properties":{"asPaths":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRouteAsPath:RouterStatusBestRouteAsPath"}},"creationTimestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property\nwhen you create the resource.\n"},"destRange":{"type":"string","description":"The destination range of outgoing packets that this route applies to.\nOnly IPv4 is supported.\n"},"name":{"type":"string","description":"The name of the router.\n"},"network":{"type":"string","description":"The network name or resource link to the parent\nnetwork of this subnetwork.\n"},"nextHopGateway":{"type":"string","description":"URL to a gateway that should handle matching packets.\nCurrently, you can only specify the internet gateway, using a full or\npartial valid URL:\n* 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway'\n* 'projects/project/global/gateways/default-internet-gateway'\n* 'global/gateways/default-internet-gateway'\n* The string 'default-internet-gateway'.\n"},"nextHopHub":{"type":"string","description":"The hub network that should handle matching packets, which should conform to RFC1035.\n"},"nextHopIlb":{"type":"string","description":"The IP address or URL to a forwarding rule of type\nloadBalancingScheme=INTERNAL that should handle matching\npackets.\n\nWith the GA provider you can only specify the forwarding\nrule as a partial or full URL. For example, the following\nare all valid values:\n* 10.128.0.56\n* https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n* regions/region/forwardingRules/forwardingRule\n\nWhen the beta provider, you can also specify the IP address\nof a forwarding rule from the same VPC or any peered VPC.\n\nNote that this can only be used when the destinationRange is\na public (non-RFC 1918) IP CIDR range.\n"},"nextHopInstance":{"type":"string","description":"URL to an instance that should handle matching packets.\nYou can specify this as a full or partial URL. For example:\n* 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance'\n* 'projects/project/zones/zone/instances/instance'\n* 'zones/zone/instances/instance'\n* Just the instance name, with the zone in 'next_hop_instance_zone'.\n"},"nextHopInstanceZone":{"type":"string","description":"The zone of the instance specified in next_hop_instance. Omit if\u003cspan pulumi-lang-nodejs=\" nextHopInstance \" pulumi-lang-dotnet=\" NextHopInstance \" pulumi-lang-go=\" nextHopInstance \" pulumi-lang-python=\" next_hop_instance \" pulumi-lang-yaml=\" nextHopInstance \" pulumi-lang-java=\" nextHopInstance \"\u003e next_hop_instance \u003c/span\u003eis specified as a URL.\n"},"nextHopInterRegionCost":{"type":"string","description":"Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions.\n"},"nextHopIp":{"type":"string","description":"Network IP address of an instance that should handle matching packets.\n"},"nextHopMed":{"type":"string","description":"Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.\n"},"nextHopNetwork":{"type":"string","description":"URL to a Network that should handle matching packets.\n"},"nextHopOrigin":{"type":"string","description":"Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.\n"},"nextHopPeering":{"type":"string","description":"The network peering name that should handle matching packets, which should conform to RFC1035.\n"},"nextHopVpnTunnel":{"type":"string","description":"URL to a VpnTunnel that should handle matching packets.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRouteParam:RouterStatusBestRouteParam"},"description":"Additional params passed with the request, but not persisted as part of resource payload\n"},"priority":{"type":"integer","description":"The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length.\n\nIn the case of two routes with equal prefix length, the one with the\nlowest-numbered priority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.\n"},"project":{"type":"string","description":"The ID of the project in which the resource\nbelongs. If it is not provided, the provider project is used.\n"},"routeStatus":{"type":"string","description":"The status of the route, which can be one of the following values:\n- 'ACTIVE' for an active route\n- 'INACTIVE' for an inactive route\n"},"routeType":{"type":"string","description":"The type of this route, which can be one of the following values:\n- 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers\n- 'SUBNET' for a route from a subnet of the VPC\n- 'BGP' for a route learned from a BGP peer of this router\n- 'STATIC' for a static route\n"},"selfLink":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of instance tags to which this route applies.\n"},"warnings":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRouteWarning:RouterStatusBestRouteWarning"},"description":"If potential misconfigurations are detected for this route, this field will be populated with warning messages.\n"}},"type":"object","required":["asPaths","creationTimestamp","description","destRange","name","network","nextHopGateway","nextHopHub","nextHopIlb","nextHopInstance","nextHopInstanceZone","nextHopInterRegionCost","nextHopIp","nextHopMed","nextHopNetwork","nextHopOrigin","nextHopPeering","nextHopVpnTunnel","params","priority","project","routeStatus","routeType","selfLink","tags","warnings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRouteAsPath:RouterStatusBestRouteAsPath":{"properties":{"asLists":{"type":"array","items":{"type":"integer"},"description":"The AS numbers of the AS Path.\n"},"pathSegmentType":{"type":"string","description":"The type of the AS Path, which can be one of the following values:\n- 'AS_SET': unordered set of autonomous systems that the route in has traversed\n- 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed\n- 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed\n- 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed\n"}},"type":"object","required":["asLists","pathSegmentType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRouteParam:RouterStatusBestRouteParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the route. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRouteWarning:RouterStatusBestRouteWarning":{"properties":{"code":{"type":"string","description":"A warning code, if applicable. For example, Compute Engine returns\nNO_RESULTS_ON_PAGE if there are no results in the response.\n"},"datas":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRouteWarningData:RouterStatusBestRouteWarningData"},"description":"Metadata about this warning in key: value format. For example:\n\"data\": [  {  \"key\": \"scope\",  \"value\": \"zones/us-east1-d\"  }\n"},"message":{"type":"string","description":"A human-readable description of the warning code.\n"}},"type":"object","required":["code","datas","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRouteWarningData:RouterStatusBestRouteWarningData":{"properties":{"key":{"type":"string","description":"A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).\n"},"value":{"type":"string","description":"A warning data value corresponding to the key.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRoutesForRouter:RouterStatusBestRoutesForRouter":{"properties":{"asPaths":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRoutesForRouterAsPath:RouterStatusBestRoutesForRouterAsPath"}},"creationTimestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property\nwhen you create the resource.\n"},"destRange":{"type":"string","description":"The destination range of outgoing packets that this route applies to.\nOnly IPv4 is supported.\n"},"name":{"type":"string","description":"The name of the router.\n"},"network":{"type":"string","description":"The network name or resource link to the parent\nnetwork of this subnetwork.\n"},"nextHopGateway":{"type":"string","description":"URL to a gateway that should handle matching packets.\nCurrently, you can only specify the internet gateway, using a full or\npartial valid URL:\n* 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway'\n* 'projects/project/global/gateways/default-internet-gateway'\n* 'global/gateways/default-internet-gateway'\n* The string 'default-internet-gateway'.\n"},"nextHopHub":{"type":"string","description":"The hub network that should handle matching packets, which should conform to RFC1035.\n"},"nextHopIlb":{"type":"string","description":"The IP address or URL to a forwarding rule of type\nloadBalancingScheme=INTERNAL that should handle matching\npackets.\n\nWith the GA provider you can only specify the forwarding\nrule as a partial or full URL. For example, the following\nare all valid values:\n* 10.128.0.56\n* https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n* regions/region/forwardingRules/forwardingRule\n\nWhen the beta provider, you can also specify the IP address\nof a forwarding rule from the same VPC or any peered VPC.\n\nNote that this can only be used when the destinationRange is\na public (non-RFC 1918) IP CIDR range.\n"},"nextHopInstance":{"type":"string","description":"URL to an instance that should handle matching packets.\nYou can specify this as a full or partial URL. For example:\n* 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance'\n* 'projects/project/zones/zone/instances/instance'\n* 'zones/zone/instances/instance'\n* Just the instance name, with the zone in 'next_hop_instance_zone'.\n"},"nextHopInstanceZone":{"type":"string","description":"The zone of the instance specified in next_hop_instance. Omit if\u003cspan pulumi-lang-nodejs=\" nextHopInstance \" pulumi-lang-dotnet=\" NextHopInstance \" pulumi-lang-go=\" nextHopInstance \" pulumi-lang-python=\" next_hop_instance \" pulumi-lang-yaml=\" nextHopInstance \" pulumi-lang-java=\" nextHopInstance \"\u003e next_hop_instance \u003c/span\u003eis specified as a URL.\n"},"nextHopInterRegionCost":{"type":"string","description":"Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions.\n"},"nextHopIp":{"type":"string","description":"Network IP address of an instance that should handle matching packets.\n"},"nextHopMed":{"type":"string","description":"Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.\n"},"nextHopNetwork":{"type":"string","description":"URL to a Network that should handle matching packets.\n"},"nextHopOrigin":{"type":"string","description":"Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.\n"},"nextHopPeering":{"type":"string","description":"The network peering name that should handle matching packets, which should conform to RFC1035.\n"},"nextHopVpnTunnel":{"type":"string","description":"URL to a VpnTunnel that should handle matching packets.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRoutesForRouterParam:RouterStatusBestRoutesForRouterParam"},"description":"Additional params passed with the request, but not persisted as part of resource payload\n"},"priority":{"type":"integer","description":"The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length.\n\nIn the case of two routes with equal prefix length, the one with the\nlowest-numbered priority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.\n"},"project":{"type":"string","description":"The ID of the project in which the resource\nbelongs. If it is not provided, the provider project is used.\n"},"routeStatus":{"type":"string","description":"The status of the route, which can be one of the following values:\n- 'ACTIVE' for an active route\n- 'INACTIVE' for an inactive route\n"},"routeType":{"type":"string","description":"The type of this route, which can be one of the following values:\n- 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers\n- 'SUBNET' for a route from a subnet of the VPC\n- 'BGP' for a route learned from a BGP peer of this router\n- 'STATIC' for a static route\n"},"selfLink":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of instance tags to which this route applies.\n"},"warnings":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRoutesForRouterWarning:RouterStatusBestRoutesForRouterWarning"},"description":"If potential misconfigurations are detected for this route, this field will be populated with warning messages.\n"}},"type":"object","required":["asPaths","creationTimestamp","description","destRange","name","network","nextHopGateway","nextHopHub","nextHopIlb","nextHopInstance","nextHopInstanceZone","nextHopInterRegionCost","nextHopIp","nextHopMed","nextHopNetwork","nextHopOrigin","nextHopPeering","nextHopVpnTunnel","params","priority","project","routeStatus","routeType","selfLink","tags","warnings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRoutesForRouterAsPath:RouterStatusBestRoutesForRouterAsPath":{"properties":{"asLists":{"type":"array","items":{"type":"integer"},"description":"The AS numbers of the AS Path.\n"},"pathSegmentType":{"type":"string","description":"The type of the AS Path, which can be one of the following values:\n- 'AS_SET': unordered set of autonomous systems that the route in has traversed\n- 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed\n- 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed\n- 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed\n"}},"type":"object","required":["asLists","pathSegmentType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRoutesForRouterParam:RouterStatusBestRoutesForRouterParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the route. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRoutesForRouterWarning:RouterStatusBestRoutesForRouterWarning":{"properties":{"code":{"type":"string","description":"A warning code, if applicable. For example, Compute Engine returns\nNO_RESULTS_ON_PAGE if there are no results in the response.\n"},"datas":{"type":"array","items":{"$ref":"#/types/gcp:compute/RouterStatusBestRoutesForRouterWarningData:RouterStatusBestRoutesForRouterWarningData"},"description":"Metadata about this warning in key: value format. For example:\n\"data\": [  {  \"key\": \"scope\",  \"value\": \"zones/us-east1-d\"  }\n"},"message":{"type":"string","description":"A human-readable description of the warning code.\n"}},"type":"object","required":["code","datas","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/RouterStatusBestRoutesForRouterWarningData:RouterStatusBestRoutesForRouterWarningData":{"properties":{"key":{"type":"string","description":"A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).\n"},"value":{"type":"string","description":"A warning data value corresponding to the key.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/SecurityPolicyAdaptiveProtectionConfig:SecurityPolicyAdaptiveProtectionConfig":{"properties":{"autoDeployConfig":{"$ref":"#/types/gcp:compute/SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig:SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig","description":") Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedLayer7DdosDefenseConfig\"\" pulumi-lang-dotnet=\"\"NestedLayer7DdosDefenseConfig\"\" pulumi-lang-go=\"\"nestedLayer7DdosDefenseConfig\"\" pulumi-lang-python=\"\"nested_layer_7_ddos_defense_config\"\" pulumi-lang-yaml=\"\"nestedLayer7DdosDefenseConfig\"\" pulumi-lang-java=\"\"nestedLayer7DdosDefenseConfig\"\"\u003e\"nested_layer_7_ddos_defense_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`layer7DdosDefenseConfig`\" pulumi-lang-dotnet=\"`Layer7DdosDefenseConfig`\" pulumi-lang-go=\"`layer7DdosDefenseConfig`\" pulumi-lang-python=\"`layer_7_ddos_defense_config`\" pulumi-lang-yaml=\"`layer7DdosDefenseConfig`\" pulumi-lang-java=\"`layer7DdosDefenseConfig`\"\u003e`layer_7_ddos_defense_config`\u003c/span\u003e block supports:\n"},"layer7DdosDefenseConfig":{"$ref":"#/types/gcp:compute/SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig","description":"Configuration for [Google Cloud Armor Adaptive Protection Layer 7 DDoS Defense](https://cloud.google.com/armor/docs/adaptive-protection-overview?hl=en). Structure is documented below.\n"}},"type":"object"},"gcp:compute/SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig:SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig":{"properties":{"confidenceThreshold":{"type":"number","description":"Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold.\n"},"expirationSec":{"type":"integer","description":"Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests.\n"},"impactedBaselineThreshold":{"type":"number","description":"Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold.\n"},"loadThreshold":{"type":"number","description":"Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold.\n"}},"type":"object"},"gcp:compute/SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig":{"properties":{"enable":{"type":"boolean","description":"If set to true, enables CAAP for L7 DDoS detection.\n"},"ruleVisibility":{"type":"string","description":"Rule visibility. Supported values include: \"STANDARD\", \"PREMIUM\".\n"},"thresholdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig:SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig"},"description":"Configuration options for layer7 adaptive protection for various customizable thresholds.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ruleVisibility"]}}},"gcp:compute/SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig:SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig":{"properties":{"autoDeployConfidenceThreshold":{"type":"number","description":"Confidence threshold above which Adaptive Protection's auto-deploy takes actions.\n"},"autoDeployExpirationSec":{"type":"integer","description":"Duration over which Adaptive Protection's auto-deployed actions last.\n"},"autoDeployImpactedBaselineThreshold":{"type":"number","description":"Impacted baseline threshold below which Adaptive Protection's auto-deploy takes actions.\n"},"autoDeployLoadThreshold":{"type":"number","description":"Load threshold above which Adaptive Protection automatically deploy threshold based on the backend load threshold and detect a new rule during an alerted attack.\n"},"detectionAbsoluteQps":{"type":"number","description":"Detection threshold based on absolute QPS.\n"},"detectionLoadThreshold":{"type":"number","description":"Detection threshold based on the backend service's load.\n"},"detectionRelativeToBaselineQps":{"type":"number","description":"Detection threshold based on QPS relative to the average of baseline traffic.\n"},"name":{"type":"string","description":"The name of config. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the security policy.\n"},"trafficGranularityConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig:SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig"},"description":"Configuration options for enabling Adaptive Protection to work on the specified service granularity. Structure is documented below.\n"}},"type":"object","required":["name"]},"gcp:compute/SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig:SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig":{"properties":{"enableEachUniqueValue":{"type":"boolean","description":"If enabled, traffic matching each unique value for the specified type constitutes a separate traffic unit. It can only be set to true if value is empty.\n"},"type":{"type":"string","description":"The type of this configuration, a granular traffic unit can be one of the following:\n* `HTTP_HEADER_HOST`\n* `HTTP_PATH`\n"},"value":{"type":"string","description":"Requests that match this value constitute a granular traffic unit.\n"}},"type":"object","required":["type"]},"gcp:compute/SecurityPolicyAdvancedOptionsConfig:SecurityPolicyAdvancedOptionsConfig":{"properties":{"jsonCustomConfig":{"$ref":"#/types/gcp:compute/SecurityPolicyAdvancedOptionsConfigJsonCustomConfig:SecurityPolicyAdvancedOptionsConfigJsonCustomConfig","description":"Custom configuration to apply the JSON parsing. Only applicable when\n\u003cspan pulumi-lang-nodejs=\"`jsonParsing`\" pulumi-lang-dotnet=\"`JsonParsing`\" pulumi-lang-go=\"`jsonParsing`\" pulumi-lang-python=\"`json_parsing`\" pulumi-lang-yaml=\"`jsonParsing`\" pulumi-lang-java=\"`jsonParsing`\"\u003e`json_parsing`\u003c/span\u003e is set to `STANDARD`. Structure is documented below.\n"},"jsonParsing":{"type":"string","description":"Whether or not to JSON parse the payload body. Defaults to `DISABLED`.\n* `DISABLED` - Don't parse JSON payloads in POST bodies.\n* `STANDARD` - Parse JSON payloads in POST bodies.\n* `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies.\n"},"logLevel":{"type":"string","description":"Log level to use. Defaults to `NORMAL`.\n* `NORMAL` - Normal log level.\n* `VERBOSE` - Verbose log level.\n"},"requestBodyInspectionSize":{"type":"string","description":"The maximum request size chosen by the customer with Waf enabled. Values supported are \"8KB\", \"16KB, \"32KB\", \"48KB\" and \"64KB\". Values are case insensitive.\n"},"userIpRequestHeaders":{"type":"array","items":{"type":"string"},"description":"An optional list of case-insensitive request header names to use for resolving the callers client IP address.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["jsonCustomConfig","jsonParsing","logLevel","requestBodyInspectionSize"]}}},"gcp:compute/SecurityPolicyAdvancedOptionsConfigJsonCustomConfig:SecurityPolicyAdvancedOptionsConfigJsonCustomConfig":{"properties":{"contentTypes":{"type":"array","items":{"type":"string"},"description":"A list of custom Content-Type header values to apply the JSON parsing. The\nformat of the Content-Type header values is defined in\n[RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header\nvalue, only the type/subtype needs to be specified, and the parameters should be excluded.\n"}},"type":"object","required":["contentTypes"]},"gcp:compute/SecurityPolicyRecaptchaOptionsConfig:SecurityPolicyRecaptchaOptionsConfig":{"properties":{"redirectSiteKey":{"type":"string","description":"A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of `GOOGLE_RECAPTCHA` under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used.\n"}},"type":"object","required":["redirectSiteKey"]},"gcp:compute/SecurityPolicyRule:SecurityPolicyRule":{"properties":{"action":{"type":"string","description":"Action to take when \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e matches the request. Valid values:\n"},"description":{"type":"string","description":"An optional description of this rule. Max size is 64.\n"},"headerAction":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleHeaderAction:SecurityPolicyRuleHeaderAction","description":"Additional actions that are performed on headers. Structure is documented below.\n"},"match":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleMatch:SecurityPolicyRuleMatch","description":"A match condition that incoming traffic is evaluated against.\nIf it evaluates to true, the corresponding \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is enforced. Structure is documented below.\n"},"preconfiguredWafConfig":{"$ref":"#/types/gcp:compute/SecurityPolicyRulePreconfiguredWafConfig:SecurityPolicyRulePreconfiguredWafConfig","description":"Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if `evaluatePreconfiguredWaf()` is not used, this field will have no effect. Structure is documented below.\n"},"preview":{"type":"boolean","description":"When set to true, the \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e specified above is not enforced.\nStackdriver logs for requests that trigger a preview action are annotated as such.\n"},"priority":{"type":"integer","description":"An unique positive integer indicating the priority of evaluation for a rule.\nRules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order.\n"},"rateLimitOptions":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleRateLimitOptions:SecurityPolicyRuleRateLimitOptions","description":"Must be specified if the \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`rateBasedBan`\" pulumi-lang-dotnet=\"`RateBasedBan`\" pulumi-lang-go=\"`rateBasedBan`\" pulumi-lang-python=\"`rate_based_ban`\" pulumi-lang-yaml=\"`rateBasedBan`\" pulumi-lang-java=\"`rateBasedBan`\"\u003e`rate_based_ban`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`throttle`\" pulumi-lang-dotnet=\"`Throttle`\" pulumi-lang-go=\"`throttle`\" pulumi-lang-python=\"`throttle`\" pulumi-lang-yaml=\"`throttle`\" pulumi-lang-java=\"`throttle`\"\u003e`throttle`\u003c/span\u003e. Cannot be specified for other actions. Structure is documented below.\n"},"redirectOptions":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleRedirectOptions:SecurityPolicyRuleRedirectOptions","description":"Can be specified if the \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e. Cannot be specified for other actions. Structure is documented below.\n"}},"type":"object","required":["action","match","priority"],"language":{"nodejs":{"requiredOutputs":["action","match","preview","priority"]}}},"gcp:compute/SecurityPolicyRuleHeaderAction:SecurityPolicyRuleHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleHeaderActionRequestHeadersToAdd:SecurityPolicyRuleHeaderActionRequestHeadersToAdd"},"description":"The list of request headers to add or overwrite if they're already present.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleHeaderActionRequestHeadersToAdd:SecurityPolicyRuleHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to set.\n"},"headerValue":{"type":"string","description":"The value to set the named header to.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleMatch:SecurityPolicyRuleMatch":{"properties":{"config":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleMatchConfig:SecurityPolicyRuleMatchConfig","description":"The configuration options available when specifying versionedExpr.\nThis field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.\nStructure is documented below.\n"},"expr":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleMatchExpr:SecurityPolicyRuleMatchExpr","description":"User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.\nStructure is documented below.\n"},"exprOptions":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleMatchExprOptions:SecurityPolicyRuleMatchExprOptions","description":"The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').\nStructure is documented below.\n"},"versionedExpr":{"type":"string","description":"Preconfigured versioned expression. If this field is specified, config must also be specified.\nAvailable preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.\nPossible values are: `SRC_IPS_V1`.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleMatchConfig:SecurityPolicyRuleMatchConfig":{"properties":{"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of srcIpRanges allowed is 10.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleMatchExpr:SecurityPolicyRuleMatchExpr":{"properties":{"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.\n"}},"type":"object","required":["expression"]},"gcp:compute/SecurityPolicyRuleMatchExprOptions:SecurityPolicyRuleMatchExprOptions":{"properties":{"recaptchaOptions":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleMatchExprOptionsRecaptchaOptions:SecurityPolicyRuleMatchExprOptionsRecaptchaOptions","description":"reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.\nStructure is documented below.\n"}},"type":"object","required":["recaptchaOptions"]},"gcp:compute/SecurityPolicyRuleMatchExprOptionsRecaptchaOptions:SecurityPolicyRuleMatchExprOptionsRecaptchaOptions":{"properties":{"actionTokenSiteKeys":{"type":"array","items":{"type":"string"},"description":"A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.\n"},"sessionTokenSiteKeys":{"type":"array","items":{"type":"string"},"description":"A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRulePreconfiguredWafConfig:SecurityPolicyRulePreconfiguredWafConfig":{"properties":{"exclusions":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusion:SecurityPolicyRulePreconfiguredWafConfigExclusion"},"description":"An exclusion to apply during preconfigured WAF evaluation.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusion:SecurityPolicyRulePreconfiguredWafConfigExclusion":{"properties":{"requestCookies":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky"},"description":"Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation.\nStructure is documented below.\n"},"requestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader"},"description":"Request header whose value will be excluded from inspection during preconfigured WAF evaluation.\nStructure is documented below.\n"},"requestQueryParams":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam"},"description":"Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation.\nNote that the parameter can be in the query string or in the POST body.\nStructure is documented below.\n"},"requestUris":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri"},"description":"Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation.\nWhen specifying this field, the query or fragment part should be excluded.\nStructure is documented below.\n"},"targetRuleIds":{"type":"array","items":{"type":"string"},"description":"A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion.\nIf omitted, it refers to all the rule IDs under the WAF rule set.\n"},"targetRuleSet":{"type":"string","description":"Target WAF rule set to apply the preconfigured WAF exclusion.\n"}},"type":"object","required":["targetRuleSet"]},"gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator"]},"gcp:compute/SecurityPolicyRuleRateLimitOptions:SecurityPolicyRuleRateLimitOptions":{"properties":{"banDurationSec":{"type":"integer","description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e.\nIf specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.\n"},"banThreshold":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleRateLimitOptionsBanThreshold:SecurityPolicyRuleRateLimitOptionsBanThreshold","description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e.\nIf specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.\nStructure is documented below.\n"},"conformAction":{"type":"string","description":"Action to take for requests that are under the configured rate limit threshold.\nValid option is \"allow\" only.\n"},"enforceOnKey":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on. Possible values are:\n* ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKey\" is not configured.\n* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.\n* HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.\n* XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.\n* HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.\n* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.\n* SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.\n* REGION_CODE: The country/region from which the request originates.\n* TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP.\nPossible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.\n"},"enforceOnKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig:SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig"},"description":"If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.\nYou can specify up to 3 enforceOnKeyConfigs.\nIf enforceOnKeyConfigs is specified, enforceOnKey must not be specified.\nStructure is documented below.\n"},"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"exceedAction":{"type":"string","description":"Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint.\nValid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.\n"},"exceedRedirectOptions":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions:SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions","description":"Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect. This field is only supported in Global Security Policies of type CLOUD_ARMOR.\nStructure is documented below.\n"},"rateLimitThreshold":{"$ref":"#/types/gcp:compute/SecurityPolicyRuleRateLimitOptionsRateLimitThreshold:SecurityPolicyRuleRateLimitOptionsRateLimitThreshold","description":"Threshold at which to begin ratelimiting.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleRateLimitOptionsBanThreshold:SecurityPolicyRuleRateLimitOptionsBanThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig:SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig":{"properties":{"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"enforceOnKeyType":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on. Possible values are:\n* ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured.\n* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.\n* HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.\n* XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.\n* HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.\n* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.\n* SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.\n* REGION_CODE: The country/region from which the request originates.\n* TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP.\nPossible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions:SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions":{"properties":{"target":{"type":"string","description":"Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.\n"},"type":{"type":"string","description":"Type of the redirect action.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleRateLimitOptionsRateLimitThreshold:SecurityPolicyRuleRateLimitOptionsRateLimitThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object"},"gcp:compute/SecurityPolicyRuleRedirectOptions:SecurityPolicyRuleRedirectOptions":{"properties":{"target":{"type":"string","description":"Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.\n"},"type":{"type":"string","description":"Type of the redirect action.\n"}},"type":"object"},"gcp:compute/SecurityScanConfigAuthentication:SecurityScanConfigAuthentication":{"properties":{"customAccount":{"$ref":"#/types/gcp:compute/SecurityScanConfigAuthenticationCustomAccount:SecurityScanConfigAuthenticationCustomAccount","description":"Describes authentication configuration that uses a custom account.\nStructure is documented below.\n"},"googleAccount":{"$ref":"#/types/gcp:compute/SecurityScanConfigAuthenticationGoogleAccount:SecurityScanConfigAuthenticationGoogleAccount","description":"Describes authentication configuration that uses a Google account.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/SecurityScanConfigAuthenticationCustomAccount:SecurityScanConfigAuthenticationCustomAccount":{"properties":{"loginUrl":{"type":"string","description":"The login form URL of the website.\n"},"password":{"type":"string","description":"The password of the custom account. The credential is stored encrypted\nin GCP.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"The user name of the custom account.\n"}},"type":"object","required":["loginUrl","password","username"]},"gcp:compute/SecurityScanConfigAuthenticationGoogleAccount:SecurityScanConfigAuthenticationGoogleAccount":{"properties":{"password":{"type":"string","description":"The password of the Google account. The credential is stored encrypted\nin GCP.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"The user name of the Google account.\n"}},"type":"object","required":["password","username"]},"gcp:compute/SecurityScanConfigSchedule:SecurityScanConfigSchedule":{"properties":{"intervalDurationDays":{"type":"integer","description":"The duration of time between executions in days\n"},"scheduleTime":{"type":"string","description":"A timestamp indicates when the next run will be scheduled. The value is refreshed\nby the server after each run. If unspecified, it will default to current server time,\nwhich means the scan will be scheduled to start immediately.\n"}},"type":"object","required":["intervalDurationDays"]},"gcp:compute/ServiceAttachmentConnectedEndpoint:ServiceAttachmentConnectedEndpoint":{"properties":{"consumerNetwork":{"type":"string","description":"(Output)\nThe url of the consumer network.\n"},"endpoint":{"type":"string","description":"(Output)\nThe URL of the consumer forwarding rule.\n"},"natIps":{"type":"array","items":{"type":"string"},"description":"(Output)\nNOTE: This field is temporarily non-functional due to an underlying API issue.\nAny value provided here will be ignored until the API issue is resolved, expected around 2026-03.\n'The nat IPs of the connected endpoint.'\n"},"propagatedConnectionCount":{"type":"integer","description":"(Output)\nThe number of consumer Network Connectivity Center spokes that the connected Private Service Connect endpoint has propagated to.\n"},"pscConnectionId":{"type":"string","description":"(Output)\nThe PSC connection id of the connected endpoint.\n"},"status":{"type":"string","description":"(Output)\nThe status of the connection from the consumer forwarding rule to\nthis service attachment.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["consumerNetwork","endpoint","natIps","propagatedConnectionCount","pscConnectionId","status"]}}},"gcp:compute/ServiceAttachmentConsumerAcceptList:ServiceAttachmentConsumerAcceptList":{"properties":{"connectionLimit":{"type":"integer","description":"The number of consumer forwarding rules the consumer project can\ncreate.\n"},"networkUrl":{"type":"string","description":"The network that is allowed to connect to this service attachment.\nOnly one of\u003cspan pulumi-lang-nodejs=\" projectIdOrNum \" pulumi-lang-dotnet=\" ProjectIdOrNum \" pulumi-lang-go=\" projectIdOrNum \" pulumi-lang-python=\" project_id_or_num \" pulumi-lang-yaml=\" projectIdOrNum \" pulumi-lang-java=\" projectIdOrNum \"\u003e project_id_or_num \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" networkUrl \" pulumi-lang-dotnet=\" NetworkUrl \" pulumi-lang-go=\" networkUrl \" pulumi-lang-python=\" network_url \" pulumi-lang-yaml=\" networkUrl \" pulumi-lang-java=\" networkUrl \"\u003e network_url \u003c/span\u003emay be set.\n"},"projectIdOrNum":{"type":"string","description":"A project that is allowed to connect to this service attachment.\nOnly one of\u003cspan pulumi-lang-nodejs=\" projectIdOrNum \" pulumi-lang-dotnet=\" ProjectIdOrNum \" pulumi-lang-go=\" projectIdOrNum \" pulumi-lang-python=\" project_id_or_num \" pulumi-lang-yaml=\" projectIdOrNum \" pulumi-lang-java=\" projectIdOrNum \"\u003e project_id_or_num \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" networkUrl \" pulumi-lang-dotnet=\" NetworkUrl \" pulumi-lang-go=\" networkUrl \" pulumi-lang-python=\" network_url \" pulumi-lang-yaml=\" networkUrl \" pulumi-lang-java=\" networkUrl \"\u003e network_url \u003c/span\u003emay be set.\n"}},"type":"object","required":["connectionLimit"]},"gcp:compute/ServiceAttachmentPscServiceAttachmentId:ServiceAttachmentPscServiceAttachmentId":{"properties":{"high":{"type":"string","description":"(Output)\nThe high 64 bits of the PSC service attachment ID.\n"},"low":{"type":"string","description":"(Output)\nThe low 64 bits of the PSC service attachment ID.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["high","low"]}}},"gcp:compute/ServiceAttachmentTunnelingConfig:ServiceAttachmentTunnelingConfig":{"properties":{"encapsulationProfile":{"type":"string","description":"The encapsulation profile for tunneling traffic.\n"},"routingMode":{"type":"string","description":"The routing mode for tunneling traffic.\n"}},"type":"object"},"gcp:compute/SnapshotIamBindingCondition:SnapshotIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/SnapshotIamMemberCondition:SnapshotIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/SnapshotSettingsStorageLocation:SnapshotSettingsStorageLocation":{"properties":{"locations":{"type":"array","items":{"$ref":"#/types/gcp:compute/SnapshotSettingsStorageLocationLocation:SnapshotSettingsStorageLocationLocation"},"description":"When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the\nlocations listed in this field. Keys are Cloud Storage bucket locations.\nOnly one location can be specified.\nStructure is documented below.\n"},"policy":{"type":"string","description":"The chosen location policy\nPossible values are: `NEAREST_MULTI_REGION`, `LOCAL_REGION`, `SPECIFIC_LOCATIONS`.\n"}},"type":"object","required":["policy"]},"gcp:compute/SnapshotSettingsStorageLocationLocation:SnapshotSettingsStorageLocationLocation":{"properties":{"location":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"name":{"type":"string","description":"Name of the location. It should be one of the Cloud Storage buckets.\nOnly one location can be specified. (should match location)\n"}},"type":"object","required":["location","name"]},"gcp:compute/SnapshotSnapshotEncryptionKey:SnapshotSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an encryption key stored in Google Cloud KMS, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"sha256":{"type":"string","description":"(Output)\nThe RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["sha256"]}}},"gcp:compute/SnapshotSourceDiskEncryptionKey:SnapshotSourceDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n","willReplaceOnChanges":true},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n","willReplaceOnChanges":true},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rsaEncryptedKey":{"type":"string","description":"Specifies an encryption key stored in Google Cloud KMS, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:compute/StoragePoolIamBindingCondition:StoragePoolIamBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/StoragePoolIamMemberCondition:StoragePoolIamMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** Terraform considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, Terraform will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/StoragePoolResourceStatus:StoragePoolResourceStatus":{"properties":{"diskCount":{"type":"string","description":"(Output)\nNumber of disks used.\n"},"lastResizeTimestamp":{"type":"string","description":"(Output)\nTimestamp of the last successful resize in RFC3339 text format.\n"},"maxTotalProvisionedDiskCapacityGb":{"type":"string","description":"(Output)\nMaximum allowed aggregate disk size in gigabytes.\n"},"poolUsedCapacityBytes":{"type":"string","description":"(Output)\nSpace used by data stored in disks within the storage pool (in bytes).\nThis will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.\n"},"poolUsedIops":{"type":"string","description":"(Output)\nSum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity. For more information, see https://cloud.google.com/compute/docs/disks/storage-pools.\n"},"poolUsedThroughput":{"type":"string","description":"(Output)\nSum of all the disks' provisioned throughput in MB/s.\n"},"poolUserWrittenBytes":{"type":"string","description":"(Output)\nAmount of data written into the pool, before it is compacted.\n"},"totalProvisionedDiskCapacityGb":{"type":"string","description":"(Output)\nSum of all the capacity provisioned in disks in this storage pool.\nA disk's provisioned capacity is the same as its total capacity.\n"},"totalProvisionedDiskIops":{"type":"string","description":"(Output)\nSum of all the disks' provisioned IOPS.\n"},"totalProvisionedDiskThroughput":{"type":"string","description":"(Output)\nSum of all the disks' provisioned throughput in MB/s,\nminus some amount that is allowed per disk that is not counted towards pool's throughput capacity.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskCount","lastResizeTimestamp","maxTotalProvisionedDiskCapacityGb","poolUsedCapacityBytes","poolUsedIops","poolUsedThroughput","poolUserWrittenBytes","totalProvisionedDiskCapacityGb","totalProvisionedDiskIops","totalProvisionedDiskThroughput"]}}},"gcp:compute/StoragePoolStatus:StoragePoolStatus":{"properties":{"diskCount":{"type":"string","description":"(Output)\nNumber of disks used.\n"},"lastResizeTimestamp":{"type":"string","description":"(Output)\nTimestamp of the last successful resize in RFC3339 text format.\n"},"maxTotalProvisionedDiskCapacityGb":{"type":"string","description":"(Output)\nMaximum allowed aggregate disk size in gigabytes.\n"},"poolUsedCapacityBytes":{"type":"string","description":"(Output)\nSpace used by data stored in disks within the storage pool (in bytes).\nThis will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.\n"},"poolUsedIops":{"type":"string","description":"(Output)\nSum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity. For more information, see https://cloud.google.com/compute/docs/disks/storage-pools.\n"},"poolUsedThroughput":{"type":"string","description":"(Output)\nSum of all the disks' provisioned throughput in MB/s.\n"},"poolUserWrittenBytes":{"type":"string","description":"(Output)\nAmount of data written into the pool, before it is compacted.\n"},"totalProvisionedDiskCapacityGb":{"type":"string","description":"(Output)\nSum of all the capacity provisioned in disks in this storage pool.\nA disk's provisioned capacity is the same as its total capacity.\n"},"totalProvisionedDiskIops":{"type":"string","description":"(Output)\nSum of all the disks' provisioned IOPS.\n"},"totalProvisionedDiskThroughput":{"type":"string","description":"(Output)\nSum of all the disks' provisioned throughput in MB/s,\nminus some amount that is allowed per disk that is not counted towards pool's throughput capacity.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskCount","lastResizeTimestamp","maxTotalProvisionedDiskCapacityGb","poolUsedCapacityBytes","poolUsedIops","poolUsedThroughput","poolUserWrittenBytes","totalProvisionedDiskCapacityGb","totalProvisionedDiskIops","totalProvisionedDiskThroughput"]}}},"gcp:compute/SubnetworkIAMBindingCondition:SubnetworkIAMBindingCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** This provider considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/SubnetworkIAMMemberCondition:SubnetworkIAMMemberCondition":{"properties":{"description":{"type":"string","description":"An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.\n\n\u003e **Warning:** This provider considers the \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e and condition contents (\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e+\u003cspan pulumi-lang-nodejs=\"`expression`\" pulumi-lang-dotnet=\"`Expression`\" pulumi-lang-go=\"`expression`\" pulumi-lang-python=\"`expression`\" pulumi-lang-yaml=\"`expression`\" pulumi-lang-java=\"`expression`\"\u003e`expression`\u003c/span\u003e) as the\nidentifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will\nconsider it to be an entirely different resource and will treat it as such.\n","willReplaceOnChanges":true},"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax.\n","willReplaceOnChanges":true},"title":{"type":"string","description":"A title for the expression, i.e. a short string describing its purpose.\n","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:compute/SubnetworkLogConfig:SubnetworkLogConfig":{"properties":{"aggregationInterval":{"type":"string","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nToggles the aggregation interval for collecting flow logs. Increasing the\ninterval time will reduce the amount of generated flow logs for long\nlasting connections. Default is an interval of 5 seconds per connection.\nDefault value is `INTERVAL_5_SEC`.\nPossible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`.\n"},"filterExpr":{"type":"string","description":"Export filter used to define which VPC flow logs should be logged, as as CEL expression. See\nhttps://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field.\nThe default value is 'true', which evaluates to include everything.\n"},"flowSampling":{"type":"number","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nThe value of the field must be in [0, 1]. Set the sampling rate of VPC\nflow logs within the subnetwork where 1.0 means all collected logs are\nreported and 0.0 means no logs are reported. Default is 0.5 which means\nhalf of all collected logs are reported.\n"},"metadata":{"type":"string","description":"Can only be specified if VPC flow logging for this subnetwork is enabled.\nConfigures whether metadata fields should be added to the reported VPC\nflow logs.\nDefault value is `INCLUDE_ALL_METADATA`.\nPossible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`.\n"},"metadataFields":{"type":"array","items":{"type":"string"},"description":"List of metadata fields that should be added to reported logs.\nCan only be specified if VPC flow logs for this subnetwork is enabled and \"metadata\" is set to CUSTOM_METADATA.\n"}},"type":"object"},"gcp:compute/SubnetworkParams:SubnetworkParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the subnetwork. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/SubnetworkSecondaryIpRange:SubnetworkSecondaryIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"The range of IP addresses belonging to this subnetwork secondary\nrange. Provide this property when you create the subnetwork.\nRanges must be unique and non-overlapping with all primary and\nsecondary IP ranges within a network. Only IPv4 is supported.\nField is optional when \u003cspan pulumi-lang-nodejs=\"`reservedInternalRange`\" pulumi-lang-dotnet=\"`ReservedInternalRange`\" pulumi-lang-go=\"`reservedInternalRange`\" pulumi-lang-python=\"`reserved_internal_range`\" pulumi-lang-yaml=\"`reservedInternalRange`\" pulumi-lang-java=\"`reservedInternalRange`\"\u003e`reserved_internal_range`\u003c/span\u003e is defined, otherwise required.\n"},"rangeName":{"type":"string","description":"The name associated with this subnetwork secondary range, used\nwhen adding an alias IP range to a VM instance. The name must\nbe 1-63 characters long, and comply with RFC1035. The name\nmust be unique within the subnetwork.\n"},"reservedInternalRange":{"type":"string","description":"The ID of the reserved internal range. Must be prefixed with `networkconnectivity.googleapis.com`\nE.g. `networkconnectivity.googleapis.com/projects/{project}/locations/global/internalRanges/{rangeId}`\n"}},"type":"object","required":["rangeName"],"language":{"nodejs":{"requiredOutputs":["ipCidrRange","rangeName"]}}},"gcp:compute/URLMapDefaultCustomErrorResponsePolicy:URLMapDefaultCustomErrorResponsePolicy":{"properties":{"errorResponseRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapDefaultCustomErrorResponsePolicyErrorResponseRule:URLMapDefaultCustomErrorResponsePolicyErrorResponseRule"},"description":"Specifies rules for returning error responses.\nIn a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority.\nFor example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX).\nIf the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect.\nStructure is documented below.\n"},"errorService":{"type":"string","description":"The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are:\nhttps://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket\ncompute/v1/projects/project/global/backendBuckets/myBackendBucket\nglobal/backendBuckets/myBackendBucket\nIf errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService.\nIf load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured).\n"}},"type":"object"},"gcp:compute/URLMapDefaultCustomErrorResponsePolicyErrorResponseRule:URLMapDefaultCustomErrorResponsePolicyErrorResponseRule":{"properties":{"matchResponseCodes":{"type":"array","items":{"type":"string"},"description":"Valid values include:\n- A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value.\n- 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599.\n- 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499.\nValues must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy.\n"},"overrideResponseCode":{"type":"integer","description":"The HTTP status code returned with the response containing the custom error content.\nIf overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client.\n"},"path":{"type":"string","description":"The full path to a file within backendBucket. For example: /errors/defaultError.html\npath must start with a leading slash. path cannot have trailing slashes.\nIf the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client.\nThe value must be from 1 to 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteAction:URLMapDefaultRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionCorsPolicy:URLMapDefaultRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicy:URLMapDefaultRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a\npercentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted\nby the Loadbalancer for a percentage of requests.\ntimeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.\nStructure is documented below.\n"},"maxStreamDuration":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionMaxStreamDuration:URLMapDefaultRouteActionMaxStreamDuration","description":"Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the `Timeout` field where the timeout duration starts from the time the request\nhas been fully processed (known as end-of-stream), the duration in this field\nis computed from the beginning of the stream until the response has been processed,\nincluding all retries. A stream that does not complete in this duration is closed.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionRequestMirrorPolicy:URLMapDefaultRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nLoadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,\nthe host / authority header is suffixed with -shadow.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionRetryPolicy:URLMapDefaultRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionTimeout:URLMapDefaultRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been\nfully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.\nIf not specified, will use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionUrlRewrite:URLMapDefaultRouteActionUrlRewrite","description":"The spec to modify the URL of the request, prior to forwarding the request to the matched service.\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionWeightedBackendService:URLMapDefaultRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match occurs.\nThe weights determine the fraction of traffic that flows to their corresponding backend service.\nIf all traffic needs to go to a single backend service, there must be one weightedBackendService\nwith weight set to a non 0 number.\nOnce a backendService is identified and before forwarding the request to the backend service,\nadvanced routing actions like Url rewrites and header transformations are applied depending on\nadditional settings specified in this HttpRouteAction.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxStreamDuration","timeout"]}}},"gcp:compute/URLMapDefaultRouteActionCorsPolicy:URLMapDefaultRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicy:URLMapDefaultRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicyAbort:URLMapDefaultRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicyDelay:URLMapDefaultRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicyAbort:URLMapDefaultRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicyDelay:URLMapDefaultRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionMaxStreamDuration:URLMapDefaultRouteActionMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapDefaultRouteActionRequestMirrorPolicy:URLMapDefaultRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/URLMapDefaultRouteActionRetryPolicy:URLMapDefaultRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionRetryPolicyPerTryTimeout:URLMapDefaultRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\nor if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\nfor example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\nThis reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionRetryPolicyPerTryTimeout:URLMapDefaultRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionTimeout:URLMapDefaultRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionUrlRewrite:URLMapDefaultRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\nThe value must be between 1 and 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\nThe value must be between 1 and 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionWeightedBackendService:URLMapDefaultRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionWeightedBackendServiceHeaderAction:URLMapDefaultRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionWeightedBackendServiceHeaderAction:URLMapDefaultRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object"},"gcp:compute/URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object"},"gcp:compute/URLMapDefaultUrlRedirect:URLMapDefaultUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained. The default is set to false.\nThis field is required to ensure an empty block is not set. The normal default value is false.\n"}},"type":"object","required":["stripQuery"]},"gcp:compute/URLMapHeaderAction:URLMapHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapHeaderActionRequestHeadersToAdd:URLMapHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapHeaderActionResponseHeadersToAdd:URLMapHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapHeaderActionRequestHeadersToAdd:URLMapHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapHeaderActionResponseHeadersToAdd:URLMapHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapHostRule:URLMapHostRule":{"properties":{"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.\n"},"hosts":{"type":"array","items":{"type":"string"},"description":"The list of host patterns to match. They must be valid hostnames, except * will\nmatch any string of ([a-z0-9-.]*). In that case, * must be the first character\nand must be followed in the pattern by either - or ..\n"},"pathMatcher":{"type":"string","description":"The name of the PathMatcher to use to match the path portion of the URL if the\nhostRule matches the URL's host portion.\n"}},"type":"object","required":["hosts","pathMatcher"]},"gcp:compute/URLMapPathMatcher:URLMapPathMatcher":{"properties":{"defaultCustomErrorResponsePolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultCustomErrorResponsePolicy:URLMapPathMatcherDefaultCustomErrorResponsePolicy","description":"defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.\nThis policy takes effect at the PathMatcher level and applies only when no policy has been defined for the error code at lower levels like RouteRule and PathRule within this PathMatcher. If an error code does not have a policy defined in defaultCustomErrorResponsePolicy, then a policy defined for the error code in UrlMap.defaultCustomErrorResponsePolicy takes effect.\nFor example, consider a UrlMap with the following configuration:\nUrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors\nA RouteRule for /coming_soon/ is configured for the error code 404.\nIf the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in RouteRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect.\nWhen used in conjunction with pathMatcher.defaultRouteAction.retryPolicy, retries take precedence. Only once all retries are exhausted, the defaultCustomErrorResponsePolicy is applied. While attempting a retry, if load balancer is successful in reaching the service, the defaultCustomErrorResponsePolicy is ignored and the response from the service is returned to the client.\ndefaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers.\nStructure is documented below.\n"},"defaultRouteAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteAction:URLMapPathMatcherDefaultRouteAction","description":"defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs\nadvanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request\nto the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set.\nConversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices.\nOnly one of defaultRouteAction or defaultUrlRedirect must be set.\nStructure is documented below.\n"},"defaultService":{"type":"string","description":"The backend service or backend bucket to use when none of the given paths match.\n"},"defaultUrlRedirect":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultUrlRedirect:URLMapPathMatcherDefaultUrlRedirect","description":"When none of the specified hostRules match, the request is redirected to a URL specified\nby defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or\ndefaultRouteAction must not be set.\nStructure is documented below.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create\nthe resource.\n"},"headerAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherHeaderAction:URLMapPathMatcherHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. HeaderAction specified here are applied after the\nmatching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap\nStructure is documented below.\n"},"name":{"type":"string","description":"The name to which this PathMatcher is referred by the HostRule.\n"},"pathRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRule:URLMapPathMatcherPathRule"},"description":"The list of path rules. Use this list instead of routeRules when routing based\non simple path matching is all that's required. The order by which path rules\nare specified does not matter. Matches are always done on the longest-path-first\nbasis. For example: a pathRule with a path /a/b/c/* will match before /a/b/*\nirrespective of the order in which those paths appear in this list. Within a\ngiven pathMatcher, only one of pathRules or routeRules must be set.\nStructure is documented below.\n"},"routeRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRule:URLMapPathMatcherRouteRule"},"description":"The list of ordered HTTP route rules. Use this list instead of pathRules when\nadvanced route matching and routing actions are desired. The order of specifying\nrouteRules matters: the first rule that matches will cause its specified routing\naction to take effect. Within a given pathMatcher, only one of pathRules or\nrouteRules must be set. routeRules are not supported in UrlMaps intended for\nExternal load balancers.\nStructure is documented below.\n"}},"type":"object","required":["name"]},"gcp:compute/URLMapPathMatcherDefaultCustomErrorResponsePolicy:URLMapPathMatcherDefaultCustomErrorResponsePolicy":{"properties":{"errorResponseRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule:URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule"},"description":"Specifies rules for returning error responses.\nIn a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority.\nFor example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX).\nIf the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect.\nStructure is documented below.\n"},"errorService":{"type":"string","description":"The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are:\nhttps://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket\ncompute/v1/projects/project/global/backendBuckets/myBackendBucket\nglobal/backendBuckets/myBackendBucket\nIf errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService.\nIf load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured).\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule:URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule":{"properties":{"matchResponseCodes":{"type":"array","items":{"type":"string"},"description":"Valid values include:\n- A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value.\n- 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599.\n- 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499.\nValues must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy.\n"},"overrideResponseCode":{"type":"integer","description":"The HTTP status code returned with the response containing the custom error content.\nIf overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client.\n"},"path":{"type":"string","description":"The full path to a file within backendBucket. For example: /errors/defaultError.html\npath must start with a leading slash. path cannot have trailing slashes.\nIf the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client.\nThe value must be from 1 to 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteAction:URLMapPathMatcherDefaultRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionCorsPolicy:URLMapPathMatcherDefaultRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see\n[W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/)\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure.\nAs part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a\npercentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted\nby the Loadbalancer for a percentage of requests.\ntimeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.\nStructure is documented below.\n"},"maxStreamDuration":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionMaxStreamDuration:URLMapPathMatcherDefaultRouteActionMaxStreamDuration","description":"Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the `Timeout` field where the timeout duration starts from the time the request\nhas been fully processed (known as end-of-stream), the duration in this field\nis computed from the beginning of the stream until the response has been processed,\nincluding all retries. A stream that does not complete in this duration is closed.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy:URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.\nLoadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,\nthe host / authority header is suffixed with -shadow.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionRetryPolicy:URLMapPathMatcherDefaultRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionTimeout:URLMapPathMatcherDefaultRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time the request has been\nfully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries.\nIf not specified, will use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionUrlRewrite:URLMapPathMatcherDefaultRouteActionUrlRewrite","description":"The spec to modify the URL of the request, prior to forwarding the request to the matched service.\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendService:URLMapPathMatcherDefaultRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match occurs.\nThe weights determine the fraction of traffic that flows to their corresponding backend service.\nIf all traffic needs to go to a single backend service, there must be one weightedBackendService\nwith weight set to a non 0 number.\nOnce a backendService is identified and before forwarding the request to the backend service,\nadvanced routing actions like Url rewrites and header transformations are applied depending on\nadditional settings specified in this HttpRouteAction.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxStreamDuration","timeout"]}}},"gcp:compute/URLMapPathMatcherDefaultRouteActionCorsPolicy:URLMapPathMatcherDefaultRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionMaxStreamDuration:URLMapPathMatcherDefaultRouteActionMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy:URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/URLMapPathMatcherDefaultRouteActionRetryPolicy:URLMapPathMatcherDefaultRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout:URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\nor if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\nfor example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\nThis reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout:URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionTimeout:URLMapPathMatcherDefaultRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionUrlRewrite:URLMapPathMatcherDefaultRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\nThe value must be between 1 and 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\nThe value must be between 1 and 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendService:URLMapPathMatcherDefaultRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction:URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction:URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherDefaultUrlRedirect:URLMapPathMatcherDefaultUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https. If set to\nfalse, the URL scheme of the redirected request will remain the same as that of the\nrequest. This must only be set for UrlMaps used in TargetHttpProxys. Setting this\ntrue for TargetHttpsProxy is not permitted. The default is set to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. pathRedirect cannot be supplied together with\nprefixRedirect. Supply one alone or neither. If neither is supplied, the path of the\noriginal request will be used for the redirect. The value must be between 1 and 1024\ncharacters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\nprefixRedirect cannot be supplied together with pathRedirect. Supply one alone or\nneither. If neither is supplied, the path of the original request will be used for\nthe redirect. The value must be between 1 and 1024 characters.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method\nwill be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case,\nthe request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed prior\nto redirecting the request. If set to false, the query portion of the original URL is\nretained. The default is set to false.\nThis field is required to ensure an empty block is not set. The normal default value is false.\n"}},"type":"object","required":["stripQuery"]},"gcp:compute/URLMapPathMatcherHeaderAction:URLMapPathMatcherHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherHeaderActionRequestHeadersToAdd:URLMapPathMatcherHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherHeaderActionResponseHeadersToAdd:URLMapPathMatcherHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherHeaderActionRequestHeadersToAdd:URLMapPathMatcherHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherHeaderActionResponseHeadersToAdd:URLMapPathMatcherHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherPathRule:URLMapPathMatcherPathRule":{"properties":{"customErrorResponsePolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleCustomErrorResponsePolicy:URLMapPathMatcherPathRuleCustomErrorResponsePolicy","description":"customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.\nIf a policy for an error code is not configured for the PathRule, a policy for the error code configured in pathMatcher.defaultCustomErrorResponsePolicy is applied. If one is not specified in pathMatcher.defaultCustomErrorResponsePolicy, the policy configured in UrlMap.defaultCustomErrorResponsePolicy takes effect.\nFor example, consider a UrlMap with the following configuration:\nUrlMap.defaultCustomErrorResponsePolicy are configured with policies for 5xx and 4xx errors\nA PathRule for /coming_soon/ is configured for the error code 404.\nIf the request is for www.myotherdomain.com and a 404 is encountered, the policy under UrlMap.defaultCustomErrorResponsePolicy takes effect. If a 404 response is encountered for the request www.example.com/current_events/, the pathMatcher's policy takes effect. If however, the request for www.example.com/coming_soon/ encounters a 404, the policy in PathRule.customErrorResponsePolicy takes effect. If any of the requests in this example encounter a 500 error code, the policy at UrlMap.defaultCustomErrorResponsePolicy takes effect.\ncustomErrorResponsePolicy is supported only for global external Application Load Balancers.\nStructure is documented below.\n"},"paths":{"type":"array","items":{"type":"string"},"description":"The list of path patterns to match. Each must start with / and the only place a\n\\* is allowed is at the end following a /. The string fed to the path matcher\ndoes not include any text after the first ? or #, and those chars are not\nallowed here.\n"},"routeAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteAction:URLMapPathMatcherPathRuleRouteAction","description":"In response to a matching path, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any  weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.\nStructure is documented below.\n"},"service":{"type":"string","description":"The backend service or backend bucket to use if any of the given paths match.\n"},"urlRedirect":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleUrlRedirect:URLMapPathMatcherPathRuleUrlRedirect","description":"When a path pattern is matched, the request is redirected to a URL specified\nby urlRedirect. If urlRedirect is specified, service or routeAction must not\nbe set.\nStructure is documented below.\n"}},"type":"object","required":["paths"]},"gcp:compute/URLMapPathMatcherPathRuleCustomErrorResponsePolicy:URLMapPathMatcherPathRuleCustomErrorResponsePolicy":{"properties":{"errorResponseRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleCustomErrorResponsePolicyErrorResponseRule:URLMapPathMatcherPathRuleCustomErrorResponsePolicyErrorResponseRule"},"description":"Specifies rules for returning error responses.\nIn a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority.\nFor example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX).\nIf the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect.\nStructure is documented below.\n"},"errorService":{"type":"string","description":"The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are:\nhttps://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket\ncompute/v1/projects/project/global/backendBuckets/myBackendBucket\nglobal/backendBuckets/myBackendBucket\nIf errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService.\nIf load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured).\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherPathRuleCustomErrorResponsePolicyErrorResponseRule:URLMapPathMatcherPathRuleCustomErrorResponsePolicyErrorResponseRule":{"properties":{"matchResponseCodes":{"type":"array","items":{"type":"string"},"description":"Valid values include:\n- A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value.\n- 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599.\n- 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499.\nValues must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy.\n"},"overrideResponseCode":{"type":"integer","description":"The HTTP status code returned with the response containing the custom error content.\nIf overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client.\n"},"path":{"type":"string","description":"The full path to a file within backendBucket. For example: /errors/defaultError.html\npath must start with a leading slash. path cannot have trailing slashes.\nIf the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client.\nThe value must be from 1 to 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherPathRuleRouteAction:URLMapPathMatcherPathRuleRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionCorsPolicy:URLMapPathMatcherPathRuleRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicy:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and\u003cspan pulumi-lang-nodejs=\" retryPolicy \" pulumi-lang-dotnet=\" RetryPolicy \" pulumi-lang-go=\" retryPolicy \" pulumi-lang-python=\" retry_policy \" pulumi-lang-yaml=\" retryPolicy \" pulumi-lang-java=\" retryPolicy \"\u003e retry_policy \u003c/span\u003ewill be\nignored by clients that are configured with a fault_injection_policy.\nStructure is documented below.\n"},"maxStreamDuration":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionMaxStreamDuration:URLMapPathMatcherPathRuleRouteActionMaxStreamDuration","description":"Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the `Timeout` field where the timeout duration starts from the time the request\nhas been fully processed (known as end-of-stream), the duration in this field\nis computed from the beginning of the stream until the response has been processed,\nincluding all retries. A stream that does not complete in this duration is closed.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy:URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionRetryPolicy:URLMapPathMatcherPathRuleRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionTimeout:URLMapPathMatcherPathRuleRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionUrlRewrite:URLMapPathMatcherPathRuleRouteActionUrlRewrite","description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendService:URLMapPathMatcherPathRuleRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one  weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxStreamDuration"]}}},"gcp:compute/URLMapPathMatcherPathRuleRouteActionCorsPolicy:URLMapPathMatcherPathRuleRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object","required":["disabled"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicy:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["httpStatus","percentage"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["fixedDelay","percentage"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionMaxStreamDuration:URLMapPathMatcherPathRuleRouteActionMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy:URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionRetryPolicy:URLMapPathMatcherPathRuleRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout:URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\nor if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\nfor example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\nThis reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout:URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionTimeout:URLMapPathMatcherPathRuleRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionUrlRewrite:URLMapPathMatcherPathRuleRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\nThe value must be between 1 and 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\nThe value must be between 1 and 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendService:URLMapPathMatcherPathRuleRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction:URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000\n"}},"type":"object","required":["backendService","weight"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction:URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapPathMatcherPathRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherPathRuleUrlRedirect:URLMapPathMatcherPathRuleUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https. If set\nto false, the URL scheme of the redirected request will remain the same as that\nof the request. This must only be set for UrlMaps used in TargetHttpProxys.\nSetting this true for TargetHttpsProxy is not permitted. Defaults to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. Only one of pathRedirect or prefixRedirect must be\nspecified. The value must be between 1 and 1024 characters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method will be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained. Defaults to false.\n"}},"type":"object","required":["stripQuery"]},"gcp:compute/URLMapPathMatcherRouteRule:URLMapPathMatcherRouteRule":{"properties":{"customErrorResponsePolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleCustomErrorResponsePolicy:URLMapPathMatcherRouteRuleCustomErrorResponsePolicy","description":"customErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendService or BackendBucket responds with an error.\nStructure is documented below.\n"},"headerAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleHeaderAction:URLMapPathMatcherRouteRuleHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService. The headerAction specified here are applied before\nthe matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r\nouteAction.weightedBackendService.backendServiceWeightAction[].headerAction\nStructure is documented below.\n"},"httpFilterConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleHttpFilterConfig:URLMapPathMatcherRouteRuleHttpFilterConfig"},"description":"(Optional, Beta)\nOutbound route specific configuration for networkservices.HttpFilter resources enabled by Traffic Director.\nhttpFilterConfigs only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED.\nSee ForwardingRule for more details.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"httpFilterMetadatas":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleHttpFilterMetadata:URLMapPathMatcherRouteRuleHttpFilterMetadata"},"description":"(Optional, Beta)\nOutbound route specific metadata supplied to networkservices.HttpFilter resources enabled by Traffic Director.\nhttpFilterMetadata only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED.\nSee ForwardingRule for more details.\nNot supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.\nStructure is documented below.\n"},"matchRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleMatchRule:URLMapPathMatcherRouteRuleMatchRule"},"description":"The rules for determining a match.\nStructure is documented below.\n"},"priority":{"type":"integer","description":"For routeRules within a given pathMatcher, priority determines the order\nin which load balancer will interpret routeRules. RouteRules are evaluated\nin order of priority, from the lowest to highest number. The priority of\na rule decreases as its number increases (1, 2, 3, N+1). The first rule\nthat matches the request is applied.\nYou cannot configure two or more routeRules with the same priority.\nPriority for each rule must be set to a number between 0 and\n2147483647 inclusive.\nPriority numbers can have gaps, which enable you to add or remove rules\nin the future without affecting the rest of the rules. For example,\n1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to which\nyou could add rules numbered from 6 to 8, 10 to 11, and 13 to 15 in the\nfuture without any impact on existing rules.\n"},"routeAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteAction:URLMapPathMatcherRouteRuleRouteAction","description":"In response to a matching matchRule, the load balancer performs advanced routing\nactions like URL rewrites, header transformations, etc. prior to forwarding the\nrequest to the selected backend. If  routeAction specifies any\nweightedBackendServices, service must not be set. Conversely if service is set,\nrouteAction cannot contain any  weightedBackendServices. Only one of routeAction\nor urlRedirect must be set.\nStructure is documented below.\n"},"service":{"type":"string","description":"The backend service resource to which traffic is\ndirected if this rule is matched. If routeAction is additionally specified,\nadvanced routing actions like URL Rewrites, etc. take effect prior to sending\nthe request to the backend. However, if service is specified, routeAction cannot\ncontain any weightedBackendService s. Conversely, if routeAction specifies any\nweightedBackendServices, service must not be specified. Only one of urlRedirect,\nservice or routeAction.weightedBackendService must be set.\n"},"urlRedirect":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleUrlRedirect:URLMapPathMatcherRouteRuleUrlRedirect","description":"When this rule is matched, the request is redirected to a URL specified by\nurlRedirect. If urlRedirect is specified, service or routeAction must not be\nset.\nStructure is documented below.\n"}},"type":"object","required":["priority"]},"gcp:compute/URLMapPathMatcherRouteRuleCustomErrorResponsePolicy:URLMapPathMatcherRouteRuleCustomErrorResponsePolicy":{"properties":{"errorResponseRules":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleCustomErrorResponsePolicyErrorResponseRule:URLMapPathMatcherRouteRuleCustomErrorResponsePolicyErrorResponseRule"},"description":"Specifies rules for returning error responses.\nIn a given policy, if you specify rules for both a range of error codes as well as rules for specific error codes then rules with specific error codes have a higher priority.\nFor example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX).\nIf the backend service returns a 401, then the rule for 401 will be applied. However if the backend service returns a 403, the rule for 4xx takes effect.\nStructure is documented below.\n"},"errorService":{"type":"string","description":"The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are:\nhttps://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket\ncompute/v1/projects/project/global/backendBuckets/myBackendBucket\nglobal/backendBuckets/myBackendBucket\nIf errorService is not specified at lower levels like pathMatcher, pathRule and routeRule, an errorService specified at a higher level in the UrlMap will be used. If UrlMap.defaultCustomErrorResponsePolicy contains one or more errorResponseRules[], it must specify errorService.\nIf load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured).\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleCustomErrorResponsePolicyErrorResponseRule:URLMapPathMatcherRouteRuleCustomErrorResponsePolicyErrorResponseRule":{"properties":{"matchResponseCodes":{"type":"array","items":{"type":"string"},"description":"Valid values include:\n- A number between 400 and 599: For example 401 or 503, in which case the load balancer applies the policy if the error code exactly matches this value.\n- 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599.\n- 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499.\nValues must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy.\n"},"overrideResponseCode":{"type":"integer","description":"The HTTP status code returned with the response containing the custom error content.\nIf overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client.\n"},"path":{"type":"string","description":"The full path to a file within backendBucket. For example: /errors/defaultError.html\npath must start with a leading slash. path cannot have trailing slashes.\nIf the file is not available in backendBucket or the load balancer cannot reach the BackendBucket, a simple Not Found Error is returned to the client.\nThe value must be from 1 to 1024 characters.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleHeaderAction:URLMapPathMatcherRouteRuleHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd:URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd:URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd:URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd:URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherRouteRuleHttpFilterConfig:URLMapPathMatcherRouteRuleHttpFilterConfig":{"properties":{"config":{"type":"string","description":"The configuration needed to enable the networkservices.HttpFilter resource.\nThe configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl\n"},"configTypeUrl":{"type":"string","description":"The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings,\nfor example: type.googleapis.com/google.protobuf.Struct\n"},"filterName":{"type":"string","description":"Name of the networkservices.HttpFilter resource this configuration belongs to.\nThis name must be known to the xDS client. Example: envoy.wasm\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleHttpFilterMetadata:URLMapPathMatcherRouteRuleHttpFilterMetadata":{"properties":{"config":{"type":"string","description":"The configuration needed to enable the networkservices.HttpFilter resource.\nThe configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl\n"},"configTypeUrl":{"type":"string","description":"The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings,\nfor example: type.googleapis.com/google.protobuf.Struct\n"},"filterName":{"type":"string","description":"Name of the networkservices.HttpFilter resource this configuration belongs to.\nThis name must be known to the xDS client. Example: envoy.wasm\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleMatchRule:URLMapPathMatcherRouteRuleMatchRule":{"properties":{"fullPathMatch":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must exactly\nmatch the value specified in fullPathMatch after removing any query parameters\nand anchor that may be part of the original URL. FullPathMatch must be between 1\nand 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must\nbe specified.\n"},"headerMatches":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleMatchRuleHeaderMatch:URLMapPathMatcherRouteRuleMatchRuleHeaderMatch"},"description":"Specifies a list of header match criteria, all of which must match corresponding\nheaders in the request.\nStructure is documented below.\n"},"ignoreCase":{"type":"boolean","description":"Specifies that prefixMatch and fullPathMatch matches are case sensitive.\nDefaults to false.\n"},"metadataFilters":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleMatchRuleMetadataFilter:URLMapPathMatcherRouteRuleMatchRuleMetadataFilter"},"description":"Opaque filter criteria used by Loadbalancer to restrict routing configuration to\na limited set xDS compliant clients. In their xDS requests to Loadbalancer, xDS\nclients present node metadata. If a match takes place, the relevant routing\nconfiguration is made available to those proxies. For each metadataFilter in\nthis list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the\nfilterLabels must match the corresponding label provided in the metadata. If its\nfilterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must match\nwith corresponding labels in the provided metadata. metadataFilters specified\nhere can be overrides those specified in ForwardingRule that refers to this\nUrlMap. metadataFilters only applies to Loadbalancers that have their\nloadBalancingScheme set to INTERNAL_SELF_MANAGED.\nStructure is documented below.\n"},"pathTemplateMatch":{"type":"string","description":"For satisfying the matchRule condition, the path of the request\nmust match the wildcard pattern specified in pathTemplateMatch\nafter removing any query parameters and anchor that may be part\nof the original URL.\npathTemplateMatch must be between 1 and 255 characters\n(inclusive).  The pattern specified by pathTemplateMatch may\nhave at most 5 wildcard operators and at most 5 variable\ncaptures in total.\n"},"prefixMatch":{"type":"string","description":"For satisfying the matchRule condition, the request's path must begin with the\nspecified prefixMatch. prefixMatch must begin with a /. The value must be\nbetween 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or\nregexMatch must be specified.\n"},"queryParameterMatches":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatch:URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatch"},"description":"Specifies a list of query parameter match criteria, all of which must match\ncorresponding query parameters in the request.\nStructure is documented below.\n"},"regexMatch":{"type":"string","description":"For satisfying the matchRule condition, the path of the request must satisfy the\nregular expression specified in regexMatch after removing any query parameters\nand anchor supplied with the original URL. For regular expression grammar please\nsee en.cppreference.com/w/cpp/regex/ecmascript  Only one of prefixMatch,\nfullPathMatch or regexMatch must be specified.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleMatchRuleHeaderMatch:URLMapPathMatcherRouteRuleMatchRuleHeaderMatch":{"properties":{"exactMatch":{"type":"string","description":"The value should exactly match contents of exactMatch. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.\n"},"headerName":{"type":"string","description":"The name of the HTTP header to match. For matching against the HTTP request's\nauthority, use a headerMatch with the header name \":authority\". For matching a\nrequest's method, use the headerName \":method\".\n"},"invertMatch":{"type":"boolean","description":"If set to false, the headerMatch is considered a match if the match criteria\nabove are met. If set to true, the headerMatch is considered a match if the\nmatch criteria above are NOT met. Defaults to false.\n"},"prefixMatch":{"type":"string","description":"The value of the header must start with the contents of prefixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.\n"},"presentMatch":{"type":"boolean","description":"A header with the contents of headerName must exist. The match takes place\nwhether or not the request's header has a value or not. Only one of exactMatch,\nprefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.\n"},"rangeMatch":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch:URLMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch","description":"The header value must be an integer and its value must be in the range specified\nin rangeMatch. If the header does not contain an integer, number or is empty,\nthe match fails. For example for a range [-5, 0]   - -3 will match.  - 0 will\nnot match.  - 0.25 will not match.  - -3someString will not match.   Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.\nStructure is documented below.\n"},"regexMatch":{"type":"string","description":"The value of the header must match the regular expression specified in\nregexMatch. For regular expression grammar, please see:\nen.cppreference.com/w/cpp/regex/ecmascript  For matching against a port\nspecified in the HTTP request, use a headerMatch with headerName set to PORT and\na regular expression that satisfies the RFC2616 Host header's port specifier.\nOnly one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or\nrangeMatch must be set.\n"},"suffixMatch":{"type":"string","description":"The value of the header must end with the contents of suffixMatch. Only one of\nexactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch\nmust be set.\n"}},"type":"object","required":["headerName"]},"gcp:compute/URLMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch:URLMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch":{"properties":{"rangeEnd":{"type":"integer","description":"The end of the range (exclusive).\n"},"rangeStart":{"type":"integer","description":"The start of the range (inclusive).\n"}},"type":"object","required":["rangeEnd","rangeStart"]},"gcp:compute/URLMapPathMatcherRouteRuleMatchRuleMetadataFilter:URLMapPathMatcherRouteRuleMatchRuleMetadataFilter":{"properties":{"filterLabels":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel:URLMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel"},"description":"The list of label value pairs that must match labels in the provided metadata\nbased on filterMatchCriteria  This list must not be empty and can have at the\nmost 64 entries.\nStructure is documented below.\n"},"filterMatchCriteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of filterLabels\ncontribute towards the overall metadataFilter match. Supported values are:\n- MATCH_ANY: At least one of the filterLabels must have a matching label in the\nprovided metadata.\n- MATCH_ALL: All filterLabels must have matching labels in\nthe provided metadata.\nPossible values are: `MATCH_ALL`, `MATCH_ANY`.\n"}},"type":"object","required":["filterLabels","filterMatchCriteria"]},"gcp:compute/URLMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel:URLMapPathMatcherRouteRuleMatchRuleMetadataFilterFilterLabel":{"properties":{"name":{"type":"string","description":"Name of metadata label. The name can have a maximum length of 1024 characters\nand must be at least 1 character long.\n"},"value":{"type":"string","description":"The value of the label must match the specified value. value can have a maximum\nlength of 1024 characters.\n"}},"type":"object","required":["name","value"]},"gcp:compute/URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatch:URLMapPathMatcherRouteRuleMatchRuleQueryParameterMatch":{"properties":{"exactMatch":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter exactly matches\nthe contents of exactMatch. Only one of presentMatch, exactMatch and regexMatch\nmust be set.\n"},"name":{"type":"string","description":"The name of the query parameter to match. The query parameter must exist in the\nrequest, in the absence of which the request match fails.\n"},"presentMatch":{"type":"boolean","description":"Specifies that the queryParameterMatch matches if the request contains the query\nparameter, irrespective of whether the parameter has a value or not. Only one of\npresentMatch, exactMatch and regexMatch must be set.\n"},"regexMatch":{"type":"string","description":"The queryParameterMatch matches if the value of the parameter matches the\nregular expression specified by regexMatch. For the regular expression grammar,\nplease see en.cppreference.com/w/cpp/regex/ecmascript  Only one of presentMatch,\nexactMatch and regexMatch must be set.\n"}},"type":"object","required":["name"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteAction:URLMapPathMatcherRouteRuleRouteAction":{"properties":{"corsPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionCorsPolicy:URLMapPathMatcherRouteRuleRouteActionCorsPolicy","description":"The specification for allowing client side cross-origin requests. Please see W3C\nRecommendation for Cross Origin Resource Sharing\nStructure is documented below.\n"},"faultInjectionPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy","description":"The specification for fault injection introduced into traffic to test the\nresiliency of clients to backend service failure. As part of fault injection,\nwhen clients send requests to a backend service, delays can be introduced by\nLoadbalancer on a percentage of requests before sending those request to the\nbackend service. Similarly requests from clients can be aborted by the\nLoadbalancer for a percentage of requests. timeout and\u003cspan pulumi-lang-nodejs=\" retryPolicy \" pulumi-lang-dotnet=\" RetryPolicy \" pulumi-lang-go=\" retryPolicy \" pulumi-lang-python=\" retry_policy \" pulumi-lang-yaml=\" retryPolicy \" pulumi-lang-java=\" retryPolicy \"\u003e retry_policy \u003c/span\u003ewill be\nignored by clients that are configured with a fault_injection_policy.\nStructure is documented below.\n"},"maxStreamDuration":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration:URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration","description":"Specifies the maximum duration (timeout) for streams on the selected route.\nUnlike the `Timeout` field where the timeout duration starts from the time the request\nhas been fully processed (known as end-of-stream), the duration in this field\nis computed from the beginning of the stream until the response has been processed,\nincluding all retries. A stream that does not complete in this duration is closed.\nStructure is documented below.\n"},"requestMirrorPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy:URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy","description":"Specifies the policy on how requests intended for the route's backends are\nshadowed to a separate mirrored backend service. Loadbalancer does not wait for\nresponses from the shadow service. Prior to sending traffic to the shadow\nservice, the host / authority header is suffixed with -shadow.\nStructure is documented below.\n"},"retryPolicy":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionRetryPolicy:URLMapPathMatcherRouteRuleRouteActionRetryPolicy","description":"Specifies the retry policy associated with this route.\nStructure is documented below.\n"},"timeout":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionTimeout:URLMapPathMatcherRouteRuleRouteActionTimeout","description":"Specifies the timeout for the selected route. Timeout is computed from the time\nthe request is has been fully processed (i.e. end-of-stream) up until the\nresponse has been completely processed. Timeout includes all retries. If not\nspecified, the default value is 15 seconds.\nStructure is documented below.\n"},"urlRewrite":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionUrlRewrite:URLMapPathMatcherRouteRuleRouteActionUrlRewrite","description":"The spec to modify the URL of the request, prior to forwarding the request to\nthe matched service\nStructure is documented below.\n"},"weightedBackendServices":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendService:URLMapPathMatcherRouteRuleRouteActionWeightedBackendService"},"description":"A list of weighted backend services to send traffic to when a route match\noccurs. The weights determine the fraction of traffic that flows to their\ncorresponding backend service. If all traffic needs to go to a single backend\nservice, there must be one  weightedBackendService with weight set to a non 0\nnumber. Once a backendService is identified and before forwarding the request to\nthe backend service, advanced routing actions like Url rewrites and header\ntransformations are applied depending on additional settings specified in this\nHttpRouteAction.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxStreamDuration"]}}},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionCorsPolicy:URLMapPathMatcherRouteRuleRouteActionCorsPolicy":{"properties":{"allowCredentials":{"type":"boolean","description":"In response to a preflight request, setting this to true indicates that the actual request can include user credentials.\nThis translates to the Access-Control-Allow-Credentials header.\n"},"allowHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Headers header.\n"},"allowMethods":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Allow-Methods header.\n"},"allowOriginRegexes":{"type":"array","items":{"type":"string"},"description":"Specifies the regular expression patterns that match allowed origins. For regular expression grammar\nplease see en.cppreference.com/w/cpp/regex/ecmascript\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"allowOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies the list of origins that will be allowed to do CORS requests.\nAn origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes.\n"},"disabled":{"type":"boolean","description":"If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies the content for the Access-Control-Expose-Headers header.\n"},"maxAge":{"type":"integer","description":"Specifies how long results of a preflight request can be cached in seconds.\nThis translates to the Access-Control-Max-Age header.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy":{"properties":{"abort":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort","description":"The specification for how client requests are aborted as part of fault injection.\nStructure is documented below.\n"},"delay":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay","description":"The specification for how client requests are delayed as part of fault injection, before being sent to a backend service.\nStructure is documented below.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort":{"properties":{"httpStatus":{"type":"integer","description":"The HTTP status code used to abort the request.\nThe value must be between 200 and 599 inclusive.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay":{"properties":{"fixedDelay":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay","description":"Specifies the value of the fixed delay interval.\nStructure is documented below.\n"},"percentage":{"type":"number","description":"The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay:URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration:URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy:URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the BackendService resource being mirrored to.\n"},"mirrorPercent":{"type":"number","description":"(Optional, Beta)\nThe percentage of requests to be mirrored to backendService.\nThe value must be between 0.0 and 100.0 inclusive.\n"}},"type":"object","required":["backendService"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionRetryPolicy:URLMapPathMatcherRouteRuleRouteActionRetryPolicy":{"properties":{"numRetries":{"type":"integer","description":"Specifies the allowed number retries. This number must be \u003e 0. If not specified, defaults to 1.\n"},"perTryTimeout":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout:URLMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout","description":"Specifies a non-zero timeout per retry attempt.\nIf not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set,\nwill use the largest timeout among all backend services associated with the route.\nStructure is documented below.\n"},"retryConditions":{"type":"array","items":{"type":"string"},"description":"Specfies one or more conditions when this retry rule applies. Valid values are:\n* 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code,\nor if the backend service does not respond at all, example: disconnects, reset, read timeout,\n* connection failure, and refused streams.\n* gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504.\n* connect-failure: Loadbalancer will retry on failures connecting to backend services,\nfor example due to connection timeouts.\n* retriable-4xx: Loadbalancer will retry for retriable 4xx response codes.\nCurrently the only retriable error supported is 409.\n* refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code.\nThis reset type indicates that it is safe to retry.\n* cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled\n* deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded\n* resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted\n* unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable\n"}},"type":"object","required":["numRetries"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout:URLMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are\nrepresented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionTimeout:URLMapPathMatcherRouteRuleRouteActionTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.\nNote: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years\n"}},"type":"object","required":["seconds"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionUrlRewrite:URLMapPathMatcherRouteRuleRouteActionUrlRewrite":{"properties":{"hostRewrite":{"type":"string","description":"Prior to forwarding the request to the selected service, the request's host header is replaced\nwith contents of hostRewrite.\nThe value must be between 1 and 255 characters.\n"},"pathPrefixRewrite":{"type":"string","description":"Prior to forwarding the request to the selected backend service, the matching portion of the\nrequest's path is replaced by pathPrefixRewrite.\nThe value must be between 1 and 1024 characters.\n"},"pathTemplateRewrite":{"type":"string","description":"Prior to forwarding the request to the selected origin, if the\nrequest matched a pathTemplateMatch, the matching portion of the\nrequest's path is replaced re-written using the pattern specified\nby pathTemplateRewrite.\npathTemplateRewrite must be between 1 and 255 characters\n(inclusive), must start with a '/', and must only use variables\ncaptured by the route's pathTemplate matchers.\npathTemplateRewrite may only be used when all of a route's\nMatchRules specify pathTemplate.\nOnly one of pathPrefixRewrite and pathTemplateRewrite may be\nspecified.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendService:URLMapPathMatcherRouteRuleRouteActionWeightedBackendService":{"properties":{"backendService":{"type":"string","description":"The full or partial URL to the default BackendService resource. Before forwarding the\nrequest to backendService, the loadbalancer applies any relevant headerActions\nspecified as part of this backendServiceWeight.\n"},"headerAction":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction:URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction","description":"Specifies changes to request and response headers that need to take effect for\nthe selected backendService.\nheaderAction specified here take effect before headerAction in the enclosing\nHttpRouteRule, PathMatcher and UrlMap.\nStructure is documented below.\n"},"weight":{"type":"integer","description":"Specifies the fraction of traffic sent to backendService, computed as\nweight / (sum of all weightedBackendService weights in routeAction) .\nThe selection of a backend service is determined only for new traffic. Once a user's request\nhas been directed to a backendService, subsequent requests will be sent to the same backendService\nas determined by the BackendService's session affinity policy.\nThe value must be between 0 and 1000\n"}},"type":"object","required":["backendService","weight"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction:URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd"},"description":"Headers to add to a matching request prior to forwarding the request to the backendService.\nStructure is documented below.\n"},"requestHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the request prior to\nforwarding the request to the backendService.\n"},"responseHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd"},"description":"Headers to add the response prior to sending the response back to the client.\nStructure is documented below.\n"},"responseHeadersToRemoves":{"type":"array","items":{"type":"string"},"description":"A list of header names for headers that need to be removed from the response prior to sending the\nresponse back to the client.\n"}},"type":"object"},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd:URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd:URLMapPathMatcherRouteRuleRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to add.\n"},"headerValue":{"type":"string","description":"The value of the header to add.\n"},"replace":{"type":"boolean","description":"If false, headerValue is appended to any values that already exist for the header.\nIf true, headerValue is set for the header, discarding any values that were set for that header.\n"}},"type":"object","required":["headerName","headerValue","replace"]},"gcp:compute/URLMapPathMatcherRouteRuleUrlRedirect:URLMapPathMatcherRouteRuleUrlRedirect":{"properties":{"hostRedirect":{"type":"string","description":"The host that will be used in the redirect response instead of the one that was\nsupplied in the request. The value must be between 1 and 255 characters.\n"},"httpsRedirect":{"type":"boolean","description":"If set to true, the URL scheme in the redirected request is set to https. If set\nto false, the URL scheme of the redirected request will remain the same as that\nof the request. This must only be set for UrlMaps used in TargetHttpProxys.\nSetting this true for TargetHttpsProxy is not permitted. Defaults to false.\n"},"pathRedirect":{"type":"string","description":"The path that will be used in the redirect response instead of the one that was\nsupplied in the request. Only one of pathRedirect or prefixRedirect must be\nspecified. The value must be between 1 and 1024 characters.\n"},"prefixRedirect":{"type":"string","description":"The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,\nretaining the remaining portion of the URL before redirecting the request.\n"},"redirectResponseCode":{"type":"string","description":"The HTTP Status code to use for this RedirectAction. Supported values are:\n* MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301.\n* FOUND, which corresponds to 302.\n* SEE_OTHER which corresponds to 303.\n* TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method will be retained.\n* PERMANENT_REDIRECT, which corresponds to 308. In this case, the request method will be retained.\n"},"stripQuery":{"type":"boolean","description":"If set to true, any accompanying query portion of the original URL is removed\nprior to redirecting the request. If set to false, the query portion of the\noriginal URL is retained. Defaults to false.\n"}},"type":"object"},"gcp:compute/URLMapTest:URLMapTest":{"properties":{"description":{"type":"string","description":"Description of this test case.\n"},"expectedOutputUrl":{"type":"string","description":"The expected output URL evaluated by the load balancer containing the scheme, host, path and query parameters.\nFor rules that forward requests to backends, the test passes only when expectedOutputUrl matches the request forwarded by the load balancer to backends. For rules with urlRewrite, the test verifies that the forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite action. When service is specified, expectedOutputUrl`s scheme is ignored.\nFor rules with urlRedirect, the test passes only if expectedOutputUrl matches the URL in the load balancer's redirect response. If urlRedirect specifies httpsRedirect, the test passes only if the scheme in expectedOutputUrl is also set to HTTPS. If urlRedirect specifies stripQuery, the test passes only if expectedOutputUrl does not contain any query parameters.\nexpectedOutputUrl is optional when service is specified.\n"},"expectedRedirectResponseCode":{"type":"integer","description":"For rules with urlRedirect, the test passes only if expectedRedirectResponseCode matches the HTTP status code in load balancer's redirect response.\nexpectedRedirectResponseCode cannot be set when service is set.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:compute/URLMapTestHeader:URLMapTestHeader"},"description":"HTTP headers for this request.\nStructure is documented below.\n"},"host":{"type":"string","description":"Host portion of the URL.\n"},"path":{"type":"string","description":"Path portion of the URL.\n"},"service":{"type":"string","description":"The backend service or backend bucket link that should be matched by this test.\n"}},"type":"object","required":["host","path"]},"gcp:compute/URLMapTestHeader:URLMapTestHeader":{"properties":{"name":{"type":"string","description":"Header name.\n"},"value":{"type":"string","description":"Header value.\n"}},"type":"object","required":["name","value"]},"gcp:compute/VPNGatewayParams:VPNGatewayParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the Vpn Gateway. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/VPNTunnelCipherSuite:VPNTunnelCipherSuite":{"properties":{"phase1":{"$ref":"#/types/gcp:compute/VPNTunnelCipherSuitePhase1:VPNTunnelCipherSuitePhase1","description":"Cipher configuration for phase 1 of the IKE protocol.\nStructure is documented below.\n","willReplaceOnChanges":true},"phase2":{"$ref":"#/types/gcp:compute/VPNTunnelCipherSuitePhase2:VPNTunnelCipherSuitePhase2","description":"Cipher configuration for phase 2 of the IKE protocol.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedCipherSuitePhase1\"\" pulumi-lang-dotnet=\"\"NestedCipherSuitePhase1\"\" pulumi-lang-go=\"\"nestedCipherSuitePhase1\"\" pulumi-lang-python=\"\"nested_cipher_suite_phase1\"\" pulumi-lang-yaml=\"\"nestedCipherSuitePhase1\"\" pulumi-lang-java=\"\"nestedCipherSuitePhase1\"\"\u003e\"nested_cipher_suite_phase1\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`phase1`\" pulumi-lang-dotnet=\"`Phase1`\" pulumi-lang-go=\"`phase1`\" pulumi-lang-python=\"`phase1`\" pulumi-lang-yaml=\"`phase1`\" pulumi-lang-java=\"`phase1`\"\u003e`phase1`\u003c/span\u003e block supports:\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/VPNTunnelCipherSuitePhase1:VPNTunnelCipherSuitePhase1":{"properties":{"dhs":{"type":"array","items":{"type":"string"},"description":"Diffie-Hellman groups.\n","willReplaceOnChanges":true},"encryptions":{"type":"array","items":{"type":"string"},"description":"Encryption algorithms.\n","willReplaceOnChanges":true},"integrities":{"type":"array","items":{"type":"string"},"description":"Integrity algorithms.\n","willReplaceOnChanges":true},"prves":{"type":"array","items":{"type":"string"},"description":"Pseudo-random functions.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/VPNTunnelCipherSuitePhase2:VPNTunnelCipherSuitePhase2":{"properties":{"encryptions":{"type":"array","items":{"type":"string"},"description":"Encryption algorithms.\n","willReplaceOnChanges":true},"integrities":{"type":"array","items":{"type":"string"},"description":"Integrity algorithms.\n","willReplaceOnChanges":true},"pfs":{"type":"array","items":{"type":"string"},"description":"Perfect forward secrecy groups.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/VPNTunnelParams:VPNTunnelParams":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the Vpn Tunnel. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:compute/WireGroupEndpoint:WireGroupEndpoint":{"properties":{"endpoint":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"interconnects":{"type":"array","items":{"$ref":"#/types/gcp:compute/WireGroupEndpointInterconnect:WireGroupEndpointInterconnect"},"description":"Structure is documented below.\n"}},"type":"object","required":["endpoint"]},"gcp:compute/WireGroupEndpointInterconnect:WireGroupEndpointInterconnect":{"properties":{"interconnect":{"type":"string","description":"(Optional)\n"},"interconnectName":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"vlanTags":{"type":"array","items":{"type":"integer"},"description":"VLAN tags for the interconnect.\n"}},"type":"object","required":["interconnectName"]},"gcp:compute/WireGroupTopology:WireGroupTopology":{"properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/gcp:compute/WireGroupTopologyEndpoint:WireGroupTopologyEndpoint"},"description":"Endpoints grouped by location, each mapping to interconnect configurations.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpoints"]}}},"gcp:compute/WireGroupTopologyEndpoint:WireGroupTopologyEndpoint":{"properties":{"city":{"type":"string","description":"(Output)\n"},"label":{"type":"string","description":"(Output)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["city","label"]}}},"gcp:compute/WireGroupWire:WireGroupWire":{"properties":{"adminEnabled":{"type":"boolean","description":"Indicates whether the wire group is administratively enabled.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/gcp:compute/WireGroupWireEndpoint:WireGroupWireEndpoint"},"description":"Endpoints grouped by location, each mapping to interconnect configurations.\nStructure is documented below.\n"},"label":{"type":"string","description":"(Output)\n"},"wireProperties":{"type":"array","items":{"$ref":"#/types/gcp:compute/WireGroupWireWireProperty:WireGroupWireWireProperty"},"description":"Default properties for wires within the group.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["adminEnabled","endpoints","label","wireProperties"]}}},"gcp:compute/WireGroupWireEndpoint:WireGroupWireEndpoint":{"properties":{"interconnect":{"type":"string","description":"(Output)\n"},"vlanTag":{"type":"integer","description":"(Output)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["interconnect","vlanTag"]}}},"gcp:compute/WireGroupWireGroupProperties:WireGroupWireGroupProperties":{"properties":{"type":{"type":"string","description":"Type of wire group (enum).\nWIRE: a single pseudowire over two Interconnect connections   with no redundancy.\nREDUNDANT: two pseudowires over four Interconnect connections, with two connections in one metro and two connections in another metro.\nBOX_AND_CROSS: four pseudowires over four Interconnect connections, with two connections in one metro and two connections in another metro.\n"}},"type":"object"},"gcp:compute/WireGroupWireProperties:WireGroupWireProperties":{"properties":{"bandwidthAllocation":{"type":"string","description":"The configuration of a wire's bandwidth allocation.\nALLOCATE_PER_WIRE: configures a separate unmetered bandwidth allocation (and associated charges) for each wire in the group.\nSHARED_WITH_WIRE_GROUP: this is the default behavior, which configures one unmetered bandwidth allocation for the wire group. The unmetered bandwidth is divided equally across each wire in the group, but dynamic\nthrottling reallocates unused unmetered bandwidth from unused or underused wires to other wires in the group.\n"},"bandwidthUnmetered":{"type":"integer","description":"The unmetered bandwidth setting.\n"},"faultResponse":{"type":"string","description":"Response when a fault is detected in a pseudowire:\nNONE: default.\nDISABLE_PORT: set the port line protocol down when inline probes detect a fault. This setting is only permitted on port mode pseudowires.\n"}},"type":"object","required":["bandwidthAllocation"]},"gcp:compute/WireGroupWireWireProperty:WireGroupWireWireProperty":{"properties":{"bandwidthUnmetered":{"type":"integer","description":"The unmetered bandwidth setting.\n"},"faultResponse":{"type":"string","description":"Response when a fault is detected in a pseudowire:\nNONE: default.\nDISABLE_PORT: set the port line protocol down when inline probes detect a fault. This setting is only permitted on port mode pseudowires.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bandwidthUnmetered","faultResponse"]}}},"gcp:compute/getAddressesAddress:getAddressesAddress":{"properties":{"address":{"type":"string","description":"The IP address (for example `1.2.3.4`).\n"},"addressType":{"type":"string","description":"The IP address type, can be `EXTERNAL` or `INTERNAL`.\n"},"description":{"type":"string","description":"The IP address description.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A map containing IP labels.\n"},"name":{"type":"string","description":"The IP address name.\n"},"prefixLength":{"type":"integer","description":"The prefix length of the IP range. If not present, it means the address field is a single IP address.\n"},"region":{"type":"string","description":"Region that should be considered to search addresses.\nAll regions are considered if missing.\n"},"selfLink":{"type":"string","description":"The URI of the created resource.\n"},"status":{"type":"string","description":"Indicates if the address is used. Possible values are: RESERVED or IN_USE.\n"}},"type":"object","required":["address","addressType","description","labels","name","prefixLength","region","selfLink","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendBucketCdnPolicy:getBackendBucketCdnPolicy":{"properties":{"bypassCacheOnRequestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendBucketCdnPolicyBypassCacheOnRequestHeader:getBackendBucketCdnPolicyBypassCacheOnRequestHeader"},"description":"Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified. The cache is bypassed for all cdnPolicy.cacheMode settings.\n"},"cacheKeyPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendBucketCdnPolicyCacheKeyPolicy:getBackendBucketCdnPolicyCacheKeyPolicy"},"description":"The CacheKeyPolicy for this CdnPolicy.\n"},"cacheMode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]\n"},"clientTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin. When the\n'cache_mode' is set to \"USE_ORIGIN_HEADERS\", you must omit this field.\n"},"defaultTtl":{"type":"integer","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age). When the 'cache_mode'\nis set to \"USE_ORIGIN_HEADERS\", you must omit this field.\n"},"maxTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin. When the\n'cache_mode' is set to \"USE_ORIGIN_HEADERS\", you must omit this field.\n"},"negativeCaching":{"type":"boolean","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.\n"},"negativeCachingPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendBucketCdnPolicyNegativeCachingPolicy:getBackendBucketCdnPolicyNegativeCachingPolicy"},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.\n"},"requestCoalescing":{"type":"boolean","description":"If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests to the origin.\n"},"serveWhileStale":{"type":"integer","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.\n"},"signedUrlCacheMaxAgeSec":{"type":"integer","description":"Maximum number of seconds the response to a signed URL request will\nbe considered fresh. After this time period,\nthe response will be revalidated before being served.\nWhen serving responses to signed URL requests,\nCloud CDN will internally behave as though\nall responses from this backend had a \"Cache-Control: public,\nmax-age=[TTL]\" header, regardless of any existing Cache-Control\nheader. The actual headers served in responses will not be altered.\n"}},"type":"object","required":["bypassCacheOnRequestHeaders","cacheKeyPolicies","cacheMode","clientTtl","defaultTtl","maxTtl","negativeCaching","negativeCachingPolicies","requestCoalescing","serveWhileStale","signedUrlCacheMaxAgeSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendBucketCdnPolicyBypassCacheOnRequestHeader:getBackendBucketCdnPolicyBypassCacheOnRequestHeader":{"properties":{"headerName":{"type":"string","description":"The header field name to match on when bypassing cache. Values are case-insensitive.\n"}},"type":"object","required":["headerName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendBucketCdnPolicyCacheKeyPolicy:getBackendBucketCdnPolicyCacheKeyPolicy":{"properties":{"includeHttpHeaders":{"type":"array","items":{"type":"string"},"description":"Allows HTTP request headers (by name) to be used in the\ncache key.\n"},"queryStringWhitelists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to include in cache keys.\nDefault parameters are always included. '\u0026' and '=' will\nbe percent encoded and not treated as delimiters.\n"}},"type":"object","required":["includeHttpHeaders","queryStringWhitelists"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendBucketCdnPolicyNegativeCachingPolicy:getBackendBucketCdnPolicyNegativeCachingPolicy":{"properties":{"code":{"type":"integer","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.\n"},"ttl":{"type":"integer","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.\n"}},"type":"object","required":["code","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendBucketParam:getBackendBucketParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the backend bucket. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceBackend:getBackendServiceBackend":{"properties":{"balancingMode":{"type":"string","description":"Specifies the balancing mode for this backend.\n\nFor global HTTP(S) or TCP/SSL load balancing, the default is\nUTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),\nCUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).\n\nSee the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)\nfor an explanation of load balancing modes. Default value: \"UTILIZATION\" Possible values: [\"UTILIZATION\", \"RATE\", \"CONNECTION\", \"CUSTOM_METRICS\", \"IN_FLIGHT\"]\n"},"capacityScaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n\nDefault value is 1, which means the group will serve up to 100%\nof its configured capacity (depending on balancingMode). A\nsetting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].\n"},"customMetrics":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceBackendCustomMetric:getBackendServiceBackendCustomMetric"},"description":"The set of custom metrics that are used for \u003ccode\u003eCUSTOM_METRICS\u003c/code\u003e BalancingMode.\n"},"description":{"type":"string","description":"Textual description for the Backend Service.\n"},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\n\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\n\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\n\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.\n"},"maxConnections":{"type":"integer","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\n\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.\n"},"maxConnectionsPerEndpoint":{"type":"integer","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\n\nFor CONNECTION mode, either\nmaxConnections or maxConnectionsPerEndpoint must be set.\n"},"maxConnectionsPerInstance":{"type":"integer","description":"The max number of simultaneous connections that a single\nbackend instance can handle. This is used to calculate the\ncapacity of the group. Can be used in either CONNECTION or\nUTILIZATION balancing modes.\n\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.\n"},"maxInFlightRequests":{"type":"integer","description":"Defines a maximum number of in-flight requests for the whole NEG\nor instance group. Not available if backend's balancingMode is RATE\nor CONNECTION.\n"},"maxInFlightRequestsPerEndpoint":{"type":"integer","description":"Defines a maximum number of in-flight requests for a single endpoint.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxInFlightRequestsPerInstance":{"type":"integer","description":"Defines a maximum number of in-flight requests for a single VM.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxRate":{"type":"integer","description":"The max requests per second (RPS) of the group.\n\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. For RATE mode, either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.\n"},"maxRatePerEndpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set.\n"},"maxRatePerInstance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set.\n"},"maxUtilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].\n"},"preference":{"type":"string","description":"This field indicates whether this backend should be fully utilized before sending traffic to backends\nwith default preference. This field cannot be set when loadBalancingScheme is set to 'EXTERNAL'. The possible values are:\n  - PREFERRED: Backends with this preference level will be filled up to their capacity limits first,\n    based on RTT.\n  - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and\n    traffic would be assigned based on the load balancing algorithm you use. This is the default Possible values: [\"PREFERRED\", \"DEFAULT\"]\n"},"trafficDuration":{"type":"string","description":"This field specifies how long a connection should be kept alive for:\n- LONG: Most of the requests are expected to take more than multiple\n  seconds to finish.\n- SHORT: Most requests are expected to finish with a sub-second latency. Possible values: [\"LONG\", \"SHORT\"]\n"}},"type":"object","required":["balancingMode","capacityScaler","customMetrics","description","group","maxConnections","maxConnectionsPerEndpoint","maxConnectionsPerInstance","maxInFlightRequests","maxInFlightRequestsPerEndpoint","maxInFlightRequestsPerInstance","maxRate","maxRatePerEndpoint","maxRatePerInstance","maxUtilization","preference","trafficDuration"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceBackendCustomMetric:getBackendServiceBackendCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is collected and reported to Cloud\nMonitoring, but is not used for load balancing.\n"},"maxUtilization":{"type":"number","description":"Optional parameter to define a target utilization for the Custom Metrics\nbalancing mode. The valid range is \u003ccode\u003e[0.0, 1.0]\u003c/code\u003e.\n"},"name":{"type":"string","description":"The name of the Backend Service.\n\n- - -\n"}},"type":"object","required":["dryRun","maxUtilization","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCdnPolicy:getBackendServiceCdnPolicy":{"properties":{"bypassCacheOnRequestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceCdnPolicyBypassCacheOnRequestHeader:getBackendServiceCdnPolicyBypassCacheOnRequestHeader"},"description":"Bypass the cache when the specified request headers are matched - e.g. Pragma or Authorization headers. Up to 5 headers can be specified.\nThe cache is bypassed for all cdnPolicy.cacheMode settings.\n"},"cacheKeyPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceCdnPolicyCacheKeyPolicy:getBackendServiceCdnPolicyCacheKeyPolicy"},"description":"The CacheKeyPolicy for this CdnPolicy.\n"},"cacheMode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]\n"},"clientTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"defaultTtl":{"type":"integer","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).\n"},"maxTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"negativeCaching":{"type":"boolean","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.\n"},"negativeCachingPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceCdnPolicyNegativeCachingPolicy:getBackendServiceCdnPolicyNegativeCachingPolicy"},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.\n"},"requestCoalescing":{"type":"boolean","description":"If true then Cloud CDN will combine multiple concurrent cache fill requests into a small number of requests\nto the origin.\n"},"serveWhileStale":{"type":"integer","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.\n"},"signedUrlCacheMaxAgeSec":{"type":"integer","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\n\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.\n"}},"type":"object","required":["bypassCacheOnRequestHeaders","cacheKeyPolicies","cacheMode","clientTtl","defaultTtl","maxTtl","negativeCaching","negativeCachingPolicies","requestCoalescing","serveWhileStale","signedUrlCacheMaxAgeSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCdnPolicyBypassCacheOnRequestHeader:getBackendServiceCdnPolicyBypassCacheOnRequestHeader":{"properties":{"headerName":{"type":"string","description":"The header field name to match on when bypassing cache. Values are case-insensitive.\n"}},"type":"object","required":["headerName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCdnPolicyCacheKeyPolicy:getBackendServiceCdnPolicyCacheKeyPolicy":{"properties":{"includeHost":{"type":"boolean","description":"If true requests to different hosts will be cached separately.\n"},"includeHttpHeaders":{"type":"array","items":{"type":"string"},"description":"Allows HTTP request headers (by name) to be used in the\ncache key.\n"},"includeNamedCookies":{"type":"array","items":{"type":"string"},"description":"Names of cookies to include in cache keys.\n"},"includeProtocol":{"type":"boolean","description":"If true, http and https requests will be cached separately.\n"},"includeQueryString":{"type":"boolean","description":"If true, include query string parameters in the cache key\naccording to\u003cspan pulumi-lang-nodejs=\" queryStringWhitelist \" pulumi-lang-dotnet=\" QueryStringWhitelist \" pulumi-lang-go=\" queryStringWhitelist \" pulumi-lang-python=\" query_string_whitelist \" pulumi-lang-yaml=\" queryStringWhitelist \" pulumi-lang-java=\" queryStringWhitelist \"\u003e query_string_whitelist \u003c/span\u003eand\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\n\nIf false, the query string will be excluded from the cache\nkey entirely.\n"},"queryStringBlacklists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to exclude in cache keys.\n\nAll other parameters will be included. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"},"queryStringWhitelists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to include in cache keys.\n\nAll other parameters will be excluded. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"}},"type":"object","required":["includeHost","includeHttpHeaders","includeNamedCookies","includeProtocol","includeQueryString","queryStringBlacklists","queryStringWhitelists"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCdnPolicyNegativeCachingPolicy:getBackendServiceCdnPolicyNegativeCachingPolicy":{"properties":{"code":{"type":"integer","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.\n"},"ttl":{"type":"integer","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.\n"}},"type":"object","required":["code","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCircuitBreaker:getBackendServiceCircuitBreaker":{"properties":{"connectTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceCircuitBreakerConnectTimeout:getBackendServiceCircuitBreakerConnectTimeout"},"description":"The timeout for new network connections to hosts.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.\n"},"maxPendingRequests":{"type":"integer","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequests":{"type":"integer","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequestsPerConnection":{"type":"integer","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.\n"},"maxRetries":{"type":"integer","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.\n"}},"type":"object","required":["connectTimeouts","maxConnections","maxPendingRequests","maxRequests","maxRequestsPerConnection","maxRetries"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCircuitBreakerConnectTimeout:getBackendServiceCircuitBreakerConnectTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceConsistentHash:getBackendServiceConsistentHash":{"properties":{"httpCookies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceConsistentHashHttpCooky:getBackendServiceConsistentHashHttpCooky"},"description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.\n"},"httpHeaderName":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.\n"},"minimumRingSize":{"type":"integer","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.\n"}},"type":"object","required":["httpCookies","httpHeaderName","minimumRingSize"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceConsistentHashHttpCooky:getBackendServiceConsistentHashHttpCooky":{"properties":{"name":{"type":"string","description":"The name of the Backend Service.\n\n- - -\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttls":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceConsistentHashHttpCookyTtl:getBackendServiceConsistentHashHttpCookyTtl"},"description":"Lifetime of the cookie.\n"}},"type":"object","required":["name","path","ttls"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceConsistentHashHttpCookyTtl:getBackendServiceConsistentHashHttpCookyTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceCustomMetric:getBackendServiceCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is not used for load balancing.\n"},"name":{"type":"string","description":"The name of the Backend Service.\n\n- - -\n"}},"type":"object","required":["dryRun","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceDynamicForwarding:getBackendServiceDynamicForwarding":{"properties":{"ipPortSelections":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceDynamicForwardingIpPortSelection:getBackendServiceDynamicForwardingIpPortSelection"},"description":"IP:PORT based dynamic forwarding configuration.\n"}},"type":"object","required":["ipPortSelections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceDynamicForwardingIpPortSelection:getBackendServiceDynamicForwardingIpPortSelection":{"properties":{"enabled":{"type":"boolean","description":"A boolean flag enabling IP:PORT based dynamic forwarding.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceIap:getBackendServiceIap":{"properties":{"enabled":{"type":"boolean","description":"Whether the serving infrastructure will authenticate and authorize all incoming requests.\n"},"oauth2ClientId":{"type":"string","description":"OAuth2 Client ID for IAP\n"},"oauth2ClientSecret":{"type":"string","description":"OAuth2 Client Secret for IAP\n"},"oauth2ClientSecretSha256":{"type":"string","description":"OAuth2 Client Secret SHA-256 for IAP\n"}},"type":"object","required":["enabled","oauth2ClientId","oauth2ClientSecret","oauth2ClientSecretSha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceLocalityLbPolicy:getBackendServiceLocalityLbPolicy":{"properties":{"customPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceLocalityLbPolicyCustomPolicy:getBackendServiceLocalityLbPolicyCustomPolicy"},"description":"The configuration for a custom policy implemented by the user and\ndeployed with the client.\n"},"policies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceLocalityLbPolicyPolicy:getBackendServiceLocalityLbPolicyPolicy"},"description":"The configuration for a built-in load balancing policy.\n"}},"type":"object","required":["customPolicies","policies"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceLocalityLbPolicyCustomPolicy:getBackendServiceLocalityLbPolicyCustomPolicy":{"properties":{"data":{"type":"string","description":"An optional, arbitrary JSON object with configuration data, understood\nby a locally installed custom policy implementation.\n"},"name":{"type":"string","description":"The name of the Backend Service.\n\n- - -\n"}},"type":"object","required":["data","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceLocalityLbPolicyPolicy:getBackendServiceLocalityLbPolicyPolicy":{"properties":{"name":{"type":"string","description":"The name of the Backend Service.\n\n- - -\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceLogConfig:getBackendServiceLogConfig":{"properties":{"enable":{"type":"boolean","description":"Whether to enable logging for the load balancer traffic served by this backend service.\n"},"optionalFields":{"type":"array","items":{"type":"string"},"description":"This field can only be specified if logging is enabled for this backend service and \"logConfig.optionalMode\"\nwas set to CUSTOM. Contains a list of optional fields you want to include in the logs.\nFor example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace\nFor example: orca_load_report, tls.protocol\n"},"optionalMode":{"type":"string","description":"Specifies the optional logging mode for the load balancer traffic.\nSupported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM. Possible values: [\"INCLUDE_ALL_OPTIONAL\", \"EXCLUDE_ALL_OPTIONAL\", \"CUSTOM\"]\n"},"sampleRate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.\n"}},"type":"object","required":["enable","optionalFields","optionalMode","sampleRate"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceMaxStreamDuration:getBackendServiceMaxStreamDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution.\nDurations less than one second are represented with a 0 seconds field and a positive nanos field.\nMust be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"string","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive. (int64 format)\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceNetworkPassThroughLbTrafficPolicy:getBackendServiceNetworkPassThroughLbTrafficPolicy":{"properties":{"zonalAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:getBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity"},"description":"When configured, new connections are load balanced across healthy backend endpoints in the local zone.\n"}},"type":"object","required":["zonalAffinities"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:getBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity":{"properties":{"spillover":{"type":"string","description":"This field indicates whether zonal affinity is enabled or not. Default value: \"ZONAL_AFFINITY_DISABLED\" Possible values: [\"ZONAL_AFFINITY_DISABLED\", \"ZONAL_AFFINITY_SPILL_CROSS_ZONE\", \"ZONAL_AFFINITY_STAY_WITHIN_ZONE\"]\n"},"spilloverRatio":{"type":"number","description":"The value of the field must be in [0, 1]. When the ratio of the count of healthy backend endpoints in a zone\nto the count of backend endpoints in that same zone is equal to or above this threshold, the load balancer\ndistributes new connections to all healthy endpoints in the local zone only. When the ratio of the count\nof healthy backend endpoints in a zone to the count of backend endpoints in that same zone is below this\nthreshold, the load balancer distributes all new connections to all healthy endpoints across all zones.\n"}},"type":"object","required":["spillover","spilloverRatio"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceOutlierDetection:getBackendServiceOutlierDetection":{"properties":{"baseEjectionTimes":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceOutlierDetectionBaseEjectionTime:getBackendServiceOutlierDetectionBaseEjectionTime"},"description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.\n"},"consecutiveErrors":{"type":"integer","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.\n"},"consecutiveGatewayFailure":{"type":"integer","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.\n"},"enforcingConsecutiveErrors":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.\n"},"enforcingConsecutiveGatewayFailure":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.\n"},"enforcingSuccessRate":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.\n"},"intervals":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceOutlierDetectionInterval:getBackendServiceOutlierDetectionInterval"},"description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.\n"},"maxEjectionPercent":{"type":"integer","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.\n"},"successRateMinimumHosts":{"type":"integer","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.\n"},"successRateRequestVolume":{"type":"integer","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.\n"},"successRateStdevFactor":{"type":"integer","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.\n"}},"type":"object","required":["baseEjectionTimes","consecutiveErrors","consecutiveGatewayFailure","enforcingConsecutiveErrors","enforcingConsecutiveGatewayFailure","enforcingSuccessRate","intervals","maxEjectionPercent","successRateMinimumHosts","successRateRequestVolume","successRateStdevFactor"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceOutlierDetectionBaseEjectionTime:getBackendServiceOutlierDetectionBaseEjectionTime":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceOutlierDetectionInterval:getBackendServiceOutlierDetectionInterval":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceParam:getBackendServiceParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the backend service. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceSecuritySetting:getBackendServiceSecuritySetting":{"properties":{"awsV4Authentications":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceSecuritySettingAwsV4Authentication:getBackendServiceSecuritySettingAwsV4Authentication"},"description":"The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication.\nAllowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends.\n"},"clientTlsPolicy":{"type":"string","description":"ClientTlsPolicy is a resource that specifies how a client should authenticate\nconnections to backends of a service. This resource itself does not affect\nconfiguration unless it is attached to a backend service resource.\n"},"subjectAltNames":{"type":"array","items":{"type":"string"},"description":"A list of alternate names to verify the subject identity in the certificate.\nIf specified, the client will verify that the server certificate's subject\nalt name matches one of the specified values.\n"}},"type":"object","required":["awsV4Authentications","clientTlsPolicy","subjectAltNames"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceSecuritySettingAwsV4Authentication:getBackendServiceSecuritySettingAwsV4Authentication":{"properties":{"accessKey":{"type":"string","description":"The access key used for s3 bucket authentication.\nRequired for updating or creating a backend that uses AWS v4 signature authentication, but will not be returned as part of the configuration when queried with a REST API GET request.\n"},"accessKeyId":{"type":"string","description":"The identifier of an access key used for s3 bucket authentication.\n"},"accessKeyVersion":{"type":"string","description":"The optional version identifier for the access key. You can use this to keep track of different iterations of your access key.\n"},"originRegion":{"type":"string","description":"The name of the cloud region of your origin. This is a free-form field with the name of the region your cloud uses to host your origin.\nFor example, \"us-east-1\" for AWS or \"us-ashburn-1\" for OCI.\n"}},"type":"object","required":["accessKey","accessKeyId","accessKeyVersion","originRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceStrongSessionAffinityCooky:getBackendServiceStrongSessionAffinityCooky":{"properties":{"name":{"type":"string","description":"The name of the Backend Service.\n\n- - -\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttls":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceStrongSessionAffinityCookyTtl:getBackendServiceStrongSessionAffinityCookyTtl"},"description":"Lifetime of the cookie.\n"}},"type":"object","required":["name","path","ttls"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceStrongSessionAffinityCookyTtl:getBackendServiceStrongSessionAffinityCookyTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceTlsSetting:getBackendServiceTlsSetting":{"properties":{"authenticationConfig":{"type":"string","description":"Reference to the BackendAuthenticationConfig resource from the networksecurity.googleapis.com namespace.\nCan be used in authenticating TLS connections to the backend, as specified by the authenticationMode field.\nCan only be specified if authenticationMode is not NONE.\n"},"sni":{"type":"string","description":"Server Name Indication - see RFC3546 section 3.1. If set, the load balancer sends this string as the SNI hostname in the\nTLS connection to the backend, and requires that this string match a Subject Alternative Name (SAN) in the backend's\nserver certificate. With a Regional Internet NEG backend, if the SNI is specified here, the load balancer uses it\nregardless of whether the Regional Internet NEG is specified with FQDN or IP address and port.\n"},"subjectAltNames":{"type":"array","items":{"$ref":"#/types/gcp:compute/getBackendServiceTlsSettingSubjectAltName:getBackendServiceTlsSettingSubjectAltName"},"description":"A list of Subject Alternative Names (SANs) that the Load Balancer verifies during a TLS handshake with the backend.\nWhen the server presents its X.509 certificate to the Load Balancer, the Load Balancer inspects the certificate's SAN field,\nand requires that at least one SAN match one of the subjectAltNames in the list. This field is limited to 5 entries.\nWhen both sni and subjectAltNames are specified, the load balancer matches the backend certificate's SAN only to\nsubjectAltNames.\n"}},"type":"object","required":["authenticationConfig","sni","subjectAltNames"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getBackendServiceTlsSettingSubjectAltName:getBackendServiceTlsSettingSubjectAltName":{"properties":{"dnsName":{"type":"string","description":"The SAN specified as a DNS Name.\n"},"uniformResourceIdentifier":{"type":"string","description":"The SAN specified as a URI.\n"}},"type":"object","required":["dnsName","uniformResourceIdentifier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getDiskAsyncPrimaryDisk:getDiskAsyncPrimaryDisk":{"properties":{"disk":{"type":"string","description":"Primary disk for asynchronous disk replication.\n"}},"type":"object","required":["disk"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getDiskDiskEncryptionKey:getDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n"},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getDiskGuestOsFeature:getDiskGuestOsFeature":{"properties":{"type":{"type":"string","description":"URL of the disk type resource describing which disk type to use to\ncreate the disk.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getDiskParam:getDiskParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the disk. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getDiskSourceImageEncryptionKey:getDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getDiskSourceSnapshotEncryptionKey:getDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key used to encrypt the disk. Also called KmsKeyName\nin the cloud console. Your project's Compute Engine System service account\n('service-{{PROJECT_NUMBER}}@compute-system.iam.gserviceaccount.com') must have\n'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature.\nSee https://cloud.google.com/compute/docs/disks/customer-managed-encryption#encrypt_a_new_persistent_disk_with_your_own_keys\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getForwardingRuleServiceDirectoryRegistration:getForwardingRuleServiceDirectoryRegistration":{"properties":{"namespace":{"type":"string","description":"Service Directory namespace to register the forwarding rule under.\n"},"service":{"type":"string","description":"Service Directory service to register the forwarding rule under.\n"}},"type":"object","required":["namespace","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getForwardingRulesRule:getForwardingRulesRule":{"properties":{"allPorts":{"type":"boolean","description":"The 'ports', 'portRange', and 'allPorts' fields are mutually exclusive.\nOnly packets addressed to ports in the specified range will be forwarded\nto the backends configured with this forwarding rule.\n\nThe 'allPorts' field has the following limitations:\n* It requires that the forwarding rule 'IPProtocol' be TCP, UDP, SCTP, or\nL3_DEFAULT.\n* It's applicable only to the following products: internal passthrough\nNetwork Load Balancers, backend service-based external passthrough Network\nLoad Balancers, and internal and external protocol forwarding.\n* Set this field to true to allow packets addressed to any port or packets\nlacking destination port information (for example, UDP fragments after the\nfirst fragment) to be forwarded to the backends configured with this\nforwarding rule. The L3_DEFAULT protocol requires 'allPorts' be set to\ntrue.\n"},"allowGlobalAccess":{"type":"boolean","description":"This field is used along with the 'backend_service' field for\ninternal load balancing or with the 'target' field for internal\nTargetInstance.\n\nIf the field is set to 'TRUE', clients can access ILB from all\nregions.\n\nOtherwise only allows access from clients in the same region as the\ninternal load balancer.\n"},"allowPscGlobalAccess":{"type":"boolean","description":"This is used in PSC consumer ForwardingRule to control whether the PSC endpoint can be accessed from another region.\n"},"backendService":{"type":"string","description":"Identifies the backend service to which the forwarding rule sends traffic.\n\nRequired for Internal TCP/UDP Load Balancing and Network Load Balancing;\nmust be omitted for all other load balancer types.\n"},"baseForwardingRule":{"type":"string","description":"[Output Only] The URL for the corresponding base Forwarding Rule. By base Forwarding Rule, we mean the Forwarding Rule that has the same IP address, protocol, and port settings with the current Forwarding Rule, but without sourceIPRanges specified. Always empty if the current Forwarding Rule does not have sourceIPRanges specified.\n"},"creationTimestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property when\nyou create the resource.\n"},"effectiveLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Terraform, other clients and services.\n","secret":true},"forwardingRuleId":{"type":"integer","description":"The unique identifier number for the resource. This identifier is defined by the server.\n"},"ipAddress":{"type":"string","description":"IP address for which this forwarding rule accepts traffic. When a client\nsends traffic to this IP address, the forwarding rule directs the traffic\nto the referenced 'target' or 'backendService'.\n\nWhile creating a forwarding rule, specifying an 'IPAddress' is\nrequired under the following circumstances:\n\n* When the 'target' is set to 'targetGrpcProxy' and\n'validateForProxyless' is set to 'true', the\n'IPAddress' should be set to '0.0.0.0'.\n* When the 'target' is a Private Service Connect Google APIs\nbundle, you must specify an 'IPAddress'.\n\nOtherwise, you can optionally specify an IP address that references an\nexisting static (reserved) IP address resource. When omitted, Google Cloud\nassigns an ephemeral IP address.\n\nUse one of the following formats to specify an IP address while creating a\nforwarding rule:\n\n* IP address number, as in '100.1.2.3'\n* IPv6 address range, as in '2600:1234::/96'\n* Full resource URL, as in\n'https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name'\n* Partial URL or by name, as in:\n  * 'projects/project_id/regions/region/addresses/address-name'\n  * 'regions/region/addresses/address-name'\n  * 'global/addresses/address-name'\n  * 'address-name'\n\nThe forwarding rule's 'target' or 'backendService',\nand in most cases, also the 'loadBalancingScheme', determine the\ntype of IP address that you can use. For detailed information, see\n[IP address\nspecifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).\n\nWhen reading an 'IPAddress', the API always returns the IP\naddress number.\n"},"ipCollection":{"type":"string","description":"Resource reference of a PublicDelegatedPrefix. The PDP must be a sub-PDP\nin EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.\nUse one of the following formats to specify a sub-PDP when creating an\nIPv6 NetLB forwarding rule using BYOIP:\nFull resource URL, as in:\n  * 'https://www.googleapis.com/compute/v1/projects/{{projectId}}/regions/{{region}}/publicDelegatedPrefixes/{{sub-pdp-name}}'\nPartial URL, as in:\n  * 'projects/{{projectId}}/regions/region/publicDelegatedPrefixes/{{sub-pdp-name}}'\n  * 'regions/{{region}}/publicDelegatedPrefixes/{{sub-pdp-name}}'\n"},"ipProtocol":{"type":"string","description":"The IP protocol to which this rule applies.\n\nFor protocol forwarding, valid\noptions are 'TCP', 'UDP', 'ESP',\n'AH', 'SCTP', 'ICMP' and\n'L3_DEFAULT'.\n\nThe valid IP protocols are different for different load balancing products\nas described in [Load balancing\nfeatures](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).\n\nA Forwarding Rule with protocol L3_DEFAULT can attach with target instance or\nbackend service with UNSPECIFIED protocol.\nA forwarding rule with \"L3_DEFAULT\" IPProtocal cannot be attached to a backend service with TCP or UDP. Possible values: [\"TCP\", \"UDP\", \"ESP\", \"AH\", \"SCTP\", \"ICMP\", \"L3_DEFAULT\"]\n"},"ipVersion":{"type":"string","description":"The IP address version that will be used by this forwarding rule.\nValid options are IPV4 and IPV6.\n\nIf not set, the IPv4 address will be used by default. Possible values: [\"IPV4\", \"IPV6\"]\n"},"isMirroringCollector":{"type":"boolean","description":"Indicates whether or not this load balancer can be used as a collector for\npacket mirroring. To prevent mirroring loops, instances behind this\nload balancer will not have their traffic mirrored even if a\n'PacketMirroring' rule applies to them.\n\nThis can only be set to true for load balancers that have their\n'loadBalancingScheme' set to 'INTERNAL'.\n"},"labelFingerprint":{"type":"string","description":"The fingerprint used for optimistic locking of this resource.  Used\ninternally during updates.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels to apply to this forwarding rule.  A list of key-\u003evalue pairs.\n\n\n**Note**: This field is non-authoritative, and will only manage the labels present in your configuration.\nPlease refer to the field 'effective_labels' for all of the labels present on the resource.\n"},"loadBalancingScheme":{"type":"string","description":"Specifies the forwarding rule type.\n\nNote that an empty string value ('\"\"') is also supported for some use\ncases, for example PSC (private service connection) regional forwarding\nrules.\n\nFor more information about forwarding rules, refer to\n[Forwarding rule concepts](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts). Default value: \"EXTERNAL\" Possible values: [\"EXTERNAL\", \"EXTERNAL_MANAGED\", \"INTERNAL\", \"INTERNAL_MANAGED\"]\n"},"name":{"type":"string","description":"Name of the resource; provided by the client when the resource is created.\nThe name must be 1-63 characters long, and comply with\n[RFC1035](https://www.ietf.org/rfc/rfc1035.txt).\n\nSpecifically, the name must be 1-63 characters long and match the regular\nexpression 'a-z?' which means the first\ncharacter must be a lowercase letter, and all following characters must\nbe a dash, lowercase letter, or digit, except the last character, which\ncannot be a dash.\n\nFor Private Service Connect forwarding rules that forward traffic to Google\nAPIs, the forwarding rule name must be a 1-20 characters string with\nlowercase letters and numbers and must start with a letter.\n"},"network":{"type":"string","description":"This field is not used for external load balancing.\n\nFor Internal TCP/UDP Load Balancing, this field identifies the network that\nthe load balanced IP should belong to for this Forwarding Rule.\nIf the subnetwork is specified, the network of the subnetwork will be used.\nIf neither subnetwork nor this field is specified, the default network will\nbe used.\n\nFor Private Service Connect forwarding rules that forward traffic to Google\nAPIs, a network must be provided.\n"},"networkTier":{"type":"string","description":"This signifies the networking tier used for configuring\nthis load balancer and can only take the following values:\n'PREMIUM', 'STANDARD'.\n\nFor regional ForwardingRule, the valid values are 'PREMIUM' and\n'STANDARD'. For GlobalForwardingRule, the valid value is\n'PREMIUM'.\n\nIf this field is not specified, it is assumed to be 'PREMIUM'.\nIf 'IPAddress' is specified, this value must be equal to the\nnetworkTier of the Address. Possible values: [\"PREMIUM\", \"STANDARD\"]\n"},"noAutomateDnsZone":{"type":"boolean","description":"This is used in PSC consumer ForwardingRule to control whether it should try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use this field.\n"},"portRange":{"type":"string","description":"The 'ports', 'portRange', and 'allPorts' fields are mutually exclusive.\nOnly packets addressed to ports in the specified range will be forwarded\nto the backends configured with this forwarding rule.\n\nThe 'portRange' field has the following limitations:\n* It requires that the forwarding rule 'IPProtocol' be TCP, UDP, or SCTP,\nand\n* It's applicable only to the following products: external passthrough\nNetwork Load Balancers, internal and external proxy Network Load\nBalancers, internal and external Application Load Balancers, external\nprotocol forwarding, and Classic VPN.\n* Some products have restrictions on what ports can be used. See\n[port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specifications)\nfor details.\n\nFor external forwarding rules, two or more forwarding rules cannot use the\nsame '[IPAddress, IPProtocol]' pair, and cannot have overlapping\n'portRange's.\n\nFor internal forwarding rules within the same VPC network, two or more\nforwarding rules cannot use the same '[IPAddress, IPProtocol]' pair, and\ncannot have overlapping 'portRange's.\n\n@pattern: \\d+(?:-\\d+)?\n"},"ports":{"type":"array","items":{"type":"string"},"description":"The 'ports', 'portRange', and 'allPorts' fields are mutually exclusive.\nOnly packets addressed to ports in the specified range will be forwarded\nto the backends configured with this forwarding rule.\n\nThe 'ports' field has the following limitations:\n* It requires that the forwarding rule 'IPProtocol' be TCP, UDP, or SCTP,\nand\n* It's applicable only to the following products: internal passthrough\nNetwork Load Balancers, backend service-based external passthrough Network\nLoad Balancers, and internal protocol forwarding.\n* You can specify a list of up to five ports by number, separated by\ncommas. The ports can be contiguous or discontiguous.\n\nFor external forwarding rules, two or more forwarding rules cannot use the\nsame '[IPAddress, IPProtocol]' pair if they share at least one port\nnumber.\n\nFor internal forwarding rules within the same VPC network, two or more\nforwarding rules cannot use the same '[IPAddress, IPProtocol]' pair if\nthey share at least one port number.\n\n@pattern: \\d+(?:-\\d+)?\n"},"project":{"type":"string","description":"The name of the project.\n"},"pscConnectionId":{"type":"string","description":"The PSC connection id of the PSC Forwarding Rule.\n"},"pscConnectionStatus":{"type":"string","description":"The PSC connection status of the PSC Forwarding Rule. Possible values: 'STATUS_UNSPECIFIED', 'PENDING', 'ACCEPTED', 'REJECTED', 'CLOSED'\n"},"pulumiLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The combination of labels configured directly on the resource\n and default labels configured on the provider.\n","secret":true},"recreateClosedPsc":{"type":"boolean","description":"This is used in PSC consumer ForwardingRule to make terraform recreate the ForwardingRule when the status is closed\n"},"region":{"type":"string","description":"The region you want to get the forwarding rules from.\n\nThese arguments must be set in either the provider or the resource in order for the information to be queried.\n"},"selfLink":{"type":"string","description":"The URI of the resource.\n"},"serviceDirectoryRegistrations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getForwardingRulesRuleServiceDirectoryRegistration:getForwardingRulesRuleServiceDirectoryRegistration"},"description":"Service Directory resources to register this forwarding rule with.\n\nCurrently, only supports a single Service Directory resource.\n"},"serviceLabel":{"type":"string","description":"An optional prefix to the service name for this Forwarding Rule.\nIf specified, will be the first label of the fully qualified service\nname.\n\nThe label must be 1-63 characters long, and comply with RFC1035.\nSpecifically, the label must be 1-63 characters long and match the\nregular expression 'a-z?' which means the first\ncharacter must be a lowercase letter, and all following characters\nmust be a dash, lowercase letter, or digit, except the last\ncharacter, which cannot be a dash.\n\nThis field is only used for INTERNAL load balancing.\n"},"serviceName":{"type":"string","description":"The internal fully qualified service name for this Forwarding Rule.\n\nThis field is only used for INTERNAL load balancing.\n"},"sourceIpRanges":{"type":"array","items":{"type":"string"},"description":"If not empty, this Forwarding Rule will only forward the traffic when the source IP address matches one of the IP addresses or CIDR ranges set here. Note that a Forwarding Rule can only have up to 64 source IP ranges, and this field can only be used with a regional Forwarding Rule whose scheme is EXTERNAL. Each sourceIpRange entry should be either an IP address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).\n"},"subnetwork":{"type":"string","description":"This field identifies the subnetwork that the load balanced IP should\nbelong to for this Forwarding Rule, used in internal load balancing and\nnetwork load balancing with IPv6.\n\nIf the network specified is in auto subnet mode, this field is optional.\nHowever, a subnetwork must be specified if the network is in custom subnet\nmode or when creating external forwarding rule with IPv6.\n"},"target":{"type":"string","description":"The URL of the target resource to receive the matched traffic.  For\nregional forwarding rules, this target must be in the same region as the\nforwarding rule. For global forwarding rules, this target must be a global\nload balancing resource.\n\nThe forwarded traffic must be of a type appropriate to the target object.\n*  For load balancers, see the \"Target\" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).\n\nFor Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment.\n"}},"type":"object","required":["allPorts","allowGlobalAccess","allowPscGlobalAccess","backendService","baseForwardingRule","creationTimestamp","description","effectiveLabels","forwardingRuleId","ipAddress","ipCollection","ipProtocol","ipVersion","isMirroringCollector","labelFingerprint","labels","loadBalancingScheme","name","network","networkTier","noAutomateDnsZone","portRange","ports","project","pscConnectionId","pscConnectionStatus","recreateClosedPsc","region","selfLink","serviceDirectoryRegistrations","serviceLabel","serviceName","sourceIpRanges","subnetwork","target","pulumiLabels"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getForwardingRulesRuleServiceDirectoryRegistration:getForwardingRulesRuleServiceDirectoryRegistration":{"properties":{"namespace":{"type":"string","description":"Service Directory namespace to register the forwarding rule under.\n"},"service":{"type":"string","description":"Service Directory service to register the forwarding rule under.\n"}},"type":"object","required":["namespace","service"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getGlobalForwardingRuleMetadataFilter:getGlobalForwardingRuleMetadataFilter":{"properties":{"filterLabels":{"type":"array","items":{"$ref":"#/types/gcp:compute/getGlobalForwardingRuleMetadataFilterFilterLabel:getGlobalForwardingRuleMetadataFilterFilterLabel"},"description":"The list of label value pairs that must match labels in the\nprovided metadata based on filterMatchCriteria\n\nThis list must not be empty and can have at the most 64 entries.\n"},"filterMatchCriteria":{"type":"string","description":"Specifies how individual filterLabel matches within the list of\nfilterLabels contribute towards the overall metadataFilter match.\n\nMATCH_ANY - At least one of the filterLabels must have a matching\nlabel in the provided metadata.\nMATCH_ALL - All filterLabels must have matching labels in the\nprovided metadata. Possible values: [\"MATCH_ANY\", \"MATCH_ALL\"]\n"}},"type":"object","required":["filterLabels","filterMatchCriteria"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getGlobalForwardingRuleMetadataFilterFilterLabel:getGlobalForwardingRuleMetadataFilterFilterLabel":{"properties":{"name":{"type":"string","description":"The name of the global forwarding rule.\n\n- - -\n"},"value":{"type":"string","description":"The value that the label must match. The value has a maximum\nlength of 1024 characters.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getGlobalForwardingRuleServiceDirectoryRegistration:getGlobalForwardingRuleServiceDirectoryRegistration":{"properties":{"namespace":{"type":"string","description":"Service Directory namespace to register the forwarding rule under.\n"},"serviceDirectoryRegion":{"type":"string","description":"[Optional] Service Directory region to register this global forwarding rule under.\nDefault to \"us-central1\". Only used for PSC for Google APIs. All PSC for\nGoogle APIs Forwarding Rules on the same network should use the same Service\nDirectory region.\n"}},"type":"object","required":["namespace","serviceDirectoryRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHcVpnGatewayParam:getHcVpnGatewayParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the HaVpnGateway. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHcVpnGatewayVpnInterface:getHcVpnGatewayVpnInterface":{"properties":{"id":{"type":"integer","description":"The numeric ID of this VPN gateway interface.\n"},"interconnectAttachment":{"type":"string","description":"URL of the interconnect attachment resource. When the value\nof this field is present, the VPN Gateway will be used for\nIPsec-encrypted Cloud Interconnect; all Egress or Ingress\ntraffic for this VPN Gateway interface will go through the\nspecified interconnect attachment resource.\n\nNot currently available publicly.\n"},"ipAddress":{"type":"string","description":"The external IP address for this VPN gateway interface.\n"}},"type":"object","required":["id","interconnectAttachment","ipAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckGrpcHealthCheck:getHealthCheckGrpcHealthCheck":{"properties":{"grpcServiceName":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n  - Empty serviceName means the overall status of all services at the backend.\n  - Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.\n"},"port":{"type":"integer","description":"The port number for the health check request.\nMust be specified if portName and portSpecification are not set\nor if\u003cspan pulumi-lang-nodejs=\" portSpecification \" pulumi-lang-dotnet=\" PortSpecification \" pulumi-lang-go=\" portSpecification \" pulumi-lang-python=\" port_specification \" pulumi-lang-yaml=\" portSpecification \" pulumi-lang-java=\" portSpecification \"\u003e port_specification \u003c/span\u003eis USE_FIXED_PORT. Valid values are 1 through 65535.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, gRPC health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"}},"type":"object","required":["grpcServiceName","port","portName","portSpecification"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckGrpcTlsHealthCheck:getHealthCheckGrpcTlsHealthCheck":{"properties":{"grpcServiceName":{"type":"string","description":"The gRPC service name for the health check.\nThe value of grpcServiceName has the following meanings by convention:\n  - Empty serviceName means the overall status of all services at the backend.\n  - Non-empty serviceName means the health of that gRPC service, as defined by the owner of the service.\nThe grpcServiceName can only be ASCII.\n"},"port":{"type":"integer","description":"The port number for the health check request.\nMust be specified if\u003cspan pulumi-lang-nodejs=\" portSpecification \" pulumi-lang-dotnet=\" PortSpecification \" pulumi-lang-go=\" portSpecification \" pulumi-lang-python=\" port_specification \" pulumi-lang-yaml=\" portSpecification \" pulumi-lang-java=\" portSpecification \"\u003e port_specification \u003c/span\u003eis USE_FIXED_PORT. Valid values are 1 through 65535.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': Not supported for GRPC with TLS health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, gRPC with TLS health check follows behavior specified in the 'port' field. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"}},"type":"object","required":["grpcServiceName","port","portSpecification"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckHttp2HealthCheck:getHealthCheckHttp2HealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTP2 health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTP2 health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, HTTP2 health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"requestPath":{"type":"string","description":"The request path of the HTTP2 health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object","required":["host","port","portName","portSpecification","proxyHeader","requestPath","response"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckHttpHealthCheck:getHealthCheckHttpHealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTP health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTP health check request.\nThe default value is 80.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, HTTP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"requestPath":{"type":"string","description":"The request path of the HTTP health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object","required":["host","port","portName","portSpecification","proxyHeader","requestPath","response"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckHttpsHealthCheck:getHealthCheckHttpsHealthCheck":{"properties":{"host":{"type":"string","description":"The value of the host header in the HTTPS health check request.\nIf left empty (default value), the public IP on behalf of which this health\ncheck is performed will be used.\n"},"port":{"type":"integer","description":"The TCP port number for the HTTPS health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, HTTPS health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"requestPath":{"type":"string","description":"The request path of the HTTPS health check request.\nThe default value is /.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object","required":["host","port","portName","portSpecification","proxyHeader","requestPath","response"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckLogConfig:getHealthCheckLogConfig":{"properties":{"enable":{"type":"boolean","description":"Indicates whether or not to export logs. This is false by default,\nwhich means no health check logging will be done.\n"}},"type":"object","required":["enable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckSslHealthCheck:getHealthCheckSslHealthCheck":{"properties":{"port":{"type":"integer","description":"The TCP port number for the SSL health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, SSL health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"request":{"type":"string","description":"The application data to send once the SSL connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object","required":["port","portName","portSpecification","proxyHeader","request","response"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getHealthCheckTcpHealthCheck:getHealthCheckTcpHealthCheck":{"properties":{"port":{"type":"integer","description":"The TCP port number for the TCP health check request.\nThe default value is 443.\n"},"portName":{"type":"string","description":"Port name as defined in InstanceGroup#NamedPort#name. If both port and\u003cspan pulumi-lang-nodejs=\"\nportName \" pulumi-lang-dotnet=\"\nPortName \" pulumi-lang-go=\"\nportName \" pulumi-lang-python=\"\nport_name \" pulumi-lang-yaml=\"\nportName \" pulumi-lang-java=\"\nportName \"\u003e\nport_name \u003c/span\u003eare defined, port takes precedence.\n"},"portSpecification":{"type":"string","description":"Specifies how port is selected for health checking, can be one of the\nfollowing values:\n\n  * 'USE_FIXED_PORT': The port number in 'port' is used for health checking.\n\n  * 'USE_NAMED_PORT': The 'portName' is used for health checking.\n\n  * 'USE_SERVING_PORT': For NetworkEndpointGroup, the port specified for each\n  network endpoint is used for health checking. For other backends, the\n  port or named port specified in the Backend Service is used for health\n  checking.\n\nIf not specified, TCP health check follows behavior specified in 'port' and\n'portName' fields. Possible values: [\"USE_FIXED_PORT\", \"USE_NAMED_PORT\", \"USE_SERVING_PORT\"]\n"},"proxyHeader":{"type":"string","description":"Specifies the type of proxy header to append before sending data to the\nbackend. Default value: \"NONE\" Possible values: [\"NONE\", \"PROXY_V1\"]\n"},"request":{"type":"string","description":"The application data to send once the TCP connection has been\nestablished (default value is empty). If both request and response are\nempty, the connection establishment alone will indicate health. The request\ndata can only be ASCII.\n"},"response":{"type":"string","description":"The bytes to match against the beginning of the response data. If left empty\n(the default value), any response will indicate health. The response data\ncan only be ASCII.\n"}},"type":"object","required":["port","portName","portSpecification","proxyHeader","request","response"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getImagesImage:getImagesImage":{"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"},"imageId":{"type":"integer"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n"},"name":{"type":"string","description":"The name of the image.\n"},"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"},"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"}},"type":"object","required":["archiveSizeBytes","creationTimestamp","description","diskSizeGb","family","imageId","labels","name","selfLink","sourceDisk","sourceDiskId","sourceImageId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceAdvancedMachineFeature:getInstanceAdvancedMachineFeature":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether to enable nested virtualization or not.\n"},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking for the instance.\n"},"performanceMonitoringUnit":{"type":"string","description":"The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are \"STANDARD\", \"ENHANCED\", and \"ARCHITECTURAL\".\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Currently supported modes is \"ALL_CORE_MAX\".\n"},"visibleCoreCount":{"type":"integer","description":"The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance\\'s nominal CPU count and the underlying platform\\'s SMT width.\n"}},"type":"object","required":["enableNestedVirtualization","enableUefiNetworking","performanceMonitoringUnit","threadsPerCore","turboMode","visibleCoreCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceAttachedDisk:getInstanceAttachedDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible\nunder `/dev/disk/by-id/`\n"},"diskEncryptionKeyRaw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n"},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n"},"diskEncryptionKeySha256":{"type":"string","description":"The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(\u003chttps://cloud.google.com/compute/docs/disks/customer-supplied-encryption\u003e) that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used\n"},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n"},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003emay be set.\n"},"mode":{"type":"string","description":"Read/write mode for the disk. One of `\"READ_ONLY\"` or `\"READ_WRITE\"`.\n"},"source":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the disk attached to this instance.\n"}},"type":"object","required":["deviceName","diskEncryptionKeyRaw","diskEncryptionKeyRsa","diskEncryptionKeySha256","diskEncryptionServiceAccount","forceAttach","kmsKeySelfLink","mode","source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceBootDisk:getInstanceBootDisk":{"properties":{"autoDelete":{"type":"boolean","description":"Whether the disk will be auto-deleted when the instance is deleted.\n"},"deviceName":{"type":"string","description":"Name with which the attached disk is accessible\nunder `/dev/disk/by-id/`\n"},"diskEncryptionKeyRaw":{"type":"string","description":"A 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n"},"diskEncryptionKeyRsa":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n"},"diskEncryptionKeySha256":{"type":"string","description":"The [RFC 4648 base64](https://tools.ietf.org/html/rfc4648#section-4)\nencoded SHA-256 hash of the [customer-supplied encryption key]\n(\u003chttps://cloud.google.com/compute/docs/disks/customer-supplied-encryption\u003e) that protects this resource.\n"},"diskEncryptionServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used\n"},"forceAttach":{"type":"boolean","description":"Whether to force attach the regional disk even if it's currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error. Setting this parameter cause VM recreation.\n"},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images.\n"},"initializeParams":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceBootDiskInitializeParam:getInstanceBootDiskInitializeParam"},"description":"Parameters with which a disk was created alongside the instance.\nStructure is documented below.\n"},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of `SCSI` or `NVME`.\n"},"kmsKeySelfLink":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the encryption key that is stored in Google Cloud KMS to encrypt this disk. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRaw \" pulumi-lang-dotnet=\" DiskEncryptionKeyRaw \" pulumi-lang-go=\" diskEncryptionKeyRaw \" pulumi-lang-python=\" disk_encryption_key_raw \" pulumi-lang-yaml=\" diskEncryptionKeyRaw \" pulumi-lang-java=\" diskEncryptionKeyRaw \"\u003e disk_encryption_key_raw \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" diskEncryptionKeyRsa \" pulumi-lang-dotnet=\" DiskEncryptionKeyRsa \" pulumi-lang-go=\" diskEncryptionKeyRsa \" pulumi-lang-python=\" disk_encryption_key_rsa \" pulumi-lang-yaml=\" diskEncryptionKeyRsa \" pulumi-lang-java=\" diskEncryptionKeyRsa \"\u003e disk_encryption_key_rsa \u003c/span\u003emay be set.\n"},"mode":{"type":"string","description":"Read/write mode for the disk. One of `\"READ_ONLY\"` or `\"READ_WRITE\"`.\n"},"source":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the disk attached to this instance.\n"}},"type":"object","required":["autoDelete","deviceName","diskEncryptionKeyRaw","diskEncryptionKeyRsa","diskEncryptionKeySha256","diskEncryptionServiceAccount","forceAttach","guestOsFeatures","initializeParams","interface","kmsKeySelfLink","mode","source"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceBootDiskInitializeParam:getInstanceBootDiskInitializeParam":{"properties":{"architecture":{"type":"string","description":"The architecture of the disk. One of \"X86_64\" or \"ARM64\".\n"},"enableConfidentialCompute":{"type":"boolean","description":"A flag to enable confidential compute mode on boot disk\n"},"image":{"type":"string","description":"The image from which this disk was initialised.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key/value label pairs assigned to the disk.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle.\n"},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"resourcePolicies":{"type":"array","items":{"type":"string"},"description":"A list of\u003cspan pulumi-lang-nodejs=\" selfLinks \" pulumi-lang-dotnet=\" SelfLinks \" pulumi-lang-go=\" selfLinks \" pulumi-lang-python=\" self_links \" pulumi-lang-yaml=\" selfLinks \" pulumi-lang-java=\" selfLinks \"\u003e self_links \u003c/span\u003eto resource policies attached to the selected \u003cspan pulumi-lang-nodejs=\"`bootDisk`\" pulumi-lang-dotnet=\"`BootDisk`\" pulumi-lang-go=\"`bootDisk`\" pulumi-lang-python=\"`boot_disk`\" pulumi-lang-yaml=\"`bootDisk`\" pulumi-lang-java=\"`bootDisk`\"\u003e`boot_disk`\u003c/span\u003e\n"},"size":{"type":"integer","description":"The size of the image in gigabytes.\n"},"snapshot":{"type":"string","description":"The snapshot from which this disk was initialised.\n"},"sourceImageEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceBootDiskInitializeParamSourceImageEncryptionKey:getInstanceBootDiskInitializeParamSourceImageEncryptionKey"},"description":"The encryption key used to decrypt the source image.\n"},"sourceSnapshotEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceBootDiskInitializeParamSourceSnapshotEncryptionKey:getInstanceBootDiskInitializeParamSourceSnapshotEncryptionKey"},"description":"The encryption key used to decrypt the source snapshot.\n"},"storagePool":{"type":"string","description":"The URL of the storage pool in which the new disk is created\n"},"type":{"type":"string","description":"The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["architecture","enableConfidentialCompute","image","labels","provisionedIops","provisionedThroughput","resourceManagerTags","resourcePolicies","size","snapshot","sourceImageEncryptionKeys","sourceSnapshotEncryptionKeys","storagePool","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceBootDiskInitializeParamSourceImageEncryptionKey:getInstanceBootDiskInitializeParamSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"sha256":{"type":"string","description":"The SHA256 hash of the encryption key used to encrypt this disk.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceBootDiskInitializeParamSourceSnapshotEncryptionKey:getInstanceBootDiskInitializeParamSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"sha256":{"type":"string","description":"The SHA256 hash of the encryption key used to encrypt this disk.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceConfidentialInstanceConfig:getInstanceConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"The confidential computing technology the instance uses.\n\t\t\t\t\t\t\t\tSEV is an AMD feature. TDX is an Intel feature. One of the following\n\t\t\t\t\t\t\t\tvalues is required: SEV, SEV_SNP, TDX. If SEV_SNP,\u003cspan pulumi-lang-nodejs=\" minCpuPlatform \" pulumi-lang-dotnet=\" MinCpuPlatform \" pulumi-lang-go=\" minCpuPlatform \" pulumi-lang-python=\" min_cpu_platform \" pulumi-lang-yaml=\" minCpuPlatform \" pulumi-lang-java=\" minCpuPlatform \"\u003e min_cpu_platform \u003c/span\u003e=\n\t\t\t\t\t\t\t\t\"AMD Milan\" is currently required.\n"},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled. Field will be deprecated in a future release\n"}},"type":"object","required":["confidentialInstanceType","enableConfidentialCompute"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerAllInstancesConfig:getInstanceGroupManagerAllInstancesConfig":{"properties":{"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The label key-value pairs that you want to patch onto the instance,\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,\n"}},"type":"object","required":["labels","metadata"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerAutoHealingPolicy:getInstanceGroupManagerAutoHealingPolicy":{"properties":{"healthCheck":{"type":"string","description":"The health check resource that signals autohealing.\n"},"initialDelaySec":{"type":"integer","description":"The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.\n"}},"type":"object","required":["healthCheck","initialDelaySec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerInstanceLifecyclePolicy:getInstanceGroupManagerInstanceLifecyclePolicy":{"properties":{"defaultActionOnFailure":{"type":"string","description":"Specifies the action that a MIG performs on a failed VM. If the value of the \u003cspan pulumi-lang-nodejs=\"\"onFailedHealthCheck\"\" pulumi-lang-dotnet=\"\"OnFailedHealthCheck\"\" pulumi-lang-go=\"\"onFailedHealthCheck\"\" pulumi-lang-python=\"\"on_failed_health_check\"\" pulumi-lang-yaml=\"\"onFailedHealthCheck\"\" pulumi-lang-java=\"\"onFailedHealthCheck\"\"\u003e\"on_failed_health_check\"\u003c/span\u003e field is DEFAULT_ACTION, then the same action also applies to the VMs on which your application fails a health check. Valid values are: REPAIR, DO_NOTHING. If REPAIR (default), then MIG automatically repairs a failed VM by recreating it. For more information, see about repairing VMs in a MIG. If DO_NOTHING, then MIG does not repair a failed VM.\n"},"forceUpdateOnRepair":{"type":"string","description":"Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.\n"},"onFailedHealthCheck":{"type":"string","description":"Specifies the action that a MIG performs on an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are: DEFAULT_ACTION, DO_NOTHING, REPAIR. If DEFAULT_ACTION (default), then MIG uses the same action configured for the  \u003cspan pulumi-lang-nodejs=\"\"defaultActionOnFailure\"\" pulumi-lang-dotnet=\"\"DefaultActionOnFailure\"\" pulumi-lang-go=\"\"defaultActionOnFailure\"\" pulumi-lang-python=\"\"default_action_on_failure\"\" pulumi-lang-yaml=\"\"defaultActionOnFailure\"\" pulumi-lang-java=\"\"defaultActionOnFailure\"\"\u003e\"default_action_on_failure\"\u003c/span\u003e field. If DO_NOTHING, then MIG does not repair unhealthy VM. If REPAIR, then MIG automatically repairs an unhealthy VM by recreating it.\n"},"onRepairs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceGroupManagerInstanceLifecyclePolicyOnRepair:getInstanceGroupManagerInstanceLifecyclePolicyOnRepair"},"description":"Configuration for VM repairs in the MIG.\n"}},"type":"object","required":["defaultActionOnFailure","forceUpdateOnRepair","onFailedHealthCheck","onRepairs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerInstanceLifecyclePolicyOnRepair:getInstanceGroupManagerInstanceLifecyclePolicyOnRepair":{"properties":{"allowChangingZone":{"type":"string","description":"Specifies whether the MIG can change a VM's zone during a repair. If \"YES\", MIG can select a different zone for the VM during a repair. Else if \"NO\", MIG cannot change a VM's zone during a repair. The default value of\u003cspan pulumi-lang-nodejs=\" allowChangingZone \" pulumi-lang-dotnet=\" AllowChangingZone \" pulumi-lang-go=\" allowChangingZone \" pulumi-lang-python=\" allow_changing_zone \" pulumi-lang-yaml=\" allowChangingZone \" pulumi-lang-java=\" allowChangingZone \"\u003e allow_changing_zone \u003c/span\u003eis \"NO\".\n"}},"type":"object","required":["allowChangingZone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerNamedPort:getInstanceGroupManagerNamedPort":{"properties":{"name":{"type":"string","description":"The name of the instance group. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"port":{"type":"integer","description":"The port number.\n"}},"type":"object","required":["name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerParam:getInstanceGroupManagerParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerResourcePolicy:getInstanceGroupManagerResourcePolicy":{"properties":{"workloadPolicy":{"type":"string","description":"The URL of the workload policy that is specified for this managed instance group. It can be a full or partial URL.\n"}},"type":"object","required":["workloadPolicy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStandbyPolicy:getInstanceGroupManagerStandbyPolicy":{"properties":{"initialDelaySec":{"type":"integer","description":"Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.\n"},"mode":{"type":"string","description":"Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. The default mode is \"MANUAL\".\n"}},"type":"object","required":["initialDelaySec","mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatefulDisk:getInstanceGroupManagerStatefulDisk":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.\n"},"deviceName":{"type":"string","description":"The device name of the disk to be attached.\n"}},"type":"object","required":["deleteRule","deviceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatefulExternalIp:getInstanceGroupManagerStatefulExternalIp":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to an associated static Address resource when a VM instance is permanently deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the IP when the VM is deleted, but do not delete the address resource. ON_PERMANENT_INSTANCE_DELETION will delete the stateful address when the VM is permanently deleted from the instance group. The default is NEVER.\n"},"interfaceName":{"type":"string","description":"The network interface name\n"}},"type":"object","required":["deleteRule","interfaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatefulInternalIp:getInstanceGroupManagerStatefulInternalIp":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to an associated static Address resource when a VM instance is permanently deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the IP when the VM is deleted, but do not delete the address resource. ON_PERMANENT_INSTANCE_DELETION will delete the stateful address when the VM is permanently deleted from the instance group. The default is NEVER.\n"},"interfaceName":{"type":"string","description":"The network interface name\n"}},"type":"object","required":["deleteRule","interfaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatus:getInstanceGroupManagerStatus":{"properties":{"allInstancesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceGroupManagerStatusAllInstancesConfig:getInstanceGroupManagerStatusAllInstancesConfig"},"description":"Status of all-instances configuration on the group.\n"},"isStable":{"type":"boolean","description":"A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.\n"},"statefuls":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceGroupManagerStatusStateful:getInstanceGroupManagerStatusStateful"},"description":"Stateful status of the given Instance Group Manager.\n"},"versionTargets":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceGroupManagerStatusVersionTarget:getInstanceGroupManagerStatusVersionTarget"},"description":"A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager.\n"}},"type":"object","required":["allInstancesConfigs","isStable","statefuls","versionTargets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatusAllInstancesConfig:getInstanceGroupManagerStatusAllInstancesConfig":{"properties":{"currentRevision":{"type":"string","description":"Current all-instances configuration revision. This value is in RFC3339 text format.\n"},"effective":{"type":"boolean","description":"A bit indicating whether this configuration has been applied to all managed instances in the group.\n"}},"type":"object","required":["currentRevision","effective"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatusStateful:getInstanceGroupManagerStatusStateful":{"properties":{"hasStatefulConfig":{"type":"boolean","description":"A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.\n"},"perInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceGroupManagerStatusStatefulPerInstanceConfig:getInstanceGroupManagerStatusStatefulPerInstanceConfig"},"description":"Status of per-instance configs on the instances.\n"}},"type":"object","required":["hasStatefulConfig","perInstanceConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatusStatefulPerInstanceConfig:getInstanceGroupManagerStatusStatefulPerInstanceConfig":{"properties":{"allEffective":{"type":"boolean","description":"A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.\n"}},"type":"object","required":["allEffective"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerStatusVersionTarget:getInstanceGroupManagerStatusVersionTarget":{"properties":{"isReached":{"type":"boolean","description":"A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.\n"}},"type":"object","required":["isReached"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerUpdatePolicy:getInstanceGroupManagerUpdatePolicy":{"properties":{"maxSurgeFixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0\n"},"maxSurgePercent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.\n"},"maxUnavailableFixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive integer.\n"},"maxUnavailablePercent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.\n"},"minReadySec":{"type":"integer","description":"Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].\n"},"minimalAction":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.\n"},"mostDisruptiveAllowedAction":{"type":"string","description":"Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.\n"},"replacementMethod":{"type":"string","description":"The instance replacement method for managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved.  You must also set\u003cspan pulumi-lang-nodejs=\" maxUnavailableFixed \" pulumi-lang-dotnet=\" MaxUnavailableFixed \" pulumi-lang-go=\" maxUnavailableFixed \" pulumi-lang-python=\" max_unavailable_fixed \" pulumi-lang-yaml=\" maxUnavailableFixed \" pulumi-lang-java=\" maxUnavailableFixed \"\u003e max_unavailable_fixed \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" maxUnavailablePercent \" pulumi-lang-dotnet=\" MaxUnavailablePercent \" pulumi-lang-go=\" maxUnavailablePercent \" pulumi-lang-python=\" max_unavailable_percent \" pulumi-lang-yaml=\" maxUnavailablePercent \" pulumi-lang-java=\" maxUnavailablePercent \"\u003e max_unavailable_percent \u003c/span\u003eto be greater than 0.\n"},"type":{"type":"string","description":"The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).\n"}},"type":"object","required":["maxSurgeFixed","maxSurgePercent","maxUnavailableFixed","maxUnavailablePercent","minReadySec","minimalAction","mostDisruptiveAllowedAction","replacementMethod","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerVersion:getInstanceGroupManagerVersion":{"properties":{"instanceTemplate":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.\n"},"name":{"type":"string","description":"The name of the instance group. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"targetSizes":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceGroupManagerVersionTargetSize:getInstanceGroupManagerVersionTargetSize"},"description":"The number of instances calculated as a fixed number or a percentage depending on the settings.\n"}},"type":"object","required":["instanceTemplate","name","targetSizes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupManagerVersionTargetSize:getInstanceGroupManagerVersionTargetSize":{"properties":{"fixed":{"type":"integer","description":"The number of instances which are managed for this version. Conflicts with percent.\n"},"percent":{"type":"integer","description":"The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set\u003cspan pulumi-lang-nodejs=\" targetSize \" pulumi-lang-dotnet=\" TargetSize \" pulumi-lang-go=\" targetSize \" pulumi-lang-python=\" target_size \" pulumi-lang-yaml=\" targetSize \" pulumi-lang-java=\" targetSize \"\u003e target_size \u003c/span\u003evalues; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.\n"}},"type":"object","required":["fixed","percent"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGroupNamedPort:getInstanceGroupNamedPort":{"properties":{"name":{"type":"string","description":"The name of the instance group. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"port":{"type":"integer"}},"type":"object","required":["name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGuestAccelerator:getInstanceGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n"},"type":{"type":"string","description":"The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["count","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceGuestAttributesQueryValue:getInstanceGuestAttributesQueryValue":{"properties":{"key":{"type":"string","description":"Key of the guest_attribute.\n"},"namespace":{"type":"string","description":"Namespace of the guest_attribute.\n"},"value":{"type":"string","description":"Value of the guest_attribute.\n"}},"type":"object","required":["key","namespace","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceInstanceEncryptionKey:getInstanceInstanceEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"sha256":{"type":"string","description":"The SHA256 hash of the customer's encryption key.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceNetworkInterface:getInstanceNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceNetworkInterfaceAccessConfig:getInstanceNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this\ninstance can be accessed via the Internet. Structure documented below.\n"},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceNetworkInterfaceAliasIpRange:getInstanceNetworkInterfaceAliasIpRange"},"description":"An array of alias IP ranges for this network interface. Structure documented below.\n"},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n"},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceNetworkInterfaceIpv6AccessConfig:getInstanceNetworkInterfaceIpv6AccessConfig"},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n"},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n"},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"},"macAddress":{"type":"string","description":"MAC address assigned to this network interface.\n"},"name":{"type":"string","description":"The name of the instance. One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network attached to this interface.\n"},"networkAttachment":{"type":"string","description":"The URL of the network attachment to this interface.\n"},"networkIp":{"type":"string","description":"The internal ip address of the instance, either manually or dynamically assigned.\n"},"nicType":{"type":"string","description":"The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET, IDPF, MRDMA, and IRDMA\n"},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"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"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"},"stackType":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.\n"},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the subnetwork attached to this interface.\n"},"subnetworkProject":{"type":"string","description":"The project in which the subnetwork belongs.\n"},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n"}},"type":"object","required":["accessConfigs","aliasIpRanges","igmpQuery","internalIpv6PrefixLength","ipv6AccessConfigs","ipv6AccessType","ipv6Address","macAddress","name","network","networkAttachment","networkIp","nicType","parentNicName","queueCount","securityPolicy","stackType","subnetwork","subnetworkProject","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceNetworkInterfaceAccessConfig:getInstanceNetworkInterfaceAccessConfig":{"properties":{"natIp":{"type":"string","description":"If the instance has an access config, either the given external ip (in the \u003cspan pulumi-lang-nodejs=\"`natIp`\" pulumi-lang-dotnet=\"`NatIp`\" pulumi-lang-go=\"`natIp`\" pulumi-lang-python=\"`nat_ip`\" pulumi-lang-yaml=\"`natIp`\" pulumi-lang-java=\"`natIp`\"\u003e`nat_ip`\u003c/span\u003e field) or the ephemeral (generated) ip (if you didn't provide one).\n"},"networkTier":{"type":"string","description":"The [networking tier][network-tier] used for configuring this instance. One of `PREMIUM` or `STANDARD`.\n"},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","required":["natIp","networkTier","publicPtrDomainName","securityPolicy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceNetworkInterfaceAliasIpRange:getInstanceNetworkInterfaceAliasIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"The IP CIDR range represented by this alias IP range.\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.\n"}},"type":"object","required":["ipCidrRange","subnetworkRangeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceNetworkInterfaceIpv6AccessConfig:getInstanceNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. To use a static external IP address, it must be unused and in the same region as the instance's zone. If not specified, Google Cloud will automatically assign an external IPv6 address from the instance's subnetwork.\n"},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n"},"name":{"type":"string","description":"The name of the instance. One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"networkTier":{"type":"string","description":"The [networking tier][network-tier] used for configuring this instance. One of `PREMIUM` or `STANDARD`.\n"},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.\n"},"securityPolicy":{"type":"string","description":"A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.\n"}},"type":"object","required":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName","securityPolicy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceNetworkPerformanceConfig:getInstanceNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier for the instance.\n"}},"type":"object","required":["totalEgressBandwidthTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceParam:getInstanceParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceReservationAffinity:getInstanceReservationAffinity":{"properties":{"specificReservations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceReservationAffinitySpecificReservation:getInstanceReservationAffinitySpecificReservation"},"description":"Specifies the label selector for the reservation to use.\n"},"type":{"type":"string","description":"The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["specificReservations","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceReservationAffinitySpecificReservation:getInstanceReservationAffinitySpecificReservation":{"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"},"values":{"type":"array","items":{"type":"string"},"description":"Corresponds to the label values of a reservation resource.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceScheduling:getInstanceScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies if the instance should be\nrestarted if it was terminated by Compute Engine (not a user).\n"},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain, which this instance should be scheduled on.\n"},"gracefulShutdowns":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceSchedulingGracefulShutdown:getInstanceSchedulingGracefulShutdown"},"description":"Settings for the instance to perform a graceful shutdown.\n"},"hostErrorTimeoutSeconds":{"type":"integer","description":"Beta Time in seconds for host error detection.\n"},"instanceTerminationAction":{"type":"string","description":"Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`.  Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n"},"localSsdRecoveryTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceSchedulingLocalSsdRecoveryTimeout:getInstanceSchedulingLocalSsdRecoveryTimeout"},"description":"Specifies the maximum amount of time a Local Ssd Vm should wait while\n  recovery of the Local Ssd state is attempted. Its value should be in\n  between 0 and 168 hours with hour granularity and the default value being 1\n  hour.\n"},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\n"},"maxRunDurations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceSchedulingMaxRunDuration:getInstanceSchedulingMaxRunDuration"},"description":"The timeout for new network connections to hosts.\n"},"minNodeCpus":{"type":"integer"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceSchedulingNodeAffinity:getInstanceSchedulingNodeAffinity"},"description":"Specifies node affinities or anti-affinities to determine which sole-tenant nodes your instances and managed instance groups will use as host systems.\n"},"onHostMaintenance":{"type":"string","description":"Describes maintenance behavior for the\ninstance. One of `MIGRATE` or `TERMINATE`, for more info, read\n[here](https://cloud.google.com/compute/docs/instances/setting-instance-scheduling-options)\n"},"onInstanceStopActions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceSchedulingOnInstanceStopAction:getInstanceSchedulingOnInstanceStopAction"},"description":"Defines the behaviour for instances with the instance_termination_action.\n"},"preemptible":{"type":"boolean","description":"Whether the instance is preemptible.\n"},"provisioningModel":{"type":"string","description":"Describe the type of preemptible VM.\n"},"skipGuestOsShutdown":{"type":"boolean","description":"Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated,\nin RFC3339 text format. If specified, the instance termination action\nwill be performed at the termination time.\n"}},"type":"object","required":["automaticRestart","availabilityDomain","gracefulShutdowns","hostErrorTimeoutSeconds","instanceTerminationAction","localSsdRecoveryTimeouts","maintenanceInterval","maxRunDurations","minNodeCpus","nodeAffinities","onHostMaintenance","onInstanceStopActions","preemptible","provisioningModel","skipGuestOsShutdown","terminationTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceSchedulingGracefulShutdown:getInstanceSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n"},"maxDurations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceSchedulingGracefulShutdownMaxDuration:getInstanceSchedulingGracefulShutdownMaxDuration"},"description":"The time allotted for the instance to gracefully shut down.\n\t\t\t\t\t\t\t\t\t\tIf the graceful shutdown isn't complete after this time, then the instance\n\t\t\t\t\t\t\t\t\t\ttransitions to the STOPPING state.\n"}},"type":"object","required":["enabled","maxDurations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceSchedulingGracefulShutdownMaxDuration:getInstanceSchedulingGracefulShutdownMaxDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolution. Durations less than one second are represented\n\t\t\t\t\t\t\t\t\t\t\t\t\twith a 0 seconds field and a positive nanos field. Must\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\n\t\t\t\t\t\t\t\t\t\t\t\t\tThe value must be between 1 and 3600, which is 3,600 seconds (one hour).\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceSchedulingLocalSsdRecoveryTimeout:getInstanceSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceSchedulingMaxRunDuration:getInstanceSchedulingMaxRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceSchedulingNodeAffinity:getInstanceSchedulingNodeAffinity":{"properties":{"key":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}},"type":"object","required":["key","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceSchedulingOnInstanceStopAction:getInstanceSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"If true, the contents of any attached Local SSD disks will be discarded.\n"}},"type":"object","required":["discardLocalSsd"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceScratchDisk:getInstanceScratchDisk":{"properties":{"deviceName":{"type":"string","description":"Name with which the attached disk is accessible\nunder `/dev/disk/by-id/`\n"},"interface":{"type":"string","description":"The disk interface used for attaching this disk. One of `SCSI` or `NVME`.\n"},"size":{"type":"integer","description":"The size of the image in gigabytes.\n"}},"type":"object","required":["deviceName","interface","size"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceServiceAccount:getInstanceServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"A list of service scopes.\n"}},"type":"object","required":["email","scopes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceShieldedInstanceConfig:getInstanceShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"- Whether integrity monitoring is enabled for the instance.\n"},"enableSecureBoot":{"type":"boolean","description":"- Whether secure boot is enabled for the instance.\n"},"enableVtpm":{"type":"boolean","description":"- Whether the instance uses vTPM.\n"}},"type":"object","required":["enableIntegrityMonitoring","enableSecureBoot","enableVtpm"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateAdvancedMachineFeature:getInstanceTemplateAdvancedMachineFeature":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether to enable nested virtualization or not.\n"},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking or not.\n"},"performanceMonitoringUnit":{"type":"string","description":"The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are \"STANDARD\", \"ENHANCED\", and \"ARCHITECTURAL\".\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Currently supported modes is \"ALL_CORE_MAX\".\n"},"visibleCoreCount":{"type":"integer","description":"The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance\\'s nominal CPU count and the underlying platform\\'s SMT width.\n"}},"type":"object","required":["enableNestedVirtualization","enableUefiNetworking","performanceMonitoringUnit","threadsPerCore","turboMode","visibleCoreCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateConfidentialInstanceConfig:getInstanceTemplateConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"The confidential computing technology the instance uses.\n\t\t\t\t\t\t\t\tSEV is an AMD feature. TDX is an Intel feature. One of the following\n\t\t\t\t\t\t\t\tvalues is required: SEV, SEV_SNP, TDX. If SEV_SNP,\u003cspan pulumi-lang-nodejs=\" minCpuPlatform \" pulumi-lang-dotnet=\" MinCpuPlatform \" pulumi-lang-go=\" minCpuPlatform \" pulumi-lang-python=\" min_cpu_platform \" pulumi-lang-yaml=\" minCpuPlatform \" pulumi-lang-java=\" minCpuPlatform \"\u003e min_cpu_platform \u003c/span\u003e=\n\t\t\t\t\t\t\t\t\"AMD Milan\" is currently required.\n"},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled. \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM.\n"}},"type":"object","required":["confidentialInstanceType","enableConfidentialCompute"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateDisk:getInstanceTemplateDisk":{"properties":{"architecture":{"type":"string","description":"The architecture of the image. Allowed values are ARM64 or X86_64.\n"},"autoDelete":{"type":"boolean","description":"Whether or not the disk should be auto-deleted.\nThis defaults to true.\n"},"boot":{"type":"boolean","description":"Indicates that this is a boot disk.\n"},"deviceName":{"type":"string","description":"A unique device name that is reflected into the\n/dev/  tree of a Linux operating system running within the instance. If not\nspecified, the server chooses a default device name to apply to this disk.\n"},"diskEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateDiskDiskEncryptionKey:getInstanceTemplateDiskDiskEncryptionKey"},"description":"Encrypts or decrypts a disk using a customer-supplied encryption key.\n"},"diskName":{"type":"string","description":"Name of the disk. When not provided, this defaults\nto the name of the instance.\n"},"diskSizeGb":{"type":"integer","description":"The size of the image in gigabytes. If not\nspecified, it will inherit the size of its base image. For SCRATCH disks,\nthe size must be exactly 375GB.\n"},"diskType":{"type":"string","description":"The GCE disk type. Such as `\"pd-ssd\"`, `\"local-ssd\"`,\n`\"pd-balanced\"` or `\"pd-standard\"`.\n"},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images.\n"},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk,\nwhich is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI\nand the request will fail if you attempt to attach a persistent disk in any other format\nthan SCSI. Local SSDs can use either NVME or SCSI.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"(Optional) A set of ket/value label pairs to assign to disk created from\nthis template\n"},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE\nor READ_ONLY. If you are attaching or creating a boot disk, this must\nread-write mode.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This\nsets the number of I/O operations per second that the disk can handle.\nValues must be between 10,000 and 120,000. For more details, see the\n[Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk).\n"},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"resourcePolicies":{"type":"array","items":{"type":"string"},"description":"(Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.\n"},"source":{"type":"string","description":"The name (**not self_link**)\nof the disk (such as those managed by \u003cspan pulumi-lang-nodejs=\"`gcp.compute.Disk`\" pulumi-lang-dotnet=\"`gcp.compute.Disk`\" pulumi-lang-go=\"`compute.Disk`\" pulumi-lang-python=\"`compute.Disk`\" pulumi-lang-yaml=\"`gcp.compute.Disk`\" pulumi-lang-java=\"`gcp.compute.Disk`\"\u003e`gcp.compute.Disk`\u003c/span\u003e) to attach.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n"},"sourceImage":{"type":"string","description":"The image from which to\ninitialize this disk. This can be one of: the image's \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e,\n`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}`.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n"},"sourceImageEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateDiskSourceImageEncryptionKey:getInstanceTemplateDiskSourceImageEncryptionKey"},"description":"The customer-supplied encryption key of the source\nimage. Required if the source image is protected by a\ncustomer-supplied encryption key.\n\nInstance templates do not store customer-supplied\nencryption keys, so you cannot create disks for\ninstances in a managed instance group if the source\nimages are encrypted with your own keys.\n"},"sourceSnapshot":{"type":"string","description":"The source snapshot to create this disk. When creating\na new instance, one of initializeParams.sourceSnapshot,\ninitializeParams.sourceImage, or disks.source is\nrequired except for local SSD.\n"},"sourceSnapshotEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateDiskSourceSnapshotEncryptionKey:getInstanceTemplateDiskSourceSnapshotEncryptionKey"},"description":"The customer-supplied encryption key of the source snapshot.\n"},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["architecture","autoDelete","boot","deviceName","diskEncryptionKeys","diskName","diskSizeGb","diskType","guestOsFeatures","interface","labels","mode","provisionedIops","provisionedThroughput","resourceManagerTags","resourcePolicies","source","sourceImage","sourceImageEncryptionKeys","sourceSnapshot","sourceSnapshotEncryptionKeys","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateDiskDiskEncryptionKey:getInstanceTemplateDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateDiskSourceImageEncryptionKey:getInstanceTemplateDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption\nrequest for the given KMS key. If absent, the Compute\nEngine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateDiskSourceSnapshotEncryptionKey:getInstanceTemplateDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption\nrequest for the given KMS key. If absent, the Compute\nEngine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateGuestAccelerator:getInstanceTemplateGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n"},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["count","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateNetworkInterface:getInstanceTemplateNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateNetworkInterfaceAccessConfig:getInstanceTemplateNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this\ninstance can be accessed via the Internet. Omit to ensure that the instance\nis not accessible from the Internet (this means that ssh provisioners will\nnot work unless you are running the provider can send traffic to the instance's\nnetwork (e.g. via tunnel or because it is running on another cloud instance\non that network). This block can be repeated multiple times. Structure documented below.\n"},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateNetworkInterfaceAliasIpRange:getInstanceTemplateNetworkInterfaceAliasIpRange"},"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"},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n"},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateNetworkInterfaceIpv6AccessConfig:getInstanceTemplateNetworkInterfaceIpv6AccessConfig"},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n"},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n"},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"},"name":{"type":"string","description":"The name of the instance template. One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLinkUnique`\" pulumi-lang-dotnet=\"`SelfLinkUnique`\" pulumi-lang-go=\"`selfLinkUnique`\" pulumi-lang-python=\"`self_link_unique`\" pulumi-lang-yaml=\"`selfLinkUnique`\" pulumi-lang-java=\"`selfLinkUnique`\"\u003e`self_link_unique`\u003c/span\u003e must be provided.\n"},"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network to attach this interface to.\nUse \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e attribute for Legacy or Auto subnetted networks and\n\u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e for custom subnetted networks.\n"},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.\n"},"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, MRDMA, and IRDMA\n"},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"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"},"stackType":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.\n"},"subnetwork":{"type":"string","description":"the name of the subnetwork to attach this interface\nto. The subnetwork must exist in the same \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e this instance will be\ncreated in. Either \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e must be provided.\n"},"subnetworkProject":{"type":"string","description":"The ID of the project in which the subnetwork belongs.\nIf it is not provided, the provider project is used.\n"},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n"}},"type":"object","required":["accessConfigs","aliasIpRanges","igmpQuery","internalIpv6PrefixLength","ipv6AccessConfigs","ipv6AccessType","ipv6Address","name","network","networkAttachment","networkIp","nicType","parentNicName","queueCount","stackType","subnetwork","subnetworkProject","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateNetworkInterfaceAccessConfig:getInstanceTemplateNetworkInterfaceAccessConfig":{"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 [networking tier][network-tier] used for configuring\nthis instance template. This field can take the following values: PREMIUM or\nSTANDARD. If this field is not specified, it is assumed to be PREMIUM.\n"},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.\n"}},"type":"object","required":["natIp","networkTier","publicPtrDomainName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateNetworkInterfaceAliasIpRange:getInstanceTemplateNetworkInterfaceAliasIpRange":{"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. At the time of writing only a\nnetmask (e.g. /24) may be supplied, with a CIDR format resulting in an API\nerror.\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","subnetworkRangeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateNetworkInterfaceIpv6AccessConfig:getInstanceTemplateNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.\n"},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n"},"name":{"type":"string","description":"The name of the instance template. One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLinkUnique`\" pulumi-lang-dotnet=\"`SelfLinkUnique`\" pulumi-lang-go=\"`selfLinkUnique`\" pulumi-lang-python=\"`self_link_unique`\" pulumi-lang-yaml=\"`selfLinkUnique`\" pulumi-lang-java=\"`selfLinkUnique`\"\u003e`self_link_unique`\u003c/span\u003e must be provided.\n"},"networkTier":{"type":"string","description":"The [networking tier][network-tier] used for configuring\nthis instance template. This field can take the following values: PREMIUM or\nSTANDARD. If this field is not specified, it is assumed to be PREMIUM.\n"},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n"}},"type":"object","required":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateNetworkPerformanceConfig:getInstanceTemplateNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier for the instance.\n"}},"type":"object","required":["totalEgressBandwidthTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateReservationAffinity:getInstanceTemplateReservationAffinity":{"properties":{"specificReservations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateReservationAffinitySpecificReservation:getInstanceTemplateReservationAffinitySpecificReservation"},"description":"Specifies the label selector for the reservation to use.\n"},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["specificReservations","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateReservationAffinitySpecificReservation:getInstanceTemplateReservationAffinitySpecificReservation":{"properties":{"key":{"type":"string","description":"The key for the node affinity label.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Corresponds to the label values of a reservation resource.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateScheduling:getInstanceTemplateScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies whether the instance should be\nautomatically restarted if it is terminated by Compute Engine (not\nterminated by a user). This defaults to true.\n"},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain, which this instance should be scheduled on.\n"},"gracefulShutdowns":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateSchedulingGracefulShutdown:getInstanceTemplateSchedulingGracefulShutdown"},"description":"Settings for the instance to perform a graceful shutdown.\n"},"hostErrorTimeoutSeconds":{"type":"integer","description":"Beta Time in seconds for host error detection.\n"},"instanceTerminationAction":{"type":"string","description":"Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`.  Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n"},"localSsdRecoveryTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateSchedulingLocalSsdRecoveryTimeout:getInstanceTemplateSchedulingLocalSsdRecoveryTimeout"},"description":"Specifies the maximum amount of time a Local Ssd Vm should wait while\n  recovery of the Local Ssd state is attempted. Its value should be in\n  between 0 and 168 hours with hour granularity and the default value being 1\n  hour.\n"},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\n"},"maxRunDurations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateSchedulingMaxRunDuration:getInstanceTemplateSchedulingMaxRunDuration"},"description":"The timeout for new network connections to hosts.\n"},"minNodeCpus":{"type":"integer","description":"Minimum number of cpus for the instance.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateSchedulingNodeAffinity:getInstanceTemplateSchedulingNodeAffinity"},"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":"Defines the maintenance behavior for this\ninstance.\n"},"onInstanceStopActions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateSchedulingOnInstanceStopAction:getInstanceTemplateSchedulingOnInstanceStopAction"},"description":"Defines the behaviour for instances with the instance_termination_action.\n"},"preemptible":{"type":"boolean","description":"Allows instance to be preempted. This defaults to\nfalse. Read more on this\n[here](https://cloud.google.com/compute/docs/instances/preemptible).\n"},"provisioningModel":{"type":"string","description":"Describe the type of preemptible VM.\n"},"skipGuestOsShutdown":{"type":"boolean","description":"Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated,\nin RFC3339 text format. If specified, the instance termination action\nwill be performed at the termination time.\n"}},"type":"object","required":["automaticRestart","availabilityDomain","gracefulShutdowns","hostErrorTimeoutSeconds","instanceTerminationAction","localSsdRecoveryTimeouts","maintenanceInterval","maxRunDurations","minNodeCpus","nodeAffinities","onHostMaintenance","onInstanceStopActions","preemptible","provisioningModel","skipGuestOsShutdown","terminationTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateSchedulingGracefulShutdown:getInstanceTemplateSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n"},"maxDurations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getInstanceTemplateSchedulingGracefulShutdownMaxDuration:getInstanceTemplateSchedulingGracefulShutdownMaxDuration"},"description":"The time allotted for the instance to gracefully shut down.\n\t\t\t\t\t\t\t\t\t\tIf the graceful shutdown isn't complete after this time, then the instance\n\t\t\t\t\t\t\t\t\t\ttransitions to the STOPPING state.\n"}},"type":"object","required":["enabled","maxDurations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateSchedulingGracefulShutdownMaxDuration:getInstanceTemplateSchedulingGracefulShutdownMaxDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolution. Durations less than one second are represented\n\t\t\t\t\t\t\t\t\t\t\t\t\twith a 0 seconds field and a positive nanos field. Must\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\n\t\t\t\t\t\t\t\t\t\t\t\t\tThe value must be between 1 and 3600, which is 3,600 seconds (one hour).\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateSchedulingLocalSsdRecoveryTimeout:getInstanceTemplateSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateSchedulingMaxRunDuration:getInstanceTemplateSchedulingMaxRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateSchedulingNodeAffinity:getInstanceTemplateSchedulingNodeAffinity":{"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"}}},"type":"object","required":["key","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateSchedulingOnInstanceStopAction:getInstanceTemplateSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"If true, the contents of any attached Local SSD disks will be discarded.\n"}},"type":"object","required":["discardLocalSsd"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateServiceAccount:getInstanceTemplateServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address. If not given, the\ndefault Google Compute Engine service account is used.\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"}},"type":"object","required":["email","scopes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInstanceTemplateShieldedInstanceConfig:getInstanceTemplateShieldedInstanceConfig":{"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"},"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"},"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"}},"type":"object","required":["enableIntegrityMonitoring","enableSecureBoot","enableVtpm"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getInterconnectLocationsLocation:getInterconnectLocationsLocation":{"properties":{"address":{"type":"string","description":"The postal address of the Point of Presence.\n"},"availabilityZone":{"type":"string","description":"The availability zone for this InterconnectLocation.\n"},"availableFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features available at this InterconnectLocation.\n"},"availableLinkTypes":{"type":"array","items":{"type":"string"},"description":"A list of link types available at this InterconnectLocation.\n"},"city":{"type":"string","description":"The city for this location.\n"},"continent":{"type":"string","description":"The continent for this location.\n"},"description":{"type":"string","description":"A textual description of the resource.\n"},"facilityProvider":{"type":"string","description":"The name of the provider for this facility.\n"},"facilityProviderFacilityId":{"type":"string","description":"A provider-assigned Identifier for this facility.\n"},"name":{"type":"string"},"peeringdbFacilityId":{"type":"string","description":"The PeeringDB facility ID for this facility.\n"},"selfLink":{"type":"string","description":"The URI of the created resource.\n"},"status":{"type":"string","description":"The status of this InterconnectLocation.\n"},"supportsPzs":{"type":"boolean","description":"Reserved for future use.\n"}},"type":"object","required":["address","availabilityZone","availableFeatures","availableLinkTypes","city","continent","description","facilityProvider","facilityProviderFacilityId","name","peeringdbFacilityId","selfLink","status","supportsPzs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getMachineTypesMachineType:getMachineTypesMachineType":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:compute/getMachineTypesMachineTypeAccelerator:getMachineTypesMachineTypeAccelerator"},"description":"A list of accelerator configurations assigned to this machine type. Structure is documented below.\n"},"bundledLocalSsds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getMachineTypesMachineTypeBundledLocalSsd:getMachineTypesMachineTypeBundledLocalSsd"},"description":"(Beta) The configuration of bundled local SSD for the machine type. Structure is documented below.\n"},"deprecateds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getMachineTypesMachineTypeDeprecated:getMachineTypesMachineTypeDeprecated"},"description":"The deprecation status associated with this machine type. Structure is documented below.\n"},"description":{"type":"string","description":"A textual description of the machine type.\n"},"guestCpus":{"type":"integer","description":"The number of virtual CPUs that are available to the instance.\n"},"isSharedCpus":{"type":"boolean","description":"Whether this machine type has a shared CPU.\n"},"maximumPersistentDisks":{"type":"integer","description":"The maximum persistent disks allowed.\n"},"maximumPersistentDisksSizeGb":{"type":"integer","description":"The maximum total persistent disks size (GB) allowed.\n"},"memoryMb":{"type":"integer","description":"The amount of physical memory available to the instance, defined in MB.\n"},"name":{"type":"string","description":"The name of the machine type.\n"},"selfLink":{"type":"string","description":"The server-defined URL for the machine type.\n"}},"type":"object","required":["accelerators","bundledLocalSsds","deprecateds","description","guestCpus","isSharedCpus","maximumPersistentDisks","maximumPersistentDisksSizeGb","memoryMb","name","selfLink"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getMachineTypesMachineTypeAccelerator:getMachineTypesMachineTypeAccelerator":{"properties":{"guestAcceleratorCount":{"type":"integer","description":"Number of accelerator cards exposed to the guest.\n"},"guestAcceleratorType":{"type":"string","description":"The accelerator type resource name, not a full URL, e.g. `nvidia-tesla-t4`.\n"}},"type":"object","required":["guestAcceleratorCount","guestAcceleratorType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getMachineTypesMachineTypeBundledLocalSsd:getMachineTypesMachineTypeBundledLocalSsd":{"properties":{"defaultInterface":{"type":"string","description":"(Beta) The default disk interface if the interface is not specified.\n"},"partitionCount":{"type":"integer","description":"(Beta) The number of partitions.\n"}},"type":"object","required":["defaultInterface","partitionCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getMachineTypesMachineTypeDeprecated:getMachineTypesMachineTypeDeprecated":{"properties":{"replacement":{"type":"string","description":"The URL of the suggested replacement for a deprecated machine type.\n"},"state":{"type":"string","description":"The deprecation state of this resource. This can be `ACTIVE`, `DEPRECATED`, `OBSOLETE`, or `DELETED`.\n"}},"type":"object","required":["replacement","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getNetworkAttachmentConnectionEndpoint:getNetworkAttachmentConnectionEndpoint":{"properties":{"ipAddress":{"type":"string","description":"The IPv4 address assigned to the producer instance network interface. This value will be a range in case of Serverless.\n"},"projectIdOrNum":{"type":"string","description":"The project id or number of the interface to which the IP was assigned.\n"},"secondaryIpCidrRanges":{"type":"string","description":"Alias IP ranges from the same subnetwork.\n"},"status":{"type":"string","description":"The status of a connected endpoint to this network attachment.\n"},"subnetwork":{"type":"string","description":"The subnetwork used to assign the IP to the producer instance network interface.\n"}},"type":"object","required":["ipAddress","projectIdOrNum","secondaryIpCidrRanges","status","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceBackend:getRegionBackendServiceBackend":{"properties":{"balancingMode":{"type":"string","description":"Specifies the balancing mode for this backend.\n\nSee the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)\nfor an explanation of load balancing modes. Default value: \"UTILIZATION\" Possible values: [\"UTILIZATION\", \"RATE\", \"CONNECTION\", \"CUSTOM_METRICS\"]\n"},"capacityScaler":{"type":"number","description":"A multiplier applied to the group's maximum servicing capacity\n(based on UTILIZATION, RATE or CONNECTION).\n\n~\u003e**NOTE**: This field cannot be set for\nINTERNAL region backend services (default loadBalancingScheme),\nbut is required for non-INTERNAL backend service. The total\u003cspan pulumi-lang-nodejs=\"\ncapacityScaler \" pulumi-lang-dotnet=\"\nCapacityScaler \" pulumi-lang-go=\"\ncapacityScaler \" pulumi-lang-python=\"\ncapacity_scaler \" pulumi-lang-yaml=\"\ncapacityScaler \" pulumi-lang-java=\"\ncapacityScaler \"\u003e\ncapacity_scaler \u003c/span\u003efor all backends must be non-zero.\n\nA setting of 0 means the group is completely drained, offering\n0% of its available Capacity. Valid range is [0.0,1.0].\n"},"customMetrics":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceBackendCustomMetric:getRegionBackendServiceBackendCustomMetric"},"description":"The set of custom metrics that are used for \u003ccode\u003eCUSTOM_METRICS\u003c/code\u003e BalancingMode.\n"},"description":{"type":"string","description":"An optional description of this resource.\nProvide this property when you create the resource.\n"},"failover":{"type":"boolean","description":"This field designates whether this is a failover backend. More\nthan one failover backend can be configured for a given RegionBackendService.\n"},"group":{"type":"string","description":"The fully-qualified URL of an Instance Group or Network Endpoint\nGroup resource. In case of instance group this defines the list\nof instances that serve traffic. Member virtual machine\ninstances from each instance group must live in the same zone as\nthe instance group itself. No two backends in a backend service\nare allowed to use same Instance Group resource.\n\nFor Network Endpoint Groups this defines list of endpoints. All\nendpoints of Network Endpoint Group must be hosted on instances\nlocated in the same zone as the Network Endpoint Group.\n\nBackend services cannot mix Instance Group and\nNetwork Endpoint Group backends.\n\nWhen the 'load_balancing_scheme' is INTERNAL, only instance groups\nare supported.\n\nNote that you must specify an Instance Group or Network Endpoint\nGroup resource using the fully-qualified URL, rather than a\npartial URL.\n"},"maxConnections":{"type":"integer","description":"The max number of simultaneous connections for the group. Can\nbe used with either CONNECTION or UTILIZATION balancing modes.\nCannot be set for INTERNAL backend services.\n\nFor CONNECTION mode, either maxConnections or one\nof maxConnectionsPerInstance or maxConnectionsPerEndpoint,\nas appropriate for group type, must be set.\n"},"maxConnectionsPerEndpoint":{"type":"integer","description":"The max number of simultaneous connections that a single backend\nnetwork endpoint can handle. Cannot be set\nfor INTERNAL backend services.\n\nThis is used to calculate the capacity of the group. Can be\nused in either CONNECTION or UTILIZATION balancing modes. For\nCONNECTION mode, either maxConnections or\nmaxConnectionsPerEndpoint must be set.\n"},"maxConnectionsPerInstance":{"type":"integer","description":"The max number of simultaneous connections that a single\nbackend instance can handle. Cannot be set for INTERNAL backend\nservices.\n\nThis is used to calculate the capacity of the group.\nCan be used in either CONNECTION or UTILIZATION balancing modes.\nFor CONNECTION mode, either maxConnections or\nmaxConnectionsPerInstance must be set.\n"},"maxInFlightRequests":{"type":"integer","description":"Defines a maximum number of in-flight requests for the whole NEG\nor instance group. Not available if backend's balancingMode is RATE\nor CONNECTION.\n"},"maxInFlightRequestsPerEndpoint":{"type":"integer","description":"Defines a maximum number of in-flight requests for a single endpoint.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxInFlightRequestsPerInstance":{"type":"integer","description":"Defines a maximum number of in-flight requests for a single VM.\nNot available if backend's balancingMode is RATE or CONNECTION.\n"},"maxRate":{"type":"integer","description":"The max requests per second (RPS) of the group. Cannot be set\nfor INTERNAL backend services.\n\nCan be used with either RATE or UTILIZATION balancing modes,\nbut required if RATE mode. Either maxRate or one\nof maxRatePerInstance or maxRatePerEndpoint, as appropriate for\ngroup type, must be set.\n"},"maxRatePerEndpoint":{"type":"number","description":"The max requests per second (RPS) that a single backend network\nendpoint can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerEndpoint must be set. Cannot be set\nfor INTERNAL backend services.\n"},"maxRatePerInstance":{"type":"number","description":"The max requests per second (RPS) that a single backend\ninstance can handle. This is used to calculate the capacity of\nthe group. Can be used in either balancing mode. For RATE mode,\neither maxRate or maxRatePerInstance must be set. Cannot be set\nfor INTERNAL backend services.\n"},"maxUtilization":{"type":"number","description":"Used when balancingMode is UTILIZATION. This ratio defines the\nCPU utilization target for the group. Valid range is [0.0, 1.0].\nCannot be set for INTERNAL backend services.\n"},"trafficDuration":{"type":"string","description":"This field specifies how long a connection should be kept alive for:\n- LONG: Most of the requests are expected to take more than multiple\n  seconds to finish.\n- SHORT: Most requests are expected to finish with a sub-second latency. Possible values: [\"LONG\", \"SHORT\"]\n"}},"type":"object","required":["balancingMode","capacityScaler","customMetrics","description","failover","group","maxConnections","maxConnectionsPerEndpoint","maxConnectionsPerInstance","maxInFlightRequests","maxInFlightRequestsPerEndpoint","maxInFlightRequestsPerInstance","maxRate","maxRatePerEndpoint","maxRatePerInstance","maxUtilization","trafficDuration"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceBackendCustomMetric:getRegionBackendServiceBackendCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is collected and reported to Cloud\nMonitoring, but is not used for load balancing.\n"},"maxUtilization":{"type":"number","description":"Optional parameter to define a target utilization for the Custom Metrics\nbalancing mode. The valid range is \u003ccode\u003e[0.0, 1.0]\u003c/code\u003e.\n"},"name":{"type":"string","description":"The name of the regional backend service.\n"}},"type":"object","required":["dryRun","maxUtilization","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceCdnPolicy:getRegionBackendServiceCdnPolicy":{"properties":{"cacheKeyPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceCdnPolicyCacheKeyPolicy:getRegionBackendServiceCdnPolicyCacheKeyPolicy"},"description":"The CacheKeyPolicy for this CdnPolicy.\n"},"cacheMode":{"type":"string","description":"Specifies the cache setting for all responses from this backend.\nThe possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: [\"USE_ORIGIN_HEADERS\", \"FORCE_CACHE_ALL\", \"CACHE_ALL_STATIC\"]\n"},"clientTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"defaultTtl":{"type":"integer","description":"Specifies the default TTL for cached content served by this origin for responses\nthat do not have an existing valid TTL (max-age or s-max-age).\n"},"maxTtl":{"type":"integer","description":"Specifies the maximum allowed TTL for cached content served by this origin.\n"},"negativeCaching":{"type":"boolean","description":"Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects.\n"},"negativeCachingPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceCdnPolicyNegativeCachingPolicy:getRegionBackendServiceCdnPolicyNegativeCachingPolicy"},"description":"Sets a cache TTL for the specified HTTP status code. negativeCaching must be enabled to configure negativeCachingPolicy.\nOmitting the policy and leaving negativeCaching enabled will use Cloud CDN's default cache TTLs.\n"},"serveWhileStale":{"type":"integer","description":"Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache.\n"},"signedUrlCacheMaxAgeSec":{"type":"integer","description":"Maximum number of seconds the response to a signed URL request\nwill be considered fresh, defaults to 1hr (3600s). After this\ntime period, the response will be revalidated before\nbeing served.\n\nWhen serving responses to signed URL requests, Cloud CDN will\ninternally behave as though all responses from this backend had a\n\"Cache-Control: public, max-age=[TTL]\" header, regardless of any\nexisting Cache-Control header. The actual headers served in\nresponses will not be altered.\n"}},"type":"object","required":["cacheKeyPolicies","cacheMode","clientTtl","defaultTtl","maxTtl","negativeCaching","negativeCachingPolicies","serveWhileStale","signedUrlCacheMaxAgeSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceCdnPolicyCacheKeyPolicy:getRegionBackendServiceCdnPolicyCacheKeyPolicy":{"properties":{"includeHost":{"type":"boolean","description":"If true requests to different hosts will be cached separately.\n"},"includeNamedCookies":{"type":"array","items":{"type":"string"},"description":"Names of cookies to include in cache keys.\n"},"includeProtocol":{"type":"boolean","description":"If true, http and https requests will be cached separately.\n"},"includeQueryString":{"type":"boolean","description":"If true, include query string parameters in the cache key\naccording to\u003cspan pulumi-lang-nodejs=\" queryStringWhitelist \" pulumi-lang-dotnet=\" QueryStringWhitelist \" pulumi-lang-go=\" queryStringWhitelist \" pulumi-lang-python=\" query_string_whitelist \" pulumi-lang-yaml=\" queryStringWhitelist \" pulumi-lang-java=\" queryStringWhitelist \"\u003e query_string_whitelist \u003c/span\u003eand\nquery_string_blacklist. If neither is set, the entire query\nstring will be included.\n\nIf false, the query string will be excluded from the cache\nkey entirely.\n"},"queryStringBlacklists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to exclude in cache keys.\n\nAll other parameters will be included. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"},"queryStringWhitelists":{"type":"array","items":{"type":"string"},"description":"Names of query string parameters to include in cache keys.\n\nAll other parameters will be excluded. Either specify\u003cspan pulumi-lang-nodejs=\"\nqueryStringWhitelist \" pulumi-lang-dotnet=\"\nQueryStringWhitelist \" pulumi-lang-go=\"\nqueryStringWhitelist \" pulumi-lang-python=\"\nquery_string_whitelist \" pulumi-lang-yaml=\"\nqueryStringWhitelist \" pulumi-lang-java=\"\nqueryStringWhitelist \"\u003e\nquery_string_whitelist \u003c/span\u003eor query_string_blacklist, not both.\n'\u0026' and '=' will be percent encoded and not treated as\ndelimiters.\n"}},"type":"object","required":["includeHost","includeNamedCookies","includeProtocol","includeQueryString","queryStringBlacklists","queryStringWhitelists"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceCdnPolicyNegativeCachingPolicy:getRegionBackendServiceCdnPolicyNegativeCachingPolicy":{"properties":{"code":{"type":"integer","description":"The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501\ncan be specified as values, and you cannot specify a status code more than once.\n"},"ttl":{"type":"integer","description":"The TTL (in seconds) for which to cache responses with the corresponding status code. The maximum allowed value is 1800s\n(30 minutes), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.\n"}},"type":"object","required":["code","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceCircuitBreaker:getRegionBackendServiceCircuitBreaker":{"properties":{"connectTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceCircuitBreakerConnectTimeout:getRegionBackendServiceCircuitBreakerConnectTimeout"},"description":"The timeout for new network connections to hosts.\n"},"maxConnections":{"type":"integer","description":"The maximum number of connections to the backend cluster.\nDefaults to 1024.\n"},"maxPendingRequests":{"type":"integer","description":"The maximum number of pending requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequests":{"type":"integer","description":"The maximum number of parallel requests to the backend cluster.\nDefaults to 1024.\n"},"maxRequestsPerConnection":{"type":"integer","description":"Maximum requests for a single backend connection. This parameter\nis respected by both the HTTP/1.1 and HTTP/2 implementations. If\nnot specified, there is no limit. Setting this parameter to 1\nwill effectively disable keep alive.\n"},"maxRetries":{"type":"integer","description":"The maximum number of parallel retries to the backend cluster.\nDefaults to 3.\n"}},"type":"object","required":["connectTimeouts","maxConnections","maxPendingRequests","maxRequests","maxRequestsPerConnection","maxRetries"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceCircuitBreakerConnectTimeout:getRegionBackendServiceCircuitBreakerConnectTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceConnectionTrackingPolicy:getRegionBackendServiceConnectionTrackingPolicy":{"properties":{"connectionPersistenceOnUnhealthyBackends":{"type":"string","description":"Specifies connection persistence when backends are unhealthy.\n\nIf set to 'DEFAULT_FOR_PROTOCOL', the existing connections persist on\nunhealthy backends only for connection-oriented protocols (TCP and SCTP)\nand only if the Tracking Mode is PER_CONNECTION (default tracking mode)\nor the Session Affinity is configured for 5-tuple. They do not persist\nfor UDP.\n\nIf set to 'NEVER_PERSIST', after a backend becomes unhealthy, the existing\nconnections on the unhealthy backend are never persisted on the unhealthy\nbackend. They are always diverted to newly selected healthy backends\n(unless all backends are unhealthy).\n\nIf set to 'ALWAYS_PERSIST', existing connections always persist on\nunhealthy backends regardless of protocol and session affinity. It is\ngenerally not recommended to use this mode overriding the default. Default value: \"DEFAULT_FOR_PROTOCOL\" Possible values: [\"DEFAULT_FOR_PROTOCOL\", \"NEVER_PERSIST\", \"ALWAYS_PERSIST\"]\n"},"enableStrongAffinity":{"type":"boolean","description":"Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly.\n"},"idleTimeoutSec":{"type":"integer","description":"Specifies how long to keep a Connection Tracking entry while there is\nno matching traffic (in seconds).\n\nFor L4 ILB the minimum(default) is 10 minutes and maximum is 16 hours.\n\nFor NLB the minimum(default) is 60 seconds and the maximum is 16 hours.\n"},"trackingMode":{"type":"string","description":"Specifies the key used for connection tracking. There are two options:\n'PER_CONNECTION': The Connection Tracking is performed as per the\nConnection Key (default Hash Method) for the specific protocol.\n\n'PER_SESSION': The Connection Tracking is performed as per the\nconfigured Session Affinity. It matches the configured Session Affinity. Default value: \"PER_CONNECTION\" Possible values: [\"PER_CONNECTION\", \"PER_SESSION\"]\n"}},"type":"object","required":["connectionPersistenceOnUnhealthyBackends","enableStrongAffinity","idleTimeoutSec","trackingMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceConsistentHash:getRegionBackendServiceConsistentHash":{"properties":{"httpCookies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceConsistentHashHttpCooky:getRegionBackendServiceConsistentHashHttpCooky"},"description":"Hash is based on HTTP Cookie. This field describes a HTTP cookie\nthat will be used as the hash key for the consistent hash load\nbalancer. If the cookie is not present, it will be generated.\nThis field is applicable if the sessionAffinity is set to HTTP_COOKIE.\n"},"httpHeaderName":{"type":"string","description":"The hash based on the value of the specified header field.\nThis field is applicable if the sessionAffinity is set to HEADER_FIELD.\n"},"minimumRingSize":{"type":"integer","description":"The minimum number of virtual nodes to use for the hash ring.\nLarger ring sizes result in more granular load\ndistributions. If the number of hosts in the load balancing pool\nis larger than the ring size, each host will be assigned a single\nvirtual node.\nDefaults to 1024.\n"}},"type":"object","required":["httpCookies","httpHeaderName","minimumRingSize"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceConsistentHashHttpCooky:getRegionBackendServiceConsistentHashHttpCooky":{"properties":{"name":{"type":"string","description":"The name of the regional backend service.\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttls":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceConsistentHashHttpCookyTtl:getRegionBackendServiceConsistentHashHttpCookyTtl"},"description":"Lifetime of the cookie.\n"}},"type":"object","required":["name","path","ttls"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceConsistentHashHttpCookyTtl:getRegionBackendServiceConsistentHashHttpCookyTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceCustomMetric:getRegionBackendServiceCustomMetric":{"properties":{"dryRun":{"type":"boolean","description":"If true, the metric data is not used for load balancing.\n"},"name":{"type":"string","description":"The name of the regional backend service.\n"}},"type":"object","required":["dryRun","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceDynamicForwarding:getRegionBackendServiceDynamicForwarding":{"properties":{"ipPortSelections":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceDynamicForwardingIpPortSelection:getRegionBackendServiceDynamicForwardingIpPortSelection"},"description":"IP:PORT based dynamic forwarding configuration.\n"}},"type":"object","required":["ipPortSelections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceDynamicForwardingIpPortSelection:getRegionBackendServiceDynamicForwardingIpPortSelection":{"properties":{"enabled":{"type":"boolean","description":"A boolean flag enabling IP:PORT based dynamic forwarding.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceFailoverPolicy:getRegionBackendServiceFailoverPolicy":{"properties":{"disableConnectionDrainOnFailover":{"type":"boolean","description":"On failover or failback, this field indicates whether connection drain\nwill be honored. Setting this to true has the following effect: connections\nto the old active pool are not drained. Connections to the new active pool\nuse the timeout of 10 min (currently fixed). Setting to false has the\nfollowing effect: both old and new connections will have a drain timeout\nof 10 min.\nThis can be set to true only if the protocol is TCP.\nThe default is false.\n"},"dropTrafficIfUnhealthy":{"type":"boolean","description":"This option is used only when no healthy VMs are detected in the primary\nand backup instance groups. When set to true, traffic is dropped. When\nset to false, new connections are sent across all VMs in the primary group.\nThe default is false.\n"},"failoverRatio":{"type":"number","description":"The value of the field must be in [0, 1]. If the ratio of the healthy\nVMs in the primary backend is at or below this number, traffic arriving\nat the load-balanced IP will be directed to the failover backend.\nIn case where 'failoverRatio' is not set or all the VMs in the backup\nbackend are unhealthy, the traffic will be directed back to the primary\nbackend in the \"force\" mode, where traffic will be spread to the healthy\nVMs with the best effort, or to all VMs when no VM is healthy.\nThis field is only used with l4 load balancing.\n"}},"type":"object","required":["disableConnectionDrainOnFailover","dropTrafficIfUnhealthy","failoverRatio"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceHaPolicy:getRegionBackendServiceHaPolicy":{"properties":{"fastIpMove":{"type":"string","description":"Specifies whether fast IP move is enabled, and if so, the mechanism to achieve it.\nSupported values are:\n\n* 'DISABLED': Fast IP Move is disabled. You can only use the haPolicy.leader API to\n              update the leader.\n\n* 'GARP_RA': Provides a method to very quickly define a new network endpoint as the\n             leader. This method is faster than updating the leader using the\n             haPolicy.leader API. Fast IP move works as follows: The VM hosting the\n             network endpoint that should become the new leader sends either a\n             Gratuitous ARP (GARP) packet (IPv4) or an ICMPv6 Router Advertisement(RA)\n             packet (IPv6). Google Cloud immediately but temporarily associates the\n             forwarding rule IP address with that VM, and both new and in-flight packets\n             are quickly delivered to that VM. Possible values: [\"DISABLED\", \"GARP_RA\"]\n"},"leaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceHaPolicyLeader:getRegionBackendServiceHaPolicyLeader"},"description":"Selects one of the network endpoints attached to the backend NEGs of this service as the\nactive endpoint (the leader) that receives all traffic.\n"}},"type":"object","required":["fastIpMove","leaders"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceHaPolicyLeader:getRegionBackendServiceHaPolicyLeader":{"properties":{"backendGroup":{"type":"string","description":"A fully-qualified URL of the zonal Network Endpoint Group (NEG) that the leader is\nattached to.\n"},"networkEndpoints":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceHaPolicyLeaderNetworkEndpoint:getRegionBackendServiceHaPolicyLeaderNetworkEndpoint"},"description":"The network endpoint within the leader.backendGroup that is designated as the leader.\n"}},"type":"object","required":["backendGroup","networkEndpoints"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceHaPolicyLeaderNetworkEndpoint:getRegionBackendServiceHaPolicyLeaderNetworkEndpoint":{"properties":{"instance":{"type":"string","description":"The name of the VM instance of the leader network endpoint. The instance must\nalready be attached to the NEG specified in the haPolicy.leader.backendGroup.\n"}},"type":"object","required":["instance"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceIap:getRegionBackendServiceIap":{"properties":{"enabled":{"type":"boolean","description":"Whether the serving infrastructure will authenticate and authorize all incoming requests.\n"},"oauth2ClientId":{"type":"string","description":"OAuth2 Client ID for IAP\n"},"oauth2ClientSecret":{"type":"string","description":"OAuth2 Client Secret for IAP\n"},"oauth2ClientSecretSha256":{"type":"string","description":"OAuth2 Client Secret SHA-256 for IAP\n"}},"type":"object","required":["enabled","oauth2ClientId","oauth2ClientSecret","oauth2ClientSecretSha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceLogConfig:getRegionBackendServiceLogConfig":{"properties":{"enable":{"type":"boolean","description":"Whether to enable logging for the load balancer traffic served by this backend service.\n"},"optionalFields":{"type":"array","items":{"type":"string"},"description":"Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.\n"},"optionalMode":{"type":"string","description":"Specifies the optional logging mode for the load balancer traffic.\nSupported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM. Possible values: [\"INCLUDE_ALL_OPTIONAL\", \"EXCLUDE_ALL_OPTIONAL\", \"CUSTOM\"]\n"},"sampleRate":{"type":"number","description":"This field can only be specified if logging is enabled for this backend service. The value of\nthe field must be in [0, 1]. This configures the sampling rate of requests to the load balancer\nwhere 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.\nThe default value is 1.0.\n"}},"type":"object","required":["enable","optionalFields","optionalMode","sampleRate"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceNetworkPassThroughLbTrafficPolicy:getRegionBackendServiceNetworkPassThroughLbTrafficPolicy":{"properties":{"zonalAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:getRegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity"},"description":"When configured, new connections are load balanced across healthy backend endpoints in the local zone.\n"}},"type":"object","required":["zonalAffinities"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity:getRegionBackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity":{"properties":{"spillover":{"type":"string","description":"This field indicates whether zonal affinity is enabled or not. Default value: \"ZONAL_AFFINITY_DISABLED\" Possible values: [\"ZONAL_AFFINITY_DISABLED\", \"ZONAL_AFFINITY_SPILL_CROSS_ZONE\", \"ZONAL_AFFINITY_STAY_WITHIN_ZONE\"]\n"},"spilloverRatio":{"type":"number","description":"The value of the field must be in [0, 1]. When the ratio of the count of healthy backend endpoints in a zone\nto the count of backend endpoints in that same zone is equal to or above this threshold, the load balancer\ndistributes new connections to all healthy endpoints in the local zone only. When the ratio of the count\nof healthy backend endpoints in a zone to the count of backend endpoints in that same zone is below this\nthreshold, the load balancer distributes all new connections to all healthy endpoints across all zones.\n"}},"type":"object","required":["spillover","spilloverRatio"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceOutlierDetection:getRegionBackendServiceOutlierDetection":{"properties":{"baseEjectionTimes":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceOutlierDetectionBaseEjectionTime:getRegionBackendServiceOutlierDetectionBaseEjectionTime"},"description":"The base time that a host is ejected for. The real time is equal to the base\ntime multiplied by the number of times the host has been ejected. Defaults to\n30000ms or 30s.\n"},"consecutiveErrors":{"type":"integer","description":"Number of errors before a host is ejected from the connection pool. When the\nbackend host is accessed over HTTP, a 5xx return code qualifies as an error.\nDefaults to 5.\n"},"consecutiveGatewayFailure":{"type":"integer","description":"The number of consecutive gateway failures (502, 503, 504 status or connection\nerrors that are mapped to one of those status codes) before a consecutive\ngateway failure ejection occurs. Defaults to 5.\n"},"enforcingConsecutiveErrors":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive 5xx. This setting can be used to disable\nejection or to ramp it up slowly. Defaults to 100.\n"},"enforcingConsecutiveGatewayFailure":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through consecutive gateway failures. This setting can be\nused to disable ejection or to ramp it up slowly. Defaults to 0.\n"},"enforcingSuccessRate":{"type":"integer","description":"The percentage chance that a host will be actually ejected when an outlier\nstatus is detected through success rate statistics. This setting can be used to\ndisable ejection or to ramp it up slowly. Defaults to 100.\n"},"intervals":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceOutlierDetectionInterval:getRegionBackendServiceOutlierDetectionInterval"},"description":"Time interval between ejection sweep analysis. This can result in both new\nejections as well as hosts being returned to service. Defaults to 10 seconds.\n"},"maxEjectionPercent":{"type":"integer","description":"Maximum percentage of hosts in the load balancing pool for the backend service\nthat can be ejected. Defaults to 10%.\n"},"successRateMinimumHosts":{"type":"integer","description":"The number of hosts in a cluster that must have enough request volume to detect\nsuccess rate outliers. If the number of hosts is less than this setting, outlier\ndetection via success rate statistics is not performed for any host in the\ncluster. Defaults to 5.\n"},"successRateRequestVolume":{"type":"integer","description":"The minimum number of total requests that must be collected in one interval (as\ndefined by the interval duration above) to include this host in success rate\nbased outlier detection. If the volume is lower than this setting, outlier\ndetection via success rate statistics is not performed for that host. Defaults\nto 100.\n"},"successRateStdevFactor":{"type":"integer","description":"This factor is used to determine the ejection threshold for success rate outlier\nejection. The ejection threshold is the difference between the mean success\nrate, and the product of this factor and the standard deviation of the mean\nsuccess rate: mean - (stdev * success_rate_stdev_factor). This factor is divided\nby a thousand to get a double. That is, if the desired factor is 1.9, the\nruntime value should be 1900. Defaults to 1900.\n"}},"type":"object","required":["baseEjectionTimes","consecutiveErrors","consecutiveGatewayFailure","enforcingConsecutiveErrors","enforcingConsecutiveGatewayFailure","enforcingSuccessRate","intervals","maxEjectionPercent","successRateMinimumHosts","successRateRequestVolume","successRateStdevFactor"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceOutlierDetectionBaseEjectionTime:getRegionBackendServiceOutlierDetectionBaseEjectionTime":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceOutlierDetectionInterval:getRegionBackendServiceOutlierDetectionInterval":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond resolution. Durations\nless than one second are represented with a 0 'seconds' field and a positive\n'nanos' field. Must be from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second. Must be from 0 to 315,576,000,000\ninclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceParam:getRegionBackendServiceParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the region backend service. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceStrongSessionAffinityCooky:getRegionBackendServiceStrongSessionAffinityCooky":{"properties":{"name":{"type":"string","description":"The name of the regional backend service.\n"},"path":{"type":"string","description":"Path to set for the cookie.\n"},"ttls":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceStrongSessionAffinityCookyTtl:getRegionBackendServiceStrongSessionAffinityCookyTtl"},"description":"Lifetime of the cookie.\n"}},"type":"object","required":["name","path","ttls"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceStrongSessionAffinityCookyTtl:getRegionBackendServiceStrongSessionAffinityCookyTtl":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceSubsetting:getRegionBackendServiceSubsetting":{"properties":{"policy":{"type":"string","description":"The algorithm used for subsetting. Possible values: [\"CONSISTENT_HASH_SUBSETTING\"]\n"},"subsetSize":{"type":"integer","description":"The number of backends per backend group assigned to each proxy instance or each service mesh client.\nAn input parameter to the CONSISTENT_HASH_SUBSETTING algorithm. Can only be set if policy is set to\nCONSISTENT_HASH_SUBSETTING. Can only be set if load balancing scheme is INTERNAL_MANAGED or INTERNAL_SELF_MANAGED.\nsubsetSize is optional for Internal HTTP(S) load balancing and required for Traffic Director.\nIf you do not provide this value, Cloud Load Balancing will calculate it dynamically to optimize the number\nof proxies/clients visible to each backend and vice versa.\nMust be greater than 0. If subsetSize is larger than the number of backends/endpoints, then subsetting is disabled.\n"}},"type":"object","required":["policy","subsetSize"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceTlsSetting:getRegionBackendServiceTlsSetting":{"properties":{"authenticationConfig":{"type":"string","description":"Reference to the BackendAuthenticationConfig resource from the networksecurity.googleapis.com namespace.\nCan be used in authenticating TLS connections to the backend, as specified by the authenticationMode field.\nCan only be specified if authenticationMode is not NONE.\n"},"sni":{"type":"string","description":"Server Name Indication - see RFC3546 section 3.1. If set, the load balancer sends this string as the SNI hostname in the\nTLS connection to the backend, and requires that this string match a Subject Alternative Name (SAN) in the backend's\nserver certificate. With a Regional Internet NEG backend, if the SNI is specified here, the load balancer uses it\nregardless of whether the Regional Internet NEG is specified with FQDN or IP address and port.\n"},"subjectAltNames":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionBackendServiceTlsSettingSubjectAltName:getRegionBackendServiceTlsSettingSubjectAltName"},"description":"A list of Subject Alternative Names (SANs) that the Load Balancer verifies during a TLS handshake with the backend.\nWhen the server presents its X.509 certificate to the Load Balancer, the Load Balancer inspects the certificate's SAN field,\nand requires that at least one SAN match one of the subjectAltNames in the list. This field is limited to 5 entries.\nWhen both sni and subjectAltNames are specified, the load balancer matches the backend certificate's SAN only to\nsubjectAltNames.\n"}},"type":"object","required":["authenticationConfig","sni","subjectAltNames"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionBackendServiceTlsSettingSubjectAltName:getRegionBackendServiceTlsSettingSubjectAltName":{"properties":{"dnsName":{"type":"string","description":"The SAN specified as a DNS Name.\n"},"uniformResourceIdentifier":{"type":"string","description":"The SAN specified as a URI.\n"}},"type":"object","required":["dnsName","uniformResourceIdentifier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionDiskAsyncPrimaryDisk:getRegionDiskAsyncPrimaryDisk":{"properties":{"disk":{"type":"string","description":"Primary disk for asynchronous disk replication.\n"}},"type":"object","required":["disk"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionDiskDiskEncryptionKey:getRegionDiskDiskEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit\ncustomer-supplied encryption key to either encrypt or decrypt\nthis resource. You can provide either the rawKey or the rsaEncryptedKey.\n"},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","required":["kmsKeyName","rawKey","rsaEncryptedKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionDiskGuestOsFeature:getRegionDiskGuestOsFeature":{"properties":{"type":{"type":"string","description":"The type of supported feature. Read [Enabling guest operating system features](https://cloud.google.com/compute/docs/images/create-delete-deprecate-private-images#guest-os-features) to see a list of available options. Possible values: [\"MULTI_IP_SUBNET\", \"SECURE_BOOT\", \"SEV_CAPABLE\", \"UEFI_COMPATIBLE\", \"VIRTIO_SCSI_MULTIQUEUE\", \"WINDOWS\", \"GVNIC\", \"SEV_LIVE_MIGRATABLE\", \"SEV_SNP_CAPABLE\", \"SUSPEND_RESUME_COMPATIBLE\", \"TDX_CAPABLE\"]\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionDiskSourceSnapshotEncryptionKey:getRegionDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeyName":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","required":["kmsKeyName","rawKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupInstance:getRegionInstanceGroupInstance":{"properties":{"instance":{"type":"string","description":"URL to the instance.\n"},"namedPorts":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupInstanceNamedPort:getRegionInstanceGroupInstanceNamedPort"},"description":"List of named ports in the group, as a list of resources, each containing:\n"},"status":{"type":"string","description":"String description of current state of the instance.\n"}},"type":"object","required":["instance","namedPorts","status"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupInstanceNamedPort:getRegionInstanceGroupInstanceNamedPort":{"properties":{"name":{"type":"string","description":"The name of the instance group.  One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"port":{"type":"integer","description":"Integer port number\n"}},"type":"object","required":["name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerAllInstancesConfig:getRegionInstanceGroupManagerAllInstancesConfig":{"properties":{"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The label key-value pairs that you want to patch onto the instance,\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,\n"}},"type":"object","required":["labels","metadata"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerAutoHealingPolicy:getRegionInstanceGroupManagerAutoHealingPolicy":{"properties":{"healthCheck":{"type":"string","description":"The health check resource that signals autohealing.\n"},"initialDelaySec":{"type":"integer","description":"The number of seconds that the managed instance group waits before it applies autohealing policies to new instances or recently recreated instances. Between 0 and 3600.\n"}},"type":"object","required":["healthCheck","initialDelaySec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicy:getRegionInstanceGroupManagerInstanceFlexibilityPolicy":{"properties":{"instanceSelections":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection"},"description":"Named instance selections configuring properties that the group will use when creating new VMs.\n"}},"type":"object","required":["instanceSelections"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection":{"properties":{"disks":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk"},"description":"List of disks to be attached to the instances created from this selection.\n"},"machineTypes":{"type":"array","items":{"type":"string"},"description":"Full machine-type names, e.g. \"n1-standard-16\"\n"},"minCpuPlatform":{"type":"string","description":"Name of the minimum CPU platform to be used by this instance selection. e.g. 'Intel Ice Lake'\n"},"name":{"type":"string","description":"The name of the instance group. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"rank":{"type":"integer","description":"Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.\n"}},"type":"object","required":["disks","machineTypes","minCpuPlatform","name","rank"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDisk":{"properties":{"architecture":{"type":"string","description":"The architecture of the image. Allowed values are ARM64 or X86_64.\n"},"autoDelete":{"type":"boolean","description":"Whether or not the disk should be auto-deleted. This defaults to true.\n"},"boot":{"type":"boolean","description":"Indicates that this is a boot disk. This defaults to false.\n"},"deviceName":{"type":"string","description":"A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance. If not specified, the server chooses a default device name to apply to this disk.\n"},"diskEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey"},"description":"Encrypts or decrypts a disk using a customer-supplied encryption key.\n"},"diskName":{"type":"string","description":"Name of the disk. When not provided, this defaults to the name of the instance.\n"},"diskSizeGb":{"type":"integer","description":"The size of the image in gigabytes. If not specified, it will inherit the size of its base image. For SCRATCH disks, the size must be one of 375 or 3000 GB, with a default of 375 GB.\n"},"diskType":{"type":"string","description":"The Google Compute Engine disk type. Such as \"pd-ssd\", \"local-ssd\", \"pd-balanced\" or \"pd-standard\".\n"},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images.\n"},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk.\n"},"labels":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel"},"description":"A set of key/value label pairs to assign to disks.\n"},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE or READ_ONLY. If you are attaching or creating a boot disk, this must read-write mode.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This sets the number of I/O operations per second that the disk can handle. For more details, see the [Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk) or the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks) depending on the selected disk_type.\n"},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\n"},"resourceManagerTags":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"resourcePolicies":{"type":"array","items":{"type":"string"},"description":"A list (short name or id) of resource policies to attach to this disk. Currently a max of 1 resource policy is supported.\n"},"source":{"type":"string","description":"The name (not self_link) of the disk (such as those managed by google_compute_disk) to attach. \u003e Note: Either source or\u003cspan pulumi-lang-nodejs=\" sourceImage \" pulumi-lang-dotnet=\" SourceImage \" pulumi-lang-go=\" sourceImage \" pulumi-lang-python=\" source_image \" pulumi-lang-yaml=\" sourceImage \" pulumi-lang-java=\" sourceImage \"\u003e source_image \u003c/span\u003eis required when creating a new instance except for when creating a local SSD.\n"},"sourceImage":{"type":"string","description":"The image from which to initialize this disk. This can be one of: the image's self_link, projects/{project}/global/images/{image}, projects/{project}/global/images/family/{family}, global/images/{image}, global/images/family/{family}, family/{family}, {project}/{family}, {project}/{image}, {family}, or {image}. \u003e Note: Either source or\u003cspan pulumi-lang-nodejs=\" sourceImage \" pulumi-lang-dotnet=\" SourceImage \" pulumi-lang-go=\" sourceImage \" pulumi-lang-python=\" source_image \" pulumi-lang-yaml=\" sourceImage \" pulumi-lang-java=\" sourceImage \"\u003e source_image \u003c/span\u003eis required when creating a new instance except for when creating a local SSD.\n"},"sourceImageEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey"},"description":"The customer-supplied encryption key of the source image. Required if the source image is protected by a customer-supplied encryption key. Instance templates do not store customer-supplied encryption keys, so you cannot create disks for instances in a managed instance group if the source images are encrypted with your own keys.\n"},"sourceSnapshot":{"type":"string","description":"The source snapshot to create this disk. When creating a new instance, one of initializeParams.sourceSnapshot, initializeParams.sourceImage, or disks.source is required except for local SSD.\n"},"sourceSnapshotEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey"},"description":"The customer-supplied encryption key of the source snapshot.\n"},"type":{"type":"string","description":"The type of Google Compute Engine disk, can be either \"SCRATCH\" or \"PERSISTENT\".\n"}},"type":"object","required":["architecture","autoDelete","boot","deviceName","diskEncryptionKeys","diskName","diskSizeGb","diskType","guestOsFeatures","interface","labels","mode","provisionedIops","provisionedThroughput","resourceManagerTags","resourcePolicies","source","sourceImage","sourceImageEncryptionKeys","sourceSnapshot","sourceSnapshotEncryptionKeys","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskLabel":{"properties":{"key":{"type":"string","description":"The unique key of the label to assign to disks.\n"},"value":{"type":"string","description":"The value of the label to assign to disks.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskResourceManagerTag":{"properties":{"key":{"type":"string","description":"The unique key of the resource manager tag to assign to disks. Keys must be in the format tagKeys/{tag_key_id}.\n"},"value":{"type":"string","description":"The value of the resource manager tag to assign to disks. Values must be in the format tagValues/456.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey:getRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceLifecyclePolicy:getRegionInstanceGroupManagerInstanceLifecyclePolicy":{"properties":{"defaultActionOnFailure":{"type":"string","description":"Specifies the action that a MIG performs on a failed VM. If the value of the \u003cspan pulumi-lang-nodejs=\"\"onFailedHealthCheck\"\" pulumi-lang-dotnet=\"\"OnFailedHealthCheck\"\" pulumi-lang-go=\"\"onFailedHealthCheck\"\" pulumi-lang-python=\"\"on_failed_health_check\"\" pulumi-lang-yaml=\"\"onFailedHealthCheck\"\" pulumi-lang-java=\"\"onFailedHealthCheck\"\"\u003e\"on_failed_health_check\"\u003c/span\u003e field is DEFAULT_ACTION, then the same action also applies to the VMs on which your application fails a health check. Valid values are: REPAIR, DO_NOTHING. If REPAIR (default), then MIG automatically repairs a failed VM by recreating it. For more information, see about repairing VMs in a MIG. If DO_NOTHING, then MIG does not repair a failed VM.\n"},"forceUpdateOnRepair":{"type":"string","description":"Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: YES, NO. If YES and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If NO (default), then updates are applied in accordance with the group's update policy type.\n"},"onFailedHealthCheck":{"type":"string","description":"Specifies the action that a MIG performs on an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are: DEFAULT_ACTION, DO_NOTHING, REPAIR. If DEFAULT_ACTION (default), then MIG uses the same action configured for the  \u003cspan pulumi-lang-nodejs=\"\"defaultActionOnFailure\"\" pulumi-lang-dotnet=\"\"DefaultActionOnFailure\"\" pulumi-lang-go=\"\"defaultActionOnFailure\"\" pulumi-lang-python=\"\"default_action_on_failure\"\" pulumi-lang-yaml=\"\"defaultActionOnFailure\"\" pulumi-lang-java=\"\"defaultActionOnFailure\"\"\u003e\"default_action_on_failure\"\u003c/span\u003e field. If DO_NOTHING, then MIG does not repair unhealthy VM. If REPAIR, then MIG automatically repairs an unhealthy VM by recreating it.\n"},"onRepairs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair:getRegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair"},"description":"Configuration for VM repairs in the MIG.\n"}},"type":"object","required":["defaultActionOnFailure","forceUpdateOnRepair","onFailedHealthCheck","onRepairs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair:getRegionInstanceGroupManagerInstanceLifecyclePolicyOnRepair":{"properties":{"allowChangingZone":{"type":"string","description":"Specifies whether the MIG can change a VM's zone during a repair. If \"YES\", MIG can select a different zone for the VM during a repair. Else if \"NO\", MIG cannot change a VM's zone during a repair. The default value of\u003cspan pulumi-lang-nodejs=\" allowChangingZone \" pulumi-lang-dotnet=\" AllowChangingZone \" pulumi-lang-go=\" allowChangingZone \" pulumi-lang-python=\" allow_changing_zone \" pulumi-lang-yaml=\" allowChangingZone \" pulumi-lang-java=\" allowChangingZone \"\u003e allow_changing_zone \u003c/span\u003eis \"NO\".\n"}},"type":"object","required":["allowChangingZone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerNamedPort:getRegionInstanceGroupManagerNamedPort":{"properties":{"name":{"type":"string","description":"The name of the instance group. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"port":{"type":"integer","description":"The port number.\n"}},"type":"object","required":["name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerParam:getRegionInstanceGroupManagerParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to bind to the managed instance group. The tags are key-value pairs. Keys must be in the format tagKeys/123 and values in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStandbyPolicy:getRegionInstanceGroupManagerStandbyPolicy":{"properties":{"initialDelaySec":{"type":"integer","description":"Specifies the number of seconds that the MIG should wait to suspend or stop a VM after that VM was created. The initial delay gives the initialization script the time to prepare your VM for a quick scale out. The value of initial delay must be between 0 and 3600 seconds. The default value is 0.\n"},"mode":{"type":"string","description":"Defines how a MIG resumes or starts VMs from a standby pool when the group scales out. The default mode is \"MANUAL\".\n"}},"type":"object","required":["initialDelaySec","mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatefulDisk:getRegionInstanceGroupManagerStatefulDisk":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to the stateful disk when the VM instance is deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the disk when the VM is deleted, but do not delete the disk. ON_PERMANENT_INSTANCE_DELETION will delete the stateful disk when the VM is permanently deleted from the instance group. The default is NEVER.\n"},"deviceName":{"type":"string","description":"The device name of the disk to be attached.\n"}},"type":"object","required":["deleteRule","deviceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatefulExternalIp:getRegionInstanceGroupManagerStatefulExternalIp":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to an associated static Address resource when a VM instance is permanently deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the IP when the VM is deleted, but do not delete the address resource. ON_PERMANENT_INSTANCE_DELETION will delete the stateful address when the VM is permanently deleted from the instance group. The default is NEVER.\n"},"interfaceName":{"type":"string","description":"The network interface name\n"}},"type":"object","required":["deleteRule","interfaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatefulInternalIp:getRegionInstanceGroupManagerStatefulInternalIp":{"properties":{"deleteRule":{"type":"string","description":"A value that prescribes what should happen to an associated static Address resource when a VM instance is permanently deleted. The available options are NEVER and ON_PERMANENT_INSTANCE_DELETION. NEVER - detach the IP when the VM is deleted, but do not delete the address resource. ON_PERMANENT_INSTANCE_DELETION will delete the stateful address when the VM is permanently deleted from the instance group. The default is NEVER.\n"},"interfaceName":{"type":"string","description":"The network interface name\n"}},"type":"object","required":["deleteRule","interfaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatus:getRegionInstanceGroupManagerStatus":{"properties":{"allInstancesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerStatusAllInstancesConfig:getRegionInstanceGroupManagerStatusAllInstancesConfig"},"description":"Status of all-instances configuration on the group.\n"},"isStable":{"type":"boolean","description":"A bit indicating whether the managed instance group is in a stable state. A stable state means that: none of the instances in the managed instance group is currently undergoing any type of change (for example, creation, restart, or deletion); no future changes are scheduled for instances in the managed instance group; and the managed instance group itself is not being modified.\n"},"statefuls":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerStatusStateful:getRegionInstanceGroupManagerStatusStateful"},"description":"Stateful status of the given Instance Group Manager.\n"},"versionTargets":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerStatusVersionTarget:getRegionInstanceGroupManagerStatusVersionTarget"},"description":"A status of consistency of Instances' versions with their target version specified by version field on Instance Group Manager.\n"}},"type":"object","required":["allInstancesConfigs","isStable","statefuls","versionTargets"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatusAllInstancesConfig:getRegionInstanceGroupManagerStatusAllInstancesConfig":{"properties":{"currentRevision":{"type":"string","description":"Current all-instances configuration revision. This value is in RFC3339 text format.\n"},"effective":{"type":"boolean","description":"A bit indicating whether this configuration has been applied to all managed instances in the group.\n"}},"type":"object","required":["currentRevision","effective"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatusStateful:getRegionInstanceGroupManagerStatusStateful":{"properties":{"hasStatefulConfig":{"type":"boolean","description":"A bit indicating whether the managed instance group has stateful configuration, that is, if you have configured any items in a stateful policy or in per-instance configs. The group might report that it has no stateful config even when there is still some preserved state on a managed instance, for example, if you have deleted all PICs but not yet applied those deletions.\n"},"perInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerStatusStatefulPerInstanceConfig:getRegionInstanceGroupManagerStatusStatefulPerInstanceConfig"},"description":"Status of per-instance configs on the instances.\n"}},"type":"object","required":["hasStatefulConfig","perInstanceConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatusStatefulPerInstanceConfig:getRegionInstanceGroupManagerStatusStatefulPerInstanceConfig":{"properties":{"allEffective":{"type":"boolean","description":"A bit indicating if all of the group's per-instance configs (listed in the output of a listPerInstanceConfigs API call) have status EFFECTIVE or there are no per-instance-configs.\n"}},"type":"object","required":["allEffective"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerStatusVersionTarget:getRegionInstanceGroupManagerStatusVersionTarget":{"properties":{"isReached":{"type":"boolean","description":"A bit indicating whether version target has been reached in this managed instance group, i.e. all instances are in their target version. Instances' target version are specified by version field on Instance Group Manager.\n"}},"type":"object","required":["isReached"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerUpdatePolicy:getRegionInstanceGroupManagerUpdatePolicy":{"properties":{"instanceRedistributionType":{"type":"string","description":"The instance redistribution policy for regional managed instance groups. Valid values are: \"PROACTIVE\", \"NONE\". If PROACTIVE (default), the group attempts to maintain an even distribution of VM instances across zones in the region. If NONE, proactive redistribution is disabled.\n"},"maxSurgeFixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive integer. Conflicts with max_surge_percent. Both cannot be 0\n"},"maxSurgePercent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%. Conflicts with max_surge_fixed.\n"},"maxUnavailableFixed":{"type":"integer","description":"Specifies a fixed number of VM instances. This must be a positive integer.\n"},"maxUnavailablePercent":{"type":"integer","description":"Specifies a percentage of instances between 0 to 100%, inclusive. For example, specify 80 for 80%.\n"},"minReadySec":{"type":"integer","description":"Minimum number of seconds to wait for after a newly created instance becomes available. This value must be from range [0, 3600].\n"},"minimalAction":{"type":"string","description":"Minimal action to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to update without stopping instances, RESTART to restart existing instances or REPLACE to delete and create new instances from the target template. If you specify a REFRESH, the Updater will attempt to perform that action only. However, if the Updater determines that the minimal action you specify is not enough to perform the update, it might perform a more disruptive action.\n"},"mostDisruptiveAllowedAction":{"type":"string","description":"Most disruptive action that is allowed to be taken on an instance. You can specify either NONE to forbid any actions, REFRESH to allow actions that do not need instance restart, RESTART to allow actions that can be applied without instance replacing or REPLACE to allow all possible actions. If the Updater determines that the minimal update action needed is more disruptive than most disruptive allowed action you specify it will not perform the update at all.\n"},"replacementMethod":{"type":"string","description":"The instance replacement method for regional managed instance groups. Valid values are: \"RECREATE\", \"SUBSTITUTE\". If SUBSTITUTE (default), the group replaces VM instances with new instances that have randomly generated names. If RECREATE, instance names are preserved.  You must also set\u003cspan pulumi-lang-nodejs=\" maxUnavailableFixed \" pulumi-lang-dotnet=\" MaxUnavailableFixed \" pulumi-lang-go=\" maxUnavailableFixed \" pulumi-lang-python=\" max_unavailable_fixed \" pulumi-lang-yaml=\" maxUnavailableFixed \" pulumi-lang-java=\" maxUnavailableFixed \"\u003e max_unavailable_fixed \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" maxUnavailablePercent \" pulumi-lang-dotnet=\" MaxUnavailablePercent \" pulumi-lang-go=\" maxUnavailablePercent \" pulumi-lang-python=\" max_unavailable_percent \" pulumi-lang-yaml=\" maxUnavailablePercent \" pulumi-lang-java=\" maxUnavailablePercent \"\u003e max_unavailable_percent \u003c/span\u003eto be greater than 0.\n"},"type":{"type":"string","description":"The type of update process. You can specify either PROACTIVE so that the instance group manager proactively executes actions in order to bring instances to their target versions or OPPORTUNISTIC so that no action is proactively executed but the update will be performed as part of other actions (for example, resizes or recreateInstances calls).\n"}},"type":"object","required":["instanceRedistributionType","maxSurgeFixed","maxSurgePercent","maxUnavailableFixed","maxUnavailablePercent","minReadySec","minimalAction","mostDisruptiveAllowedAction","replacementMethod","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerVersion:getRegionInstanceGroupManagerVersion":{"properties":{"instanceTemplate":{"type":"string","description":"The full URL to an instance template from which all new instances of this version will be created.\n"},"name":{"type":"string","description":"The name of the instance group. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e must be provided.\n"},"targetSizes":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceGroupManagerVersionTargetSize:getRegionInstanceGroupManagerVersionTargetSize"},"description":"The number of instances calculated as a fixed number or a percentage depending on the settings.\n"}},"type":"object","required":["instanceTemplate","name","targetSizes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceGroupManagerVersionTargetSize:getRegionInstanceGroupManagerVersionTargetSize":{"properties":{"fixed":{"type":"integer","description":"The number of instances which are managed for this version. Conflicts with percent.\n"},"percent":{"type":"integer","description":"The number of instances (calculated as percentage) which are managed for this version. Conflicts with fixed. Note that when using percent, rounding will be in favor of explicitly set\u003cspan pulumi-lang-nodejs=\" targetSize \" pulumi-lang-dotnet=\" TargetSize \" pulumi-lang-go=\" targetSize \" pulumi-lang-python=\" target_size \" pulumi-lang-yaml=\" targetSize \" pulumi-lang-java=\" targetSize \"\u003e target_size \u003c/span\u003evalues; a managed instance group with 2 instances and 2 versions, one of which has a target_size.percent of 60 will create 2 instances of that version.\n"}},"type":"object","required":["fixed","percent"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateAdvancedMachineFeature:getRegionInstanceTemplateAdvancedMachineFeature":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether to enable nested virtualization or not.\n"},"enableUefiNetworking":{"type":"boolean","description":"Whether to enable UEFI networking or not.\n"},"performanceMonitoringUnit":{"type":"string","description":"The PMU is a hardware component within the CPU core that monitors how the processor runs code. Valid values for the level of PMU are \"STANDARD\", \"ENHANCED\", and \"ARCHITECTURAL\".\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"},"turboMode":{"type":"string","description":"Turbo frequency mode to use for the instance. Currently supported modes is \"ALL_CORE_MAX\".\n"},"visibleCoreCount":{"type":"integer","description":"The number of physical cores to expose to an instance. Multiply by the number of threads per core to compute the total number of virtual CPUs to expose to the instance. If unset, the number of cores is inferred from the instance\\'s nominal CPU count and the underlying platform\\'s SMT width.\n"}},"type":"object","required":["enableNestedVirtualization","enableUefiNetworking","performanceMonitoringUnit","threadsPerCore","turboMode","visibleCoreCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateConfidentialInstanceConfig:getRegionInstanceTemplateConfidentialInstanceConfig":{"properties":{"confidentialInstanceType":{"type":"string","description":"The confidential computing technology the instance uses.\n\t\t\t\t\t\t\t\tSEV is an AMD feature. TDX is an Intel feature. One of the following\n\t\t\t\t\t\t\t\tvalues is required: SEV, SEV_SNP, TDX. If SEV_SNP,\u003cspan pulumi-lang-nodejs=\" minCpuPlatform \" pulumi-lang-dotnet=\" MinCpuPlatform \" pulumi-lang-go=\" minCpuPlatform \" pulumi-lang-python=\" min_cpu_platform \" pulumi-lang-yaml=\" minCpuPlatform \" pulumi-lang-java=\" minCpuPlatform \"\u003e min_cpu_platform \u003c/span\u003e=\n\t\t\t\t\t\t\t\t\"AMD Milan\" is currently required.\n"},"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled. \u003cspan pulumi-lang-nodejs=\"`onHostMaintenance`\" pulumi-lang-dotnet=\"`OnHostMaintenance`\" pulumi-lang-go=\"`onHostMaintenance`\" pulumi-lang-python=\"`on_host_maintenance`\" pulumi-lang-yaml=\"`onHostMaintenance`\" pulumi-lang-java=\"`onHostMaintenance`\"\u003e`on_host_maintenance`\u003c/span\u003e has to be set to TERMINATE or this will fail to create the VM.\n"}},"type":"object","required":["confidentialInstanceType","enableConfidentialCompute"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateDisk:getRegionInstanceTemplateDisk":{"properties":{"architecture":{"type":"string","description":"The architecture of the image. Allowed values are ARM64 or X86_64.\n"},"autoDelete":{"type":"boolean","description":"Whether or not the disk should be auto-deleted.\nThis defaults to true.\n"},"boot":{"type":"boolean","description":"Indicates that this is a boot disk.\n"},"deviceName":{"type":"string","description":"A unique device name that is reflected into the\n/dev/  tree of a Linux operating system running within the instance. If not\nspecified, the server chooses a default device name to apply to this disk.\n"},"diskEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateDiskDiskEncryptionKey:getRegionInstanceTemplateDiskDiskEncryptionKey"},"description":"Encrypts or decrypts a disk using a customer-supplied encryption key.\n"},"diskName":{"type":"string","description":"Name of the disk. When not provided, this defaults\nto the name of the instance.\n"},"diskSizeGb":{"type":"integer","description":"The size of the image in gigabytes. If not\nspecified, it will inherit the size of its base image. For SCRATCH disks,\nthe size must be exactly 375GB.\n"},"diskType":{"type":"string","description":"The GCE disk type. Such as `\"pd-ssd\"`, `\"local-ssd\"`,\n`\"pd-balanced\"` or `\"pd-standard\"`.\n"},"guestOsFeatures":{"type":"array","items":{"type":"string"},"description":"A list of features to enable on the guest operating system. Applicable only for bootable images.\n"},"interface":{"type":"string","description":"Specifies the disk interface to use for attaching this disk,\nwhich is either SCSI or NVME. The default is SCSI. Persistent disks must always use SCSI\nand the request will fail if you attempt to attach a persistent disk in any other format\nthan SCSI. Local SSDs can use either NVME or SCSI.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"(Optional) A set of ket/value label pairs to assign to disk created from\nthis template\n"},"mode":{"type":"string","description":"The mode in which to attach this disk, either READ_WRITE\nor READ_ONLY. If you are attaching or creating a boot disk, this must\nread-write mode.\n"},"provisionedIops":{"type":"integer","description":"Indicates how many IOPS to provision for the disk. This\nsets the number of I/O operations per second that the disk can handle.\nValues must be between 10,000 and 120,000. For more details, see the\n[Extreme persistent disk documentation](https://cloud.google.com/compute/docs/disks/extreme-persistent-disk).\n"},"provisionedThroughput":{"type":"integer","description":"Indicates how much throughput to provision for the disk, in MB/s. This sets the amount of data that can be read or written from the disk per second. Values must greater than or equal to 1. For more details, see the [Hyperdisk documentation](https://cloud.google.com/compute/docs/disks/hyperdisks).\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"resourcePolicies":{"type":"array","items":{"type":"string"},"description":"(Optional) -- A list of short names of resource policies to attach to this disk for automatic snapshot creations. Currently a max of 1 resource policy is supported.\n"},"source":{"type":"string","description":"The name (**not self_link**)\nof the disk (such as those managed by \u003cspan pulumi-lang-nodejs=\"`gcp.compute.Disk`\" pulumi-lang-dotnet=\"`gcp.compute.Disk`\" pulumi-lang-go=\"`compute.Disk`\" pulumi-lang-python=\"`compute.Disk`\" pulumi-lang-yaml=\"`gcp.compute.Disk`\" pulumi-lang-java=\"`gcp.compute.Disk`\"\u003e`gcp.compute.Disk`\u003c/span\u003e) to attach.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n"},"sourceImage":{"type":"string","description":"The image from which to\ninitialize this disk. This can be one of: the image's \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e,\n`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}`.\n\u003e **Note:** Either \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sourceImage`\" pulumi-lang-dotnet=\"`SourceImage`\" pulumi-lang-go=\"`sourceImage`\" pulumi-lang-python=\"`source_image`\" pulumi-lang-yaml=\"`sourceImage`\" pulumi-lang-java=\"`sourceImage`\"\u003e`source_image`\u003c/span\u003e is **required** in a disk block unless the disk type is `local-ssd`. Check the API [docs](https://cloud.google.com/compute/docs/reference/rest/v1/instanceTemplates/insert) for details.\n"},"sourceImageEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateDiskSourceImageEncryptionKey:getRegionInstanceTemplateDiskSourceImageEncryptionKey"},"description":"The customer-supplied encryption key of the source\nimage. Required if the source image is protected by a\ncustomer-supplied encryption key.\n\nInstance templates do not store customer-supplied\nencryption keys, so you cannot create disks for\ninstances in a managed instance group if the source\nimages are encrypted with your own keys.\n"},"sourceSnapshot":{"type":"string","description":"The source snapshot to create this disk. When creating\na new instance, one of initializeParams.sourceSnapshot,\ninitializeParams.sourceImage, or disks.source is\nrequired except for local SSD.\n"},"sourceSnapshotEncryptionKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateDiskSourceSnapshotEncryptionKey:getRegionInstanceTemplateDiskSourceSnapshotEncryptionKey"},"description":"The customer-supplied encryption key of the source snapshot.\n"},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["architecture","autoDelete","boot","deviceName","diskEncryptionKeys","diskName","diskSizeGb","diskType","guestOsFeatures","interface","labels","mode","provisionedIops","provisionedThroughput","resourceManagerTags","resourcePolicies","source","sourceImage","sourceImageEncryptionKeys","sourceSnapshot","sourceSnapshotEncryptionKeys","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateDiskDiskEncryptionKey:getRegionInstanceTemplateDiskDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption request for the given KMS key. If absent, the Compute Engine default service account is used.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateDiskSourceImageEncryptionKey:getRegionInstanceTemplateDiskSourceImageEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption\nrequest for the given KMS key. If absent, the Compute\nEngine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource.  Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.  Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateDiskSourceSnapshotEncryptionKey:getRegionInstanceTemplateDiskSourceSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The self link of the encryption key that is stored in Google Cloud KMS\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account being used for the encryption\nrequest for the given KMS key. If absent, the Compute\nEngine default service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648 base64 to either encrypt or decrypt this resource. Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied encryption key to either encrypt or decrypt this resource.  Only one of kms_key_self_link,\u003cspan pulumi-lang-nodejs=\" rsaEncryptedKey \" pulumi-lang-dotnet=\" RsaEncryptedKey \" pulumi-lang-go=\" rsaEncryptedKey \" pulumi-lang-python=\" rsa_encrypted_key \" pulumi-lang-yaml=\" rsaEncryptedKey \" pulumi-lang-java=\" rsaEncryptedKey \"\u003e rsa_encrypted_key \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" rawKey \" pulumi-lang-dotnet=\" RawKey \" pulumi-lang-go=\" rawKey \" pulumi-lang-python=\" raw_key \" pulumi-lang-yaml=\" rawKey \" pulumi-lang-java=\" rawKey \"\u003e raw_key \u003c/span\u003emay be set.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateGuestAccelerator:getRegionInstanceTemplateGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n"},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["count","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateNetworkInterface:getRegionInstanceTemplateNetworkInterface":{"properties":{"accessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateNetworkInterfaceAccessConfig:getRegionInstanceTemplateNetworkInterfaceAccessConfig"},"description":"Access configurations, i.e. IPs via which this\ninstance can be accessed via the Internet. Omit to ensure that the instance\nis not accessible from the Internet (this means that ssh provisioners will\nnot work unless you are running Terraform can send traffic to the instance's\nnetwork (e.g. via tunnel or because it is running on another cloud instance\non that network). This block can be repeated multiple times. Structure documented below.\n"},"aliasIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateNetworkInterfaceAliasIpRange:getRegionInstanceTemplateNetworkInterfaceAliasIpRange"},"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"},"igmpQuery":{"type":"string","description":"Indicates whether igmp query is enabled on the network interface or not. If enabled, also indicates the version of IGMP supported.\n"},"internalIpv6PrefixLength":{"type":"integer","description":"The prefix length of the primary internal IPv6 range.\n"},"ipv6AccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateNetworkInterfaceIpv6AccessConfig:getRegionInstanceTemplateNetworkInterfaceIpv6AccessConfig"},"description":"An array of IPv6 access configurations for this interface. Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig specified, then this instance will have no external IPv6 Internet access.\n"},"ipv6AccessType":{"type":"string","description":"One of EXTERNAL, INTERNAL to indicate whether the IP can be accessed from the Internet. This field is always inherited from its subnetwork.\n"},"ipv6Address":{"type":"string","description":"An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.\n"},"name":{"type":"string","description":"The name of the instance template. One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e must be provided.\n"},"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the network to attach this interface to.\nUse \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e attribute for Legacy or Auto subnetted networks and\n\u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e for custom subnetted networks.\n"},"networkAttachment":{"type":"string","description":"The URL of the network attachment that this interface should connect to in the following format: projects/{projectNumber}/regions/{region_name}/networkAttachments/{network_attachment_name}.\n"},"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, MRDMA, and IRDMA\n"},"parentNicName":{"type":"string","description":"Name of the parent network interface of a dynamic network interface.\n"},"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"},"stackType":{"type":"string","description":"The stack type for this network interface to identify whether the IPv6 feature is enabled or not. If not specified, IPV4_ONLY will be used.\n"},"subnetwork":{"type":"string","description":"the name of the subnetwork to attach this interface\nto. The subnetwork must exist in the same \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e this instance will be\ncreated in. Either \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e must be provided.\n"},"subnetworkProject":{"type":"string","description":"The ID of the project in which the subnetwork belongs.\nIf it is not provided, the provider project is used.\n"},"vlan":{"type":"integer","description":"VLAN tag of a dynamic network interface, must be an integer in the range from 2 to 255 inclusively.\n"}},"type":"object","required":["accessConfigs","aliasIpRanges","igmpQuery","internalIpv6PrefixLength","ipv6AccessConfigs","ipv6AccessType","ipv6Address","name","network","networkAttachment","networkIp","nicType","parentNicName","queueCount","stackType","subnetwork","subnetworkProject","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateNetworkInterfaceAccessConfig:getRegionInstanceTemplateNetworkInterfaceAccessConfig":{"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 [networking tier][network-tier] used for configuring\nthis instance template. This field can take the following values: PREMIUM or\nSTANDARD. If this field is not specified, it is assumed to be PREMIUM.\n"},"publicPtrDomainName":{"type":"string","description":"The DNS domain name for the public PTR record.The DNS domain name for the public PTR record.\n"}},"type":"object","required":["natIp","networkTier","publicPtrDomainName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateNetworkInterfaceAliasIpRange:getRegionInstanceTemplateNetworkInterfaceAliasIpRange":{"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. At the time of writing only a\nnetmask (e.g. /24) may be supplied, with a CIDR format resulting in an API\nerror.\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","subnetworkRangeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateNetworkInterfaceIpv6AccessConfig:getRegionInstanceTemplateNetworkInterfaceIpv6AccessConfig":{"properties":{"externalIpv6":{"type":"string","description":"The first IPv6 address of the external IPv6 range associated with this instance, prefix length is stored in externalIpv6PrefixLength in ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork associated with the instance will be allocated dynamically.\n"},"externalIpv6PrefixLength":{"type":"string","description":"The prefix length of the external IPv6 range.\n"},"name":{"type":"string","description":"The name of the instance template. One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`filter`\" pulumi-lang-dotnet=\"`Filter`\" pulumi-lang-go=\"`filter`\" pulumi-lang-python=\"`filter`\" pulumi-lang-yaml=\"`filter`\" pulumi-lang-java=\"`filter`\"\u003e`filter`\u003c/span\u003e must be provided.\n"},"networkTier":{"type":"string","description":"The [networking tier][network-tier] used for configuring\nthis instance template. This field can take the following values: PREMIUM or\nSTANDARD. If this field is not specified, it is assumed to be PREMIUM.\n"},"publicPtrDomainName":{"type":"string","description":"The domain name to be used when creating DNSv6 records for the external IPv6 ranges.\n"}},"type":"object","required":["externalIpv6","externalIpv6PrefixLength","name","networkTier","publicPtrDomainName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateNetworkPerformanceConfig:getRegionInstanceTemplateNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"The egress bandwidth tier for the instance.\n"}},"type":"object","required":["totalEgressBandwidthTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateReservationAffinity:getRegionInstanceTemplateReservationAffinity":{"properties":{"specificReservations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateReservationAffinitySpecificReservation:getRegionInstanceTemplateReservationAffinitySpecificReservation"},"description":"Specifies the label selector for the reservation to use.\n"},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n"}},"type":"object","required":["specificReservations","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateReservationAffinitySpecificReservation:getRegionInstanceTemplateReservationAffinitySpecificReservation":{"properties":{"key":{"type":"string","description":"The key for the node affinity label.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Corresponds to the label values of a reservation resource.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateScheduling:getRegionInstanceTemplateScheduling":{"properties":{"automaticRestart":{"type":"boolean","description":"Specifies whether the instance should be\nautomatically restarted if it is terminated by Compute Engine (not\nterminated by a user). This defaults to true.\n"},"availabilityDomain":{"type":"integer","description":"Specifies the availability domain, which this instance should be scheduled on.\n"},"gracefulShutdowns":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateSchedulingGracefulShutdown:getRegionInstanceTemplateSchedulingGracefulShutdown"},"description":"Settings for the instance to perform a graceful shutdown.\n"},"hostErrorTimeoutSeconds":{"type":"integer","description":"Beta Time in seconds for host error detection.\n"},"instanceTerminationAction":{"type":"string","description":"Describe the type of termination action for `SPOT` VM. Can be `STOP` or `DELETE`.  Read more on [here](https://cloud.google.com/compute/docs/instances/create-use-spot)\n"},"localSsdRecoveryTimeouts":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout:getRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout"},"description":"Specifies the maximum amount of time a Local Ssd Vm should wait while\n  recovery of the Local Ssd state is attempted. Its value should be in\n  between 0 and 168 hours with hour granularity and the default value being 1\n  hour.\n"},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. The accepted values are: PERIODIC\n"},"maxRunDurations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateSchedulingMaxRunDuration:getRegionInstanceTemplateSchedulingMaxRunDuration"},"description":"The timeout for new network connections to hosts.\n"},"minNodeCpus":{"type":"integer","description":"Minimum number of cpus for the instance.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateSchedulingNodeAffinity:getRegionInstanceTemplateSchedulingNodeAffinity"},"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":"Defines the maintenance behavior for this\ninstance.\n"},"onInstanceStopActions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateSchedulingOnInstanceStopAction:getRegionInstanceTemplateSchedulingOnInstanceStopAction"},"description":"Defines the behaviour for instances with the instance_termination_action.\n"},"preemptible":{"type":"boolean","description":"Allows instance to be preempted. This defaults to\nfalse. Read more on this\n[here](https://cloud.google.com/compute/docs/instances/preemptible).\n"},"provisioningModel":{"type":"string","description":"Describe the type of preemptible VM.\n"},"skipGuestOsShutdown":{"type":"boolean","description":"Default is false and there will be 120 seconds between GCE ACPI G2 Soft Off and ACPI G3 Mechanical Off for Standard VMs and 30 seconds for Spot VMs.\n"},"terminationTime":{"type":"string","description":"Specifies the timestamp, when the instance will be terminated,\nin RFC3339 text format. If specified, the instance termination action\nwill be performed at the termination time.\n"}},"type":"object","required":["automaticRestart","availabilityDomain","gracefulShutdowns","hostErrorTimeoutSeconds","instanceTerminationAction","localSsdRecoveryTimeouts","maintenanceInterval","maxRunDurations","minNodeCpus","nodeAffinities","onHostMaintenance","onInstanceStopActions","preemptible","provisioningModel","skipGuestOsShutdown","terminationTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateSchedulingGracefulShutdown:getRegionInstanceTemplateSchedulingGracefulShutdown":{"properties":{"enabled":{"type":"boolean","description":"Opts-in for graceful shutdown.\n"},"maxDurations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionInstanceTemplateSchedulingGracefulShutdownMaxDuration:getRegionInstanceTemplateSchedulingGracefulShutdownMaxDuration"},"description":"The time allotted for the instance to gracefully shut down.\n\t\t\t\t\t\t\t\t\t\tIf the graceful shutdown isn't complete after this time, then the instance\n\t\t\t\t\t\t\t\t\t\ttransitions to the STOPPING state.\n"}},"type":"object","required":["enabled","maxDurations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateSchedulingGracefulShutdownMaxDuration:getRegionInstanceTemplateSchedulingGracefulShutdownMaxDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolution. Durations less than one second are represented\n\t\t\t\t\t\t\t\t\t\t\t\t\twith a 0 seconds field and a positive nanos field. Must\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\n\t\t\t\t\t\t\t\t\t\t\t\t\tThe value must be between 1 and 3600, which is 3,600 seconds (one hour).\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout:getRegionInstanceTemplateSchedulingLocalSsdRecoveryTimeout":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateSchedulingMaxRunDuration:getRegionInstanceTemplateSchedulingMaxRunDuration":{"properties":{"nanos":{"type":"integer","description":"Span of time that's a fraction of a second at nanosecond\nresolution. Durations less than one second are represented\nwith a 0 seconds field and a positive nanos field. Must\nbe from 0 to 999,999,999 inclusive.\n"},"seconds":{"type":"integer","description":"Span of time at a resolution of a second.\nMust be from 0 to 315,576,000,000 inclusive.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateSchedulingNodeAffinity:getRegionInstanceTemplateSchedulingNodeAffinity":{"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"}}},"type":"object","required":["key","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateSchedulingOnInstanceStopAction:getRegionInstanceTemplateSchedulingOnInstanceStopAction":{"properties":{"discardLocalSsd":{"type":"boolean","description":"If true, the contents of any attached Local SSD disks will be discarded.\n"}},"type":"object","required":["discardLocalSsd"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateServiceAccount:getRegionInstanceTemplateServiceAccount":{"properties":{"email":{"type":"string","description":"The service account e-mail address. If not given, the\ndefault Google Compute Engine service account is used.\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"}},"type":"object","required":["email","scopes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionInstanceTemplateShieldedInstanceConfig:getRegionInstanceTemplateShieldedInstanceConfig":{"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"},"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"},"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"}},"type":"object","required":["enableIntegrityMonitoring","enableSecureBoot","enableVtpm"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionNetworkEndpointGroupAppEngine:getRegionNetworkEndpointGroupAppEngine":{"properties":{"service":{"type":"string","description":"Optional serving service.\nThe service name must be 1-63 characters long, and comply with RFC1035.\nExample value: \"default\", \"my-service\".\n"},"urlMask":{"type":"string","description":"A template to parse service and version fields from a request URL.\nURL mask allows for routing to multiple App Engine services without\nhaving to create multiple Network Endpoint Groups and backend services.\n\nFor example, the request URLs \"foo1-dot-appname.appspot.com/v1\" and\n\"foo1-dot-appname.appspot.com/v2\" can be backed by the same Serverless NEG with\nURL mask \"-dot-appname.appspot.com/\". The URL mask will parse\nthem to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.\n"},"version":{"type":"string","description":"Optional serving version.\nThe version must be 1-63 characters long, and comply with RFC1035.\nExample value: \"v1\", \"v2\".\n"}},"type":"object","required":["service","urlMask","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionNetworkEndpointGroupCloudFunction:getRegionNetworkEndpointGroupCloudFunction":{"properties":{"function":{"type":"string","description":"A user-defined name of the Cloud Function.\nThe function name is case-sensitive and must be 1-63 characters long.\nExample value: \"func1\".\n"},"urlMask":{"type":"string","description":"A template to parse function field from a request URL. URL mask allows\nfor routing to multiple Cloud Functions without having to create\nmultiple Network Endpoint Groups and backend services.\n\nFor example, request URLs \"mydomain.com/function1\" and \"mydomain.com/function2\"\ncan be backed by the same Serverless NEG with URL mask \"/\". The URL mask\nwill parse them to { function = \"function1\" } and { function = \"function2\" } respectively.\n"}},"type":"object","required":["function","urlMask"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionNetworkEndpointGroupCloudRun:getRegionNetworkEndpointGroupCloudRun":{"properties":{"service":{"type":"string","description":"Cloud Run service is the main resource of Cloud Run.\nThe service must be 1-63 characters long, and comply with RFC1035.\nExample value: \"run-service\".\n"},"tag":{"type":"string","description":"Cloud Run tag represents the \"named-revision\" to provide\nadditional fine-grained traffic routing information.\nThe tag must be 1-63 characters long, and comply with RFC1035.\nExample value: \"revision-0010\".\n"},"urlMask":{"type":"string","description":"A template to parse service and tag fields from a request URL.\nURL mask allows for routing to multiple Run services without having\nto create multiple network endpoint groups and backend services.\n\nFor example, request URLs \"foo1.domain.com/bar1\" and \"foo1.domain.com/bar2\"\nan be backed by the same Serverless Network Endpoint Group (NEG) with\nURL mask \".domain.com/\". The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" }\nand { service=\"bar2\", tag=\"foo2\" } respectively.\n"}},"type":"object","required":["service","tag","urlMask"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionNetworkEndpointGroupPscData:getRegionNetworkEndpointGroupPscData":{"properties":{"producerPort":{"type":"string","description":"The PSC producer port to use when consumer PSC NEG connects to a producer. If\nthis flag isn't specified for a PSC NEG with endpoint type\nprivate-service-connect, then PSC NEG will be connected to a first port in the\navailable PSC producer port range.\n"}},"type":"object","required":["producerPort"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionNetworkEndpointGroupServerlessDeployment:getRegionNetworkEndpointGroupServerlessDeployment":{"properties":{"platform":{"type":"string","description":"The platform of the NEG backend target(s). Possible values:\nAPI Gateway: apigateway.googleapis.com\n"},"resource":{"type":"string","description":"The user-defined name of the workload/instance. This value must be provided explicitly or in the urlMask.\nThe resource identified by this value is platform-specific and is as follows: API Gateway: The gateway ID, App Engine: The service name,\nCloud Functions: The function name, Cloud Run: The service name\n"},"urlMask":{"type":"string","description":"A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources\non the same serverless platform without having to create multiple Network Endpoint Groups and backend resources.\nThe fields parsed by this template are platform-specific and are as follows: API Gateway: The gateway ID,\nApp Engine: The service and version, Cloud Functions: The function name, Cloud Run: The service and tag\n"},"version":{"type":"string","description":"The optional resource version. The version identified by this value is platform-specific and is follows:\nAPI Gateway: Unused, App Engine: The service version, Cloud Functions: Unused, Cloud Run: The service tag\n"}},"type":"object","required":["platform","resource","urlMask","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyAdvancedOptionsConfig:getRegionSecurityPolicyAdvancedOptionsConfig":{"properties":{"jsonCustomConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig:getRegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig"},"description":"Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.\n"},"jsonParsing":{"type":"string","description":"JSON body parsing. Supported values include: \"DISABLED\", \"STANDARD\", \"STANDARD_WITH_GRAPHQL\". Possible values: [\"DISABLED\", \"STANDARD\", \"STANDARD_WITH_GRAPHQL\"]\n"},"logLevel":{"type":"string","description":"Logging level. Supported values include: \"NORMAL\", \"VERBOSE\". Possible values: [\"NORMAL\", \"VERBOSE\"]\n"},"requestBodyInspectionSize":{"type":"string","description":"The maximum request size chosen by the customer with Waf enabled. Values supported are \"8KB\", \"16KB, \"32KB\", \"48KB\" and \"64KB\".\nValues are case insensitive. Possible values: [\"8KB\", \"16KB\", \"32KB\", \"48KB\", \"64KB\"]\n"},"userIpRequestHeaders":{"type":"array","items":{"type":"string"},"description":"An optional list of case-insensitive request header names to use for resolving the callers client IP address.\n"}},"type":"object","required":["jsonCustomConfigs","jsonParsing","logLevel","requestBodyInspectionSize","userIpRequestHeaders"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig:getRegionSecurityPolicyAdvancedOptionsConfigJsonCustomConfig":{"properties":{"contentTypes":{"type":"array","items":{"type":"string"},"description":"A list of custom Content-Type header values to apply the JSON parsing.\n"}},"type":"object","required":["contentTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyDdosProtectionConfig:getRegionSecurityPolicyDdosProtectionConfig":{"properties":{"ddosProtection":{"type":"string","description":"Google Cloud Armor offers the following options to help protect systems against DDoS attacks:\n- STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.\n- ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.\n- ADVANCED_PREVIEW: flag to enable the security policy in preview mode. Possible values: [\"ADVANCED\", \"ADVANCED_PREVIEW\", \"STANDARD\"]\n"}},"type":"object","required":["ddosProtection"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRule:getRegionSecurityPolicyRule":{"properties":{"action":{"type":"string","description":"The Action to perform when the rule is matched. The following are the valid actions:\n\n* allow: allow access to target.\n\n* deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.\n\n* rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set.\n\n* redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR.\n\n* throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property when you create the resource.\n"},"matches":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleMatch:getRegionSecurityPolicyRuleMatch"},"description":"A match condition that incoming traffic is evaluated against.\nIf it evaluates to true, the corresponding 'action' is enforced.\n"},"networkMatches":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleNetworkMatch:getRegionSecurityPolicyRuleNetworkMatch"},"description":"A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced.\nThe match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').\nField values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds.\nEach match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all.\nFor a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.\nExample:\nnetworkMatch: srcIpRanges: - \"192.0.2.0/24\" - \"198.51.100.0/24\" userDefinedFields: - name: \u003cspan pulumi-lang-nodejs=\"\"ipv4FragmentOffset\"\" pulumi-lang-dotnet=\"\"Ipv4FragmentOffset\"\" pulumi-lang-go=\"\"ipv4FragmentOffset\"\" pulumi-lang-python=\"\"ipv4_fragment_offset\"\" pulumi-lang-yaml=\"\"ipv4FragmentOffset\"\" pulumi-lang-java=\"\"ipv4FragmentOffset\"\"\u003e\"ipv4_fragment_offset\"\u003c/span\u003e values: - \"1-0x1fff\"\nThe above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named \u003cspan pulumi-lang-nodejs=\"\"ipv4FragmentOffset\"\" pulumi-lang-dotnet=\"\"Ipv4FragmentOffset\"\" pulumi-lang-go=\"\"ipv4FragmentOffset\"\" pulumi-lang-python=\"\"ipv4_fragment_offset\"\" pulumi-lang-yaml=\"\"ipv4FragmentOffset\"\" pulumi-lang-java=\"\"ipv4FragmentOffset\"\"\u003e\"ipv4_fragment_offset\"\u003c/span\u003e with a value between 1 and 0x1fff inclusive\n"},"preconfiguredWafConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfig:getRegionSecurityPolicyRulePreconfiguredWafConfig"},"description":"Preconfigured WAF configuration to be applied for the rule.\nIf the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.\n"},"preview":{"type":"boolean","description":"If set to true, the specified action is not enforced.\n"},"priority":{"type":"integer","description":"An integer indicating the priority of a rule in the list.\nThe priority must be a positive value between 0 and 2147483647.\nRules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.\n"},"rateLimitOptions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleRateLimitOption:getRegionSecurityPolicyRuleRateLimitOption"},"description":"Must be specified if the action is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e or \"throttle\". Cannot be specified for any other actions.\n"}},"type":"object","required":["action","description","matches","networkMatches","preconfiguredWafConfigs","preview","priority","rateLimitOptions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleMatch:getRegionSecurityPolicyRuleMatch":{"properties":{"configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleMatchConfig:getRegionSecurityPolicyRuleMatchConfig"},"description":"The configuration options available when specifying versionedExpr.\nThis field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.\n"},"exprs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleMatchExpr:getRegionSecurityPolicyRuleMatchExpr"},"description":"User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. See [Sample expressions](https://cloud.google.com/armor/docs/configure-security-policies#sample-expressions) for examples.\n"},"versionedExpr":{"type":"string","description":"Preconfigured versioned expression. If this field is specified, config must also be specified.\nAvailable preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. Possible values: [\"SRC_IPS_V1\"]\n"}},"type":"object","required":["configs","exprs","versionedExpr"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleMatchConfig:getRegionSecurityPolicyRuleMatchConfig":{"properties":{"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"CIDR IP address range. Maximum number of srcIpRanges allowed is 10.\n"}},"type":"object","required":["srcIpRanges"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleMatchExpr:getRegionSecurityPolicyRuleMatchExpr":{"properties":{"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.\n"}},"type":"object","required":["expression"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleNetworkMatch:getRegionSecurityPolicyRuleNetworkMatch":{"properties":{"destIpRanges":{"type":"array","items":{"type":"string"},"description":"Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.\n"},"destPorts":{"type":"array","items":{"type":"string"},"description":"Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").\n"},"ipProtocols":{"type":"array","items":{"type":"string"},"description":"IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. \"6\"), range (e.g. \"253-254\"), or one of the following protocol names: \"tcp\", \"udp\", \"icmp\", \"esp\", \"ah\", \"ipip\", or \"sctp\".\n"},"srcAsns":{"type":"array","items":{"type":"integer"},"description":"BGP Autonomous System Number associated with the source IP address.\n"},"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.\n"},"srcPorts":{"type":"array","items":{"type":"string"},"description":"Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. \"80\") or range (e.g. \"0-1023\").\n"},"srcRegionCodes":{"type":"array","items":{"type":"string"},"description":"Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.\n"},"userDefinedFields":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleNetworkMatchUserDefinedField:getRegionSecurityPolicyRuleNetworkMatchUserDefinedField"},"description":"User-defined fields. Each element names a defined field and lists the matching values for that field.\n"}},"type":"object","required":["destIpRanges","destPorts","ipProtocols","srcAsns","srcIpRanges","srcPorts","srcRegionCodes","userDefinedFields"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleNetworkMatchUserDefinedField:getRegionSecurityPolicyRuleNetworkMatchUserDefinedField":{"properties":{"name":{"type":"string","description":"The name of the Region Security Policy.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Matching values of the field. Each element can be a 32-bit unsigned decimal or hexadecimal (starting with \"0x\") number (e.g. \"64\") or range (e.g. \"0x400-0x7ff\").\n"}},"type":"object","required":["name","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfig:getRegionSecurityPolicyRulePreconfiguredWafConfig":{"properties":{"exclusions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusion:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusion"},"description":"An exclusion to apply during preconfigured WAF evaluation.\n"}},"type":"object","required":["exclusions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusion:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusion":{"properties":{"requestCookies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky"},"description":"Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation.\n"},"requestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader"},"description":"Request header whose value will be excluded from inspection during preconfigured WAF evaluation.\n"},"requestQueryParams":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam"},"description":"Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation.\nNote that the parameter can be in the query string or in the POST body.\n"},"requestUris":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri"},"description":"Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation.\nWhen specifying this field, the query or fragment part should be excluded.\n"},"targetRuleIds":{"type":"array","items":{"type":"string"},"description":"A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion.\nIf omitted, it refers to all the rule IDs under the WAF rule set.\n"},"targetRuleSet":{"type":"string","description":"Target WAF rule set to apply the preconfigured WAF exclusion.\n"}},"type":"object","required":["requestCookies","requestHeaders","requestQueryParams","requestUris","targetRuleIds","targetRuleSet"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value. Possible values: [\"CONTAINS\", \"ENDS_WITH\", \"EQUALS\", \"EQUALS_ANY\", \"STARTS_WITH\"]\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value. Possible values: [\"CONTAINS\", \"ENDS_WITH\", \"EQUALS\", \"EQUALS_ANY\", \"STARTS_WITH\"]\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value. Possible values: [\"CONTAINS\", \"ENDS_WITH\", \"EQUALS\", \"EQUALS_ANY\", \"STARTS_WITH\"]\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:getRegionSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value.\nAvailable options:\nEQUALS: The operator matches if the field value equals the specified value.\nSTARTS_WITH: The operator matches if the field value starts with the specified value.\nENDS_WITH: The operator matches if the field value ends with the specified value.\nCONTAINS: The operator matches if the field value contains the specified value.\nEQUALS_ANY: The operator matches if the field value is any value. Possible values: [\"CONTAINS\", \"ENDS_WITH\", \"EQUALS\", \"EQUALS_ANY\", \"STARTS_WITH\"]\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation.\nThe field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleRateLimitOption:getRegionSecurityPolicyRuleRateLimitOption":{"properties":{"banDurationSec":{"type":"integer","description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e.\nIf specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.\n"},"banThresholds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleRateLimitOptionBanThreshold:getRegionSecurityPolicyRuleRateLimitOptionBanThreshold"},"description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e.\nIf specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.\n"},"conformAction":{"type":"string","description":"Action to take for requests that are under the configured rate limit threshold.\nValid option is \"allow\" only.\n"},"enforceOnKey":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on. Possible values are:\n* ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKey\" is not configured.\n* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.\n* HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.\n* XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.\n* HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.\n* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.\n* SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.\n* REGION_CODE: The country/region from which the request originates.\n* TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. Possible values: [\"ALL\", \"IP\", \"HTTP_HEADER\", \"XFF_IP\", \"HTTP_COOKIE\", \"HTTP_PATH\", \"SNI\", \"REGION_CODE\", \"TLS_JA3_FINGERPRINT\", \"TLS_JA4_FINGERPRINT\", \"USER_IP\"]\n"},"enforceOnKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig:getRegionSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig"},"description":"If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.\nYou can specify up to 3 enforceOnKeyConfigs.\nIf enforceOnKeyConfigs is specified, enforceOnKey must not be specified.\n"},"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"exceedAction":{"type":"string","description":"Action to take for requests that are above the configured rate limit threshold, to deny with a specified HTTP response code.\nValid options are deny(STATUS), where valid values for STATUS are 403, 404, 429, and 502.\n"},"rateLimitThresholds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRegionSecurityPolicyRuleRateLimitOptionRateLimitThreshold:getRegionSecurityPolicyRuleRateLimitOptionRateLimitThreshold"},"description":"Threshold at which to begin ratelimiting.\n"}},"type":"object","required":["banDurationSec","banThresholds","conformAction","enforceOnKey","enforceOnKeyConfigs","enforceOnKeyName","exceedAction","rateLimitThresholds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleRateLimitOptionBanThreshold:getRegionSecurityPolicyRuleRateLimitOptionBanThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object","required":["count","intervalSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig:getRegionSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig":{"properties":{"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types:\nHTTP_HEADER -- Name of the HTTP header whose value is taken as the key value.\nHTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"enforceOnKeyType":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on. Possible values are:\n* ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured.\n* IP: The source IP address of the request is the key. Each IP has this limit enforced separately.\n* HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL.\n* XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP.\n* HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL.\n* HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes.\n* SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.\n* REGION_CODE: The country/region from which the request originates.\n* TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.\n* USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. Possible values: [\"ALL\", \"IP\", \"HTTP_HEADER\", \"XFF_IP\", \"HTTP_COOKIE\", \"HTTP_PATH\", \"SNI\", \"REGION_CODE\", \"TLS_JA3_FINGERPRINT\", \"TLS_JA4_FINGERPRINT\", \"USER_IP\"]\n"}},"type":"object","required":["enforceOnKeyName","enforceOnKeyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyRuleRateLimitOptionRateLimitThreshold:getRegionSecurityPolicyRuleRateLimitOptionRateLimitThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object","required":["count","intervalSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRegionSecurityPolicyUserDefinedField:getRegionSecurityPolicyUserDefinedField":{"properties":{"base":{"type":"string","description":"The base relative to which 'offset' is measured. Possible values are:\n- IPV4: Points to the beginning of the IPv4 header.\n- IPV6: Points to the beginning of the IPv6 header.\n- TCP: Points to the beginning of the TCP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments.\n- UDP: Points to the beginning of the UDP header, skipping over any IPv4 options or IPv6 extension headers. Not present for non-first fragments. Possible values: [\"IPV4\", \"IPV6\", \"TCP\", \"UDP\"]\n"},"mask":{"type":"string","description":"If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.\nEncoded as a hexadecimal number (starting with \"0x\").\nThe last byte of the field (in network byte order) corresponds to the least significant byte of the mask.\n"},"name":{"type":"string","description":"The name of the Region Security Policy.\n"},"offset":{"type":"integer","description":"Offset of the first byte of the field (in network byte order) relative to 'base'.\n"},"size":{"type":"integer","description":"Size of the field in bytes. Valid values: 1-4.\n"}},"type":"object","required":["base","mask","name","offset","size"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationBlockHealthInfo:getReservationBlockHealthInfo":{"properties":{"degradedSubBlockCount":{"type":"integer","description":"The number of sub-blocks that are degraded.\n"},"healthStatus":{"type":"string","description":"The health status of the reservation block.\n"},"healthySubBlockCount":{"type":"integer","description":"The number of sub-blocks that are healthy.\n"}},"type":"object","required":["degradedSubBlockCount","healthStatus","healthySubBlockCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationBlockPhysicalTopology:getReservationBlockPhysicalTopology":{"properties":{"block":{"type":"string","description":"The hash of the capacity block within the cluster.\n"},"cluster":{"type":"string","description":"The cluster name of the reservation block.\n"}},"type":"object","required":["block","cluster"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationBlockReservationMaintenance:getReservationBlockReservationMaintenance":{"properties":{"instanceMaintenanceOngoingCount":{"type":"integer","description":"Number of instances that have ongoing maintenance.\n"},"instanceMaintenancePendingCount":{"type":"integer","description":"Number of instances that have pending maintenance.\n"},"maintenanceOngoingCount":{"type":"integer","description":"Number of hosts in the block that have ongoing maintenance.\n"},"maintenancePendingCount":{"type":"integer","description":"Number of hosts in the block that have pending maintenance.\n"},"schedulingType":{"type":"string","description":"The type of maintenance for the reservation.\n"},"subblockInfraMaintenanceOngoingCount":{"type":"integer","description":"Number of sub-block infrastructure that has ongoing maintenance.\n"},"subblockInfraMaintenancePendingCount":{"type":"integer","description":"Number of sub-block infrastructure that has pending maintenance.\n"}},"type":"object","required":["instanceMaintenanceOngoingCount","instanceMaintenancePendingCount","maintenanceOngoingCount","maintenancePendingCount","schedulingType","subblockInfraMaintenanceOngoingCount","subblockInfraMaintenancePendingCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationDeleteAfterDuration:getReservationDeleteAfterDuration":{"properties":{"nanos":{"type":"integer","description":"Number of nanoseconds for the auto-delete duration.\n"},"seconds":{"type":"string","description":"Number of seconds for the auto-delete duration.\n"}},"type":"object","required":["nanos","seconds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationReservationSharingPolicy:getReservationReservationSharingPolicy":{"properties":{"serviceShareType":{"type":"string","description":"Sharing config for all Google Cloud services. Possible values: [\"ALLOW_ALL\", \"DISALLOW_ALL\"]\n"}},"type":"object","required":["serviceShareType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationResourceStatus:getReservationResourceStatus":{"properties":{"healthInfos":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationResourceStatusHealthInfo:getReservationResourceStatusHealthInfo"},"description":"Health information for the reservation.\n"},"reservationBlockCount":{"type":"integer","description":"The number of reservation blocks associated with this reservation.\n"},"reservationMaintenances":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationResourceStatusReservationMaintenance:getReservationResourceStatusReservationMaintenance"},"description":"Maintenance information for this reservation\n"},"specificSkuAllocations":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationResourceStatusSpecificSkuAllocation:getReservationResourceStatusSpecificSkuAllocation"},"description":"Allocation Properties of this reservation.\n"}},"type":"object","required":["healthInfos","reservationBlockCount","reservationMaintenances","specificSkuAllocations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationResourceStatusHealthInfo:getReservationResourceStatusHealthInfo":{"properties":{"degradedBlockCount":{"type":"integer","description":"The number of reservation blocks that are degraded.\n"},"healthStatus":{"type":"string","description":"The health status of the reservation.\n"},"healthyBlockCount":{"type":"integer","description":"The number of reservation blocks that are healthy.\n"}},"type":"object","required":["degradedBlockCount","healthStatus","healthyBlockCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationResourceStatusReservationMaintenance:getReservationResourceStatusReservationMaintenance":{"properties":{"instanceMaintenanceOngoingCount":{"type":"integer","description":"Describes number of instances that have ongoing maintenance.\n"},"instanceMaintenancePendingCount":{"type":"integer","description":"Describes number of instances that have pending maintenance.\n"},"maintenanceOngoingCount":{"type":"integer","description":"Progress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have ongoing maintenance.\n"},"maintenancePendingCount":{"type":"integer","description":"Progress for ongoing maintenance for this group of VMs/hosts. Describes number of hosts in the block that have pending maintenance.\n"},"schedulingType":{"type":"string","description":"The type of maintenance for the reservation.\n"},"subblockInfraMaintenanceOngoingCount":{"type":"integer","description":"Describes number of subblock Infrastructure that has ongoing maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not all VM Families will support this field.\n"},"subblockInfraMaintenancePendingCount":{"type":"integer","description":"Describes number of subblock Infrastructure that has pending maintenance. Here, Subblock Infrastructure Maintenance pertains to upstream hardware contained in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not all VM Families will support this field.\n"},"upcomingGroupMaintenances":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance:getReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance"},"description":"Maintenance information on this group of VMs.\n"}},"type":"object","required":["instanceMaintenanceOngoingCount","instanceMaintenancePendingCount","maintenanceOngoingCount","maintenancePendingCount","schedulingType","subblockInfraMaintenanceOngoingCount","subblockInfraMaintenancePendingCount","upcomingGroupMaintenances"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance:getReservationResourceStatusReservationMaintenanceUpcomingGroupMaintenance":{"properties":{"canReschedule":{"type":"boolean","description":"Indicates if the maintenance can be customer triggered.\n"},"latestWindowStartTime":{"type":"string","description":"The latest time for the planned maintenance window to start. This timestamp value is in RFC3339 text format.\n"},"maintenanceOnShutdown":{"type":"boolean","description":"Indicates whether the UpcomingMaintenance will be triggered on VM shutdown.\n"},"maintenanceReasons":{"type":"array","items":{"type":"string"},"description":"The reasons for the maintenance. Only valid for vms.\n"},"maintenanceStatus":{"type":"string","description":"Status of the maintenance.\n"},"type":{"type":"string","description":"Defines the type of maintenance.\n"},"windowEndTime":{"type":"string","description":"The time by which the maintenance disruption will be completed. This timestamp value is in RFC3339 text format.\n"},"windowStartTime":{"type":"string","description":"The current start time of the maintenance window. This timestamp value is in RFC3339 text format.\n"}},"type":"object","required":["canReschedule","latestWindowStartTime","maintenanceOnShutdown","maintenanceReasons","maintenanceStatus","type","windowEndTime","windowStartTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationResourceStatusSpecificSkuAllocation:getReservationResourceStatusSpecificSkuAllocation":{"properties":{"sourceInstanceTemplateId":{"type":"string","description":"ID of the instance template used to populate reservation properties.\n"},"utilizations":{"type":"object","additionalProperties":{"type":"string"},"description":"Per service utilization breakdown. The Key is the Google Cloud managed service name.\n"}},"type":"object","required":["sourceInstanceTemplateId","utilizations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationShareSetting:getReservationShareSetting":{"properties":{"projectMaps":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationShareSettingProjectMap:getReservationShareSettingProjectMap"},"description":"A map of project number and project config. This is only valid when shareType's value is SPECIFIC_PROJECTS.\n"},"projects":{"type":"array","items":{"type":"string"},"description":"List of project IDs with which the reservation is shared.\n"},"shareType":{"type":"string","description":"Type of sharing for this shared-reservation Possible values: [\"LOCAL\", \"SPECIFIC_PROJECTS\"]\n"}},"type":"object","required":["projectMaps","projects","shareType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationShareSettingProjectMap:getReservationShareSettingProjectMap":{"properties":{"id":{"type":"string"},"projectId":{"type":"string","description":"The project id/number, should be same as the key of this project config in the project map.\n"}},"type":"object","required":["id","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSpecificReservation:getReservationSpecificReservation":{"properties":{"assuredCount":{"type":"integer","description":"Indicates how many instances are actually usable currently.\n"},"count":{"type":"integer","description":"The number of resources that are allocated.\n"},"inUseCount":{"type":"integer","description":"How many instances are in use.\n"},"instanceProperties":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationSpecificReservationInstanceProperty:getReservationSpecificReservationInstanceProperty"},"description":"The instance properties for the reservation.\n"},"sourceInstanceTemplate":{"type":"string","description":"Specifies the instance template to create the reservation. If you use this field, you must exclude the\ninstanceProperties field.\n"}},"type":"object","required":["assuredCount","count","inUseCount","instanceProperties","sourceInstanceTemplate"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSpecificReservationInstanceProperty:getReservationSpecificReservationInstanceProperty":{"properties":{"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationSpecificReservationInstancePropertyGuestAccelerator:getReservationSpecificReservationInstancePropertyGuestAccelerator"},"description":"Guest accelerator type and count.\n"},"localSsds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getReservationSpecificReservationInstancePropertyLocalSsd:getReservationSpecificReservationInstancePropertyLocalSsd"},"description":"The amount of local ssd to reserve with each instance. This\nreserves disks of type 'local-ssd'.\n"},"locationHint":{"type":"string","description":"An opaque location hint used to place the allocation close to other resources. This field is for use by internal tools that use the public API.\n"},"machineType":{"type":"string","description":"The name of the machine type to reserve.\n"},"maintenanceInterval":{"type":"string","description":"Specifies the frequency of planned maintenance events. Possible values: [\"AS_NEEDED\", \"PERIODIC\", \"RECURRENT\"]\n"},"minCpuPlatform":{"type":"string","description":"The minimum CPU platform for the reservation. For example,\n'\"Intel Skylake\"'. See\nthe CPU platform availability reference](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform#availablezones)\nfor information on available CPU platforms.\n"}},"type":"object","required":["guestAccelerators","localSsds","locationHint","machineType","maintenanceInterval","minCpuPlatform"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSpecificReservationInstancePropertyGuestAccelerator:getReservationSpecificReservationInstancePropertyGuestAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the guest accelerator cards exposed to\nthis instance.\n"},"acceleratorType":{"type":"string","description":"The full or partial URL of the accelerator type to\nattach to this instance. For example:\n'projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-p100'\n\nIf you are creating an instance template, specify only the accelerator name.\n"}},"type":"object","required":["acceleratorCount","acceleratorType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSpecificReservationInstancePropertyLocalSsd:getReservationSpecificReservationInstancePropertyLocalSsd":{"properties":{"diskSizeGb":{"type":"integer","description":"The size of the disk in base-2 GB.\n"},"interface":{"type":"string","description":"The disk interface to use for attaching this disk. Default value: \"SCSI\" Possible values: [\"SCSI\", \"NVME\"]\n"}},"type":"object","required":["diskSizeGb","interface"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSubBlockHealthInfo:getReservationSubBlockHealthInfo":{"properties":{"degradedHostCount":{"type":"integer","description":"The number of degraded hosts in the reservation sub-block.\n"},"degradedInfraCount":{"type":"integer","description":"The number of degraded infrastructure (e.g. NVLink domain) in the reservation sub-block.\n"},"healthStatus":{"type":"string","description":"The health status of the reservation sub-block.\n"},"healthyHostCount":{"type":"integer","description":"The number of healthy hosts in the reservation sub-block.\n"},"healthyInfraCount":{"type":"integer","description":"The number of healthy infrastructure (e.g. NVLink domain) in the reservation sub-block.\n"}},"type":"object","required":["degradedHostCount","degradedInfraCount","healthStatus","healthyHostCount","healthyInfraCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSubBlockPhysicalTopology:getReservationSubBlockPhysicalTopology":{"properties":{"block":{"type":"string","description":"The hash of the capacity block within the cluster.\n"},"cluster":{"type":"string","description":"The cluster name of the reservation sub-block.\n"},"subBlock":{"type":"string","description":"The hash of the capacity sub-block within the capacity block.\n"}},"type":"object","required":["block","cluster","subBlock"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getReservationSubBlockReservationSubBlockMaintenance:getReservationSubBlockReservationSubBlockMaintenance":{"properties":{"instanceMaintenanceOngoingCount":{"type":"integer","description":"Number of instances that have ongoing maintenance.\n"},"instanceMaintenancePendingCount":{"type":"integer","description":"Number of instances that have pending maintenance.\n"},"maintenanceOngoingCount":{"type":"integer","description":"Number of hosts in the sub-block that have ongoing maintenance.\n"},"maintenancePendingCount":{"type":"integer","description":"Number of hosts in the sub-block that have pending maintenance.\n"},"schedulingType":{"type":"string","description":"The type of maintenance for the reservation.\n"},"subblockInfraMaintenanceOngoingCount":{"type":"integer","description":"Number of sub-block infrastructure that has ongoing maintenance.\n"},"subblockInfraMaintenancePendingCount":{"type":"integer","description":"Number of sub-block infrastructure that has pending maintenance.\n"}},"type":"object","required":["instanceMaintenanceOngoingCount","instanceMaintenancePendingCount","maintenanceOngoingCount","maintenancePendingCount","schedulingType","subblockInfraMaintenanceOngoingCount","subblockInfraMaintenancePendingCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicyDiskConsistencyGroupPolicy:getResourcePolicyDiskConsistencyGroupPolicy":{"properties":{"enabled":{"type":"boolean","description":"Enable disk consistency on the resource policy.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicyGroupPlacementPolicy:getResourcePolicyGroupPlacementPolicy":{"properties":{"availabilityDomainCount":{"type":"integer","description":"The number of availability domains instances will be spread across. If two instances are in different\navailability domain, they will not be put in the same low latency network\n"},"collocation":{"type":"string","description":"Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network.\nSpecify 'COLLOCATED' to enable collocation. Can only be specified with 'vm_count'. If compute instances are created\nwith a COLLOCATED policy, then exactly 'vm_count' instances must be created at the same time with the resource policy\nattached. Possible values: [\"COLLOCATED\"]\n"},"gpuTopology":{"type":"string","description":"Specifies the shape of the GPU slice, in slice based GPU families eg. A4X.\n"},"maxDistance":{"type":"integer","description":"Specifies the number of max logical switches.\n"},"tpuTopology":{"type":"string","description":"Specifies the shape of the TPU slice.\n"},"vmCount":{"type":"integer","description":"Number of VMs in this placement group. Google does not recommend that you use this field\nunless you use a compact policy and you want your policy to work only if it contains this\nexact number of VMs.\n"}},"type":"object","required":["availabilityDomainCount","collocation","gpuTopology","maxDistance","tpuTopology","vmCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicyInstanceSchedulePolicy:getResourcePolicyInstanceSchedulePolicy":{"properties":{"expirationTime":{"type":"string","description":"The expiration time of the schedule. The timestamp is an RFC3339 string.\n"},"startTime":{"type":"string","description":"The start time of the schedule. The timestamp is an RFC3339 string.\n"},"timeZone":{"type":"string","description":"Specifies the time zone to be used in interpreting the schedule. The value of this field must be a time zone name\nfrom the tz database: http://en.wikipedia.org/wiki/Tz_database.\n"},"vmStartSchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicyInstanceSchedulePolicyVmStartSchedule:getResourcePolicyInstanceSchedulePolicyVmStartSchedule"},"description":"Specifies the schedule for starting instances.\n"},"vmStopSchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicyInstanceSchedulePolicyVmStopSchedule:getResourcePolicyInstanceSchedulePolicyVmStopSchedule"},"description":"Specifies the schedule for stopping instances.\n"}},"type":"object","required":["expirationTime","startTime","timeZone","vmStartSchedules","vmStopSchedules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicyInstanceSchedulePolicyVmStartSchedule:getResourcePolicyInstanceSchedulePolicyVmStartSchedule":{"properties":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.\n"}},"type":"object","required":["schedule"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicyInstanceSchedulePolicyVmStopSchedule:getResourcePolicyInstanceSchedulePolicyVmStopSchedule":{"properties":{"schedule":{"type":"string","description":"Specifies the frequency for the operation, using the unix-cron format.\n"}},"type":"object","required":["schedule"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicy:getResourcePolicySnapshotSchedulePolicy":{"properties":{"retentionPolicies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicyRetentionPolicy:getResourcePolicySnapshotSchedulePolicyRetentionPolicy"},"description":"Retention policy applied to snapshots created by this resource policy.\n"},"schedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicySchedule:getResourcePolicySnapshotSchedulePolicySchedule"},"description":"Contains one of an 'hourlySchedule', 'dailySchedule', or 'weeklySchedule'.\n"},"snapshotProperties":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicySnapshotProperty:getResourcePolicySnapshotSchedulePolicySnapshotProperty"},"description":"Properties with which the snapshots are created, such as labels.\n"}},"type":"object","required":["retentionPolicies","schedules","snapshotProperties"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicyRetentionPolicy:getResourcePolicySnapshotSchedulePolicyRetentionPolicy":{"properties":{"maxRetentionDays":{"type":"integer","description":"Maximum age of the snapshot that is allowed to be kept.\n"},"onSourceDiskDelete":{"type":"string","description":"Specifies the behavior to apply to scheduled snapshots when\nthe source disk is deleted. Default value: \"KEEP_AUTO_SNAPSHOTS\" Possible values: [\"KEEP_AUTO_SNAPSHOTS\", \"APPLY_RETENTION_POLICY\"]\n"}},"type":"object","required":["maxRetentionDays","onSourceDiskDelete"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicySchedule:getResourcePolicySnapshotSchedulePolicySchedule":{"properties":{"dailySchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleDailySchedule:getResourcePolicySnapshotSchedulePolicyScheduleDailySchedule"},"description":"The policy will execute every nth day at the specified time.\n"},"hourlySchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule:getResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule"},"description":"The policy will execute every nth hour starting at the specified time.\n"},"weeklySchedules":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule:getResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule"},"description":"Allows specifying a snapshot time for each day of the week.\n"}},"type":"object","required":["dailySchedules","hourlySchedules","weeklySchedules"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleDailySchedule:getResourcePolicySnapshotSchedulePolicyScheduleDailySchedule":{"properties":{"daysInCycle":{"type":"integer","description":"Defines a schedule with units measured in days. The value determines how many days pass between the start of each cycle. Days in cycle for snapshot schedule policy must be 1.\n"},"startTime":{"type":"string","description":"This must be in UTC format that resolves to one of\n00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For example,\nboth 13:00-5 and 08:00 are valid.\n"}},"type":"object","required":["daysInCycle","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule:getResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule":{"properties":{"hoursInCycle":{"type":"integer","description":"The number of hours between snapshots.\n"},"startTime":{"type":"string","description":"Time within the window to start the operations.\nIt must be in an hourly format \"HH:MM\",\nwhere HH : [00-23] and MM : [00] GMT. eg: 21:00\n"}},"type":"object","required":["hoursInCycle","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule:getResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule":{"properties":{"dayOfWeeks":{"type":"array","items":{"$ref":"#/types/gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek:getResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek"},"description":"May contain up to seven (one for each day of the week) snapshot times.\n"}},"type":"object","required":["dayOfWeeks"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek:getResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek":{"properties":{"day":{"type":"string","description":"The day of the week to create the snapshot. e.g. MONDAY Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]\n"},"startTime":{"type":"string","description":"Time within the window to start the operations.\nIt must be in format \"HH:MM\", where HH : [00-23] and MM : [00-00] GMT.\n"}},"type":"object","required":["day","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicySnapshotSchedulePolicySnapshotProperty:getResourcePolicySnapshotSchedulePolicySnapshotProperty":{"properties":{"chainName":{"type":"string","description":"Creates the new snapshot in the snapshot chain labeled with the\nspecified name. The chain name must be 1-63 characters long and comply\nwith RFC1035.\n"},"guestFlush":{"type":"boolean","description":"Whether to perform a 'guest aware' snapshot.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"A set of key-value pairs.\n"},"storageLocations":{"type":"array","items":{"type":"string"},"description":"Cloud Storage bucket location to store the auto snapshot\n(regional or multi-regional)\n"}},"type":"object","required":["chainName","guestFlush","labels","storageLocations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getResourcePolicyWorkloadPolicy:getResourcePolicyWorkloadPolicy":{"properties":{"acceleratorTopology":{"type":"string","description":"The accelerator topology. This field can be set only when the workload policy type is HIGH_THROUGHPUT\nand cannot be set if max topology distance is set.\n"},"maxTopologyDistance":{"type":"string","description":"The maximum topology distance. This field can be set only when the workload policy type is HIGH_THROUGHPUT\nand cannot be set if accelerator topology is set. Possible values: [\"BLOCK\", \"CLUSTER\", \"SUBBLOCK\"]\n"},"type":{"type":"string","description":"The type of workload policy. Possible values: [\"HIGH_AVAILABILITY\", \"HIGH_THROUGHPUT\"]\n"}},"type":"object","required":["acceleratorTopology","maxTopologyDistance","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterBgp:getRouterBgp":{"properties":{"advertiseMode":{"type":"string","description":"User-specified flag to indicate which mode to use for advertisement. Default value: \"DEFAULT\" Possible values: [\"DEFAULT\", \"CUSTOM\"]\n"},"advertisedGroups":{"type":"array","items":{"type":"string"},"description":"User-specified list of prefix groups to advertise in custom mode.\nThis field can only be populated if advertiseMode is CUSTOM and\nis advertised to all peers of the router. These groups will be\nadvertised in addition to any specified prefixes. Leave this field\nblank to advertise no custom groups.\n\nThis enum field has the one valid value: ALL_SUBNETS\n"},"advertisedIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterBgpAdvertisedIpRange:getRouterBgpAdvertisedIpRange"},"description":"User-specified list of individual IP ranges to advertise in\ncustom mode. This field can only be populated if advertiseMode\nis CUSTOM and is advertised to all peers of the router. These IP\nranges will be advertised in addition to any specified groups.\nLeave this field blank to advertise no custom IP ranges.\n"},"asn":{"type":"integer","description":"Local BGP Autonomous System Number (ASN). Must be an RFC6996\nprivate ASN, either 16-bit or 32-bit. The value will be fixed for\nthis router resource. All VPN tunnels that link to this router\nwill have the same local ASN.\n"},"identifierRange":{"type":"string","description":"Explicitly specifies a range of valid BGP Identifiers for this Router.\nIt is provided as a link-local IPv4 range (from 169.254.0.0/16), of\nsize at least /30, even if the BGP sessions are over IPv6. It must\nnot overlap with any IPv4 BGP session ranges. Other vendors commonly\ncall this router ID.\n"},"keepaliveInterval":{"type":"integer","description":"The interval in seconds between BGP keepalive messages that are sent\nto the peer. Hold time is three times the interval at which keepalive\nmessages are sent, and the hold time is the maximum number of seconds\nallowed to elapse between successive keepalive messages that BGP\nreceives from a peer.\n\nBGP will use the smaller of either the local hold time value or the\npeer's hold time value as the hold time for the BGP connection\nbetween the two peers. If set, this value must be between 20 and 60.\nThe default is 20.\n"}},"type":"object","required":["advertiseMode","advertisedGroups","advertisedIpRanges","asn","identifierRange","keepaliveInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterBgpAdvertisedIpRange:getRouterBgpAdvertisedIpRange":{"properties":{"description":{"type":"string","description":"User-specified description for the IP range.\n"},"range":{"type":"string","description":"The IP range to advertise. The value must be a\nCIDR-formatted string.\n"}},"type":"object","required":["description","range"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterMd5AuthenticationKey:getRouterMd5AuthenticationKey":{"properties":{"key":{"type":"string","description":"Value of the key used for MD5 authentication.\n"},"name":{"type":"string","description":"The name of the router.\n"}},"type":"object","required":["key","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterNatLogConfig:getRouterNatLogConfig":{"properties":{"enable":{"type":"boolean","description":"Indicates whether or not to export logs.\n"},"filter":{"type":"string","description":"Specifies the desired filtering of logs on this NAT. Possible values: [\"ERRORS_ONLY\", \"TRANSLATIONS_ONLY\", \"ALL\"]\n"}},"type":"object","required":["enable","filter"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterNatNat64Subnetwork:getRouterNatNat64Subnetwork":{"properties":{"name":{"type":"string","description":"Name of the NAT service. The name must be 1-63 characters long and\ncomply with RFC1035.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterNatRule:getRouterNatRule":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterNatRuleAction:getRouterNatRuleAction"},"description":"The action to be enforced for traffic that matches this rule.\n"},"description":{"type":"string","description":"An optional description of this rule.\n"},"match":{"type":"string","description":"CEL expression that specifies the match condition that egress traffic from a VM is evaluated against.\nIf it evaluates to true, the corresponding action is enforced.\n\nThe following examples are valid match expressions for public NAT:\n\n\"inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')\"\n\n\"destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'\"\n\nThe following example is a valid match expression for private NAT:\n\n\"nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'\"\n"},"ruleNumber":{"type":"integer","description":"An integer uniquely identifying a rule in the list.\nThe rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT.\n"}},"type":"object","required":["actions","description","match","ruleNumber"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterNatRuleAction:getRouterNatRuleAction":{"properties":{"sourceNatActiveIps":{"type":"array","items":{"type":"string"},"description":"A list of URLs of the IP resources used for this NAT rule.\nThese IP addresses must be valid static external IP addresses assigned to the project.\nThis field is used for public NAT.\n"},"sourceNatActiveRanges":{"type":"array","items":{"type":"string"},"description":"A list of URLs of the subnetworks used as source ranges for this NAT Rule.\nThese subnetworks must have purpose set to PRIVATE_NAT.\nThis field is used for private NAT.\n"},"sourceNatDrainIps":{"type":"array","items":{"type":"string"},"description":"A list of URLs of the IP resources to be drained.\nThese IPs must be valid static external IPs that have been assigned to the NAT.\nThese IPs should be used for updating/patching a NAT rule only.\nThis field is used for public NAT.\n"},"sourceNatDrainRanges":{"type":"array","items":{"type":"string"},"description":"A list of URLs of subnetworks representing source ranges to be drained.\nThis is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule.\nThis field is used for private NAT.\n"}},"type":"object","required":["sourceNatActiveIps","sourceNatActiveRanges","sourceNatDrainIps","sourceNatDrainRanges"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterNatSubnetwork:getRouterNatSubnetwork":{"properties":{"name":{"type":"string","description":"Name of the NAT service. The name must be 1-63 characters long and\ncomply with RFC1035.\n"},"secondaryIpRangeNames":{"type":"array","items":{"type":"string"},"description":"List of the secondary ranges of the subnetwork that are allowed\nto use NAT. This can be populated only if\n'LIST_OF_SECONDARY_IP_RANGES' is one of the values in\nsourceIpRangesToNat\n"},"sourceIpRangesToNats":{"type":"array","items":{"type":"string"},"description":"List of options for which source IPs in the subnetwork\nshould have NAT enabled. Supported values include:\n'ALL_IP_RANGES', 'LIST_OF_SECONDARY_IP_RANGES',\n'PRIMARY_IP_RANGE'.\n"}},"type":"object","required":["name","secondaryIpRangeNames","sourceIpRangesToNats"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterParam:getRouterParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the router. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRoute:getRouterStatusBestRoute":{"properties":{"asPaths":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRouteAsPath:getRouterStatusBestRouteAsPath"}},"creationTimestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property\nwhen you create the resource.\n"},"destRange":{"type":"string","description":"The destination range of outgoing packets that this route applies to.\nOnly IPv4 is supported.\n"},"name":{"type":"string","description":"The name of the router.\n"},"network":{"type":"string","description":"The network name or resource link to the parent\nnetwork of this subnetwork.\n"},"nextHopGateway":{"type":"string","description":"URL to a gateway that should handle matching packets.\nCurrently, you can only specify the internet gateway, using a full or\npartial valid URL:\n* 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway'\n* 'projects/project/global/gateways/default-internet-gateway'\n* 'global/gateways/default-internet-gateway'\n* The string 'default-internet-gateway'.\n"},"nextHopHub":{"type":"string","description":"The hub network that should handle matching packets, which should conform to RFC1035.\n"},"nextHopIlb":{"type":"string","description":"The IP address or URL to a forwarding rule of type\nloadBalancingScheme=INTERNAL that should handle matching\npackets.\n\nWith the GA provider you can only specify the forwarding\nrule as a partial or full URL. For example, the following\nare all valid values:\n* 10.128.0.56\n* https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n* regions/region/forwardingRules/forwardingRule\n\nWhen the beta provider, you can also specify the IP address\nof a forwarding rule from the same VPC or any peered VPC.\n\nNote that this can only be used when the destinationRange is\na public (non-RFC 1918) IP CIDR range.\n"},"nextHopInstance":{"type":"string","description":"URL to an instance that should handle matching packets.\nYou can specify this as a full or partial URL. For example:\n* 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance'\n* 'projects/project/zones/zone/instances/instance'\n* 'zones/zone/instances/instance'\n* Just the instance name, with the zone in 'next_hop_instance_zone'.\n"},"nextHopInstanceZone":{"type":"string","description":"The zone of the instance specified in next_hop_instance. Omit if\u003cspan pulumi-lang-nodejs=\" nextHopInstance \" pulumi-lang-dotnet=\" NextHopInstance \" pulumi-lang-go=\" nextHopInstance \" pulumi-lang-python=\" next_hop_instance \" pulumi-lang-yaml=\" nextHopInstance \" pulumi-lang-java=\" nextHopInstance \"\u003e next_hop_instance \u003c/span\u003eis specified as a URL.\n"},"nextHopInterRegionCost":{"type":"string","description":"Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions.\n"},"nextHopIp":{"type":"string","description":"Network IP address of an instance that should handle matching packets.\n"},"nextHopMed":{"type":"string","description":"Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.\n"},"nextHopNetwork":{"type":"string","description":"URL to a Network that should handle matching packets.\n"},"nextHopOrigin":{"type":"string","description":"Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.\n"},"nextHopPeering":{"type":"string","description":"The network peering name that should handle matching packets, which should conform to RFC1035.\n"},"nextHopVpnTunnel":{"type":"string","description":"URL to a VpnTunnel that should handle matching packets.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRouteParam:getRouterStatusBestRouteParam"},"description":"Additional params passed with the request, but not persisted as part of resource payload\n"},"priority":{"type":"integer","description":"The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length.\n\nIn the case of two routes with equal prefix length, the one with the\nlowest-numbered priority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.\n"},"project":{"type":"string","description":"The ID of the project in which the resource\nbelongs. If it is not provided, the provider project is used.\n"},"routeStatus":{"type":"string","description":"The status of the route, which can be one of the following values:\n- 'ACTIVE' for an active route\n- 'INACTIVE' for an inactive route\n"},"routeType":{"type":"string","description":"The type of this route, which can be one of the following values:\n- 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers\n- 'SUBNET' for a route from a subnet of the VPC\n- 'BGP' for a route learned from a BGP peer of this router\n- 'STATIC' for a static route\n"},"selfLink":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of instance tags to which this route applies.\n"},"warnings":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRouteWarning:getRouterStatusBestRouteWarning"},"description":"If potential misconfigurations are detected for this route, this field will be populated with warning messages.\n"}},"type":"object","required":["asPaths","creationTimestamp","description","destRange","name","network","nextHopGateway","nextHopHub","nextHopIlb","nextHopInstance","nextHopInstanceZone","nextHopInterRegionCost","nextHopIp","nextHopMed","nextHopNetwork","nextHopOrigin","nextHopPeering","nextHopVpnTunnel","params","priority","project","routeStatus","routeType","selfLink","tags","warnings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRouteAsPath:getRouterStatusBestRouteAsPath":{"properties":{"asLists":{"type":"array","items":{"type":"integer"},"description":"The AS numbers of the AS Path.\n"},"pathSegmentType":{"type":"string","description":"The type of the AS Path, which can be one of the following values:\n- 'AS_SET': unordered set of autonomous systems that the route in has traversed\n- 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed\n- 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed\n- 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed\n"}},"type":"object","required":["asLists","pathSegmentType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRouteParam:getRouterStatusBestRouteParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the route. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRouteWarning:getRouterStatusBestRouteWarning":{"properties":{"code":{"type":"string","description":"A warning code, if applicable. For example, Compute Engine returns\nNO_RESULTS_ON_PAGE if there are no results in the response.\n"},"datas":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRouteWarningData:getRouterStatusBestRouteWarningData"},"description":"Metadata about this warning in key: value format. For example:\n\"data\": [  {  \"key\": \"scope\",  \"value\": \"zones/us-east1-d\"  }\n"},"message":{"type":"string","description":"A human-readable description of the warning code.\n"}},"type":"object","required":["code","datas","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRouteWarningData:getRouterStatusBestRouteWarningData":{"properties":{"key":{"type":"string","description":"A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).\n"},"value":{"type":"string","description":"A warning data value corresponding to the key.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRoutesForRouter:getRouterStatusBestRoutesForRouter":{"properties":{"asPaths":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRoutesForRouterAsPath:getRouterStatusBestRoutesForRouterAsPath"}},"creationTimestamp":{"type":"string","description":"Creation timestamp in RFC3339 text format.\n"},"description":{"type":"string","description":"An optional description of this resource. Provide this property\nwhen you create the resource.\n"},"destRange":{"type":"string","description":"The destination range of outgoing packets that this route applies to.\nOnly IPv4 is supported.\n"},"name":{"type":"string","description":"The name of the router.\n"},"network":{"type":"string","description":"The network name or resource link to the parent\nnetwork of this subnetwork.\n"},"nextHopGateway":{"type":"string","description":"URL to a gateway that should handle matching packets.\nCurrently, you can only specify the internet gateway, using a full or\npartial valid URL:\n* 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway'\n* 'projects/project/global/gateways/default-internet-gateway'\n* 'global/gateways/default-internet-gateway'\n* The string 'default-internet-gateway'.\n"},"nextHopHub":{"type":"string","description":"The hub network that should handle matching packets, which should conform to RFC1035.\n"},"nextHopIlb":{"type":"string","description":"The IP address or URL to a forwarding rule of type\nloadBalancingScheme=INTERNAL that should handle matching\npackets.\n\nWith the GA provider you can only specify the forwarding\nrule as a partial or full URL. For example, the following\nare all valid values:\n* 10.128.0.56\n* https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule\n* regions/region/forwardingRules/forwardingRule\n\nWhen the beta provider, you can also specify the IP address\nof a forwarding rule from the same VPC or any peered VPC.\n\nNote that this can only be used when the destinationRange is\na public (non-RFC 1918) IP CIDR range.\n"},"nextHopInstance":{"type":"string","description":"URL to an instance that should handle matching packets.\nYou can specify this as a full or partial URL. For example:\n* 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance'\n* 'projects/project/zones/zone/instances/instance'\n* 'zones/zone/instances/instance'\n* Just the instance name, with the zone in 'next_hop_instance_zone'.\n"},"nextHopInstanceZone":{"type":"string","description":"The zone of the instance specified in next_hop_instance. Omit if\u003cspan pulumi-lang-nodejs=\" nextHopInstance \" pulumi-lang-dotnet=\" NextHopInstance \" pulumi-lang-go=\" nextHopInstance \" pulumi-lang-python=\" next_hop_instance \" pulumi-lang-yaml=\" nextHopInstance \" pulumi-lang-java=\" nextHopInstance \"\u003e next_hop_instance \u003c/span\u003eis specified as a URL.\n"},"nextHopInterRegionCost":{"type":"string","description":"Internal fixed region-to-region cost that Google Cloud calculates based on factors such as network performance, distance, and available bandwidth between regions.\n"},"nextHopIp":{"type":"string","description":"Network IP address of an instance that should handle matching packets.\n"},"nextHopMed":{"type":"string","description":"Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.\n"},"nextHopNetwork":{"type":"string","description":"URL to a Network that should handle matching packets.\n"},"nextHopOrigin":{"type":"string","description":"Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.\n"},"nextHopPeering":{"type":"string","description":"The network peering name that should handle matching packets, which should conform to RFC1035.\n"},"nextHopVpnTunnel":{"type":"string","description":"URL to a VpnTunnel that should handle matching packets.\n"},"params":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRoutesForRouterParam:getRouterStatusBestRoutesForRouterParam"},"description":"Additional params passed with the request, but not persisted as part of resource payload\n"},"priority":{"type":"integer","description":"The priority of this route. Priority is used to break ties in cases\nwhere there is more than one matching route of equal prefix length.\n\nIn the case of two routes with equal prefix length, the one with the\nlowest-numbered priority value wins.\n\nDefault value is 1000. Valid range is 0 through 65535.\n"},"project":{"type":"string","description":"The ID of the project in which the resource\nbelongs. If it is not provided, the provider project is used.\n"},"routeStatus":{"type":"string","description":"The status of the route, which can be one of the following values:\n- 'ACTIVE' for an active route\n- 'INACTIVE' for an inactive route\n"},"routeType":{"type":"string","description":"The type of this route, which can be one of the following values:\n- 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers\n- 'SUBNET' for a route from a subnet of the VPC\n- 'BGP' for a route learned from a BGP peer of this router\n- 'STATIC' for a static route\n"},"selfLink":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of instance tags to which this route applies.\n"},"warnings":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRoutesForRouterWarning:getRouterStatusBestRoutesForRouterWarning"},"description":"If potential misconfigurations are detected for this route, this field will be populated with warning messages.\n"}},"type":"object","required":["asPaths","creationTimestamp","description","destRange","name","network","nextHopGateway","nextHopHub","nextHopIlb","nextHopInstance","nextHopInstanceZone","nextHopInterRegionCost","nextHopIp","nextHopMed","nextHopNetwork","nextHopOrigin","nextHopPeering","nextHopVpnTunnel","params","priority","project","routeStatus","routeType","selfLink","tags","warnings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRoutesForRouterAsPath:getRouterStatusBestRoutesForRouterAsPath":{"properties":{"asLists":{"type":"array","items":{"type":"integer"},"description":"The AS numbers of the AS Path.\n"},"pathSegmentType":{"type":"string","description":"The type of the AS Path, which can be one of the following values:\n- 'AS_SET': unordered set of autonomous systems that the route in has traversed\n- 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed\n- 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed\n- 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed\n"}},"type":"object","required":["asLists","pathSegmentType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRoutesForRouterParam:getRouterStatusBestRoutesForRouterParam":{"properties":{"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"Resource manager tags to be bound to the route. Tag keys and values have the\nsame definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},\nand values are in the format tagValues/456. The field is ignored when empty.\nThe field is immutable and causes resource replacement when mutated. This field is only\nset at create time and modifying this field after creation will trigger recreation.\nTo apply tags to an existing resource, see the\u003cspan pulumi-lang-nodejs=\" gcp.tags.TagBinding \" pulumi-lang-dotnet=\" gcp.tags.TagBinding \" pulumi-lang-go=\" tags.TagBinding \" pulumi-lang-python=\" tags.TagBinding \" pulumi-lang-yaml=\" gcp.tags.TagBinding \" pulumi-lang-java=\" gcp.tags.TagBinding \"\u003e gcp.tags.TagBinding \u003c/span\u003eresource.\n"}},"type":"object","required":["resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRoutesForRouterWarning:getRouterStatusBestRoutesForRouterWarning":{"properties":{"code":{"type":"string","description":"A warning code, if applicable. For example, Compute Engine returns\nNO_RESULTS_ON_PAGE if there are no results in the response.\n"},"datas":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRouterStatusBestRoutesForRouterWarningData:getRouterStatusBestRoutesForRouterWarningData"},"description":"Metadata about this warning in key: value format. For example:\n\"data\": [  {  \"key\": \"scope\",  \"value\": \"zones/us-east1-d\"  }\n"},"message":{"type":"string","description":"A human-readable description of the warning code.\n"}},"type":"object","required":["code","datas","message"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRouterStatusBestRoutesForRouterWarningData:getRouterStatusBestRoutesForRouterWarningData":{"properties":{"key":{"type":"string","description":"A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).\n"},"value":{"type":"string","description":"A warning data value corresponding to the key.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouter:getRoutersRouter":{"properties":{"bgpPeers":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRoutersRouterBgpPeer:getRoutersRouterBgpPeer"}},"bgps":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRoutersRouterBgp:getRoutersRouterBgp"}},"creationTimestamp":{"type":"string"},"description":{"type":"string"},"encryptedInterconnectRouter":{"type":"boolean"},"interfaces":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRoutersRouterInterface:getRoutersRouterInterface"}},"md5AuthenticationKeys":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRoutersRouterMd5AuthenticationKey:getRoutersRouterMd5AuthenticationKey"}},"name":{"type":"string"},"nats":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRoutersRouterNat:getRoutersRouterNat"}},"network":{"type":"string"},"selfLink":{"type":"string"}},"type":"object","required":["bgps","bgpPeers","creationTimestamp","description","encryptedInterconnectRouter","interfaces","md5AuthenticationKeys","name","nats","network","selfLink"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouterBgp:getRoutersRouterBgp":{"properties":{"advertiseMode":{"type":"string"},"advertisedGroups":{"type":"array","items":{"type":"string"}},"advertisedIpRanges":{"type":"array","items":{"$ref":"#/types/gcp:compute/getRoutersRouterBgpAdvertisedIpRange:getRoutersRouterBgpAdvertisedIpRange"}},"asn":{"type":"integer"},"keepaliveInterval":{"type":"integer"}},"type":"object","required":["advertiseMode","advertisedGroups","advertisedIpRanges","asn","keepaliveInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouterBgpAdvertisedIpRange:getRoutersRouterBgpAdvertisedIpRange":{"properties":{"description":{"type":"string"},"range":{"type":"string"}},"type":"object","required":["description","range"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouterBgpPeer:getRoutersRouterBgpPeer":{"properties":{"advertiseMode":{"type":"string"},"advertisedRoutePriority":{"type":"integer"},"enable":{"type":"string"},"enableIpv6":{"type":"boolean"},"interfaceName":{"type":"string"},"ipAddress":{"type":"string"},"managementType":{"type":"string"},"name":{"type":"string"},"peerAsn":{"type":"integer"},"peerIpAddress":{"type":"string"}},"type":"object","required":["advertiseMode","advertisedRoutePriority","enable","enableIpv6","interfaceName","ipAddress","managementType","name","peerAsn","peerIpAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouterInterface:getRoutersRouterInterface":{"properties":{"ipRange":{"type":"string"},"linkedInterconnectAttachment":{"type":"string"},"linkedVpnTunnel":{"type":"string"},"name":{"type":"string"},"privateIpAddress":{"type":"string"},"redundantInterface":{"type":"string"},"subnetwork":{"type":"string"}},"type":"object","required":["ipRange","linkedInterconnectAttachment","linkedVpnTunnel","name","privateIpAddress","redundantInterface","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouterMd5AuthenticationKey:getRoutersRouterMd5AuthenticationKey":{"properties":{"key":{"type":"string","secret":true},"name":{"type":"string"}},"type":"object","required":["key","name"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getRoutersRouterNat:getRoutersRouterNat":{"properties":{"enableEndpointIndependentMapping":{"type":"boolean"},"icmpIdleTimeoutSec":{"type":"integer"},"minPortsPerVm":{"type":"integer"},"name":{"type":"string"},"natIpAllocateOption":{"type":"string"},"natIps":{"type":"array","items":{"type":"string"}},"sourceSubnetworkIpRangesToNat":{"type":"string"},"tcpEstablishedIdleTimeoutSec":{"type":"integer"},"tcpTransitoryIdleTimeoutSec":{"type":"integer"},"udpIdleTimeoutSec":{"type":"integer"}},"type":"object","required":["enableEndpointIndependentMapping","icmpIdleTimeoutSec","minPortsPerVm","name","natIpAllocateOption","natIps","sourceSubnetworkIpRangesToNat","tcpEstablishedIdleTimeoutSec","tcpTransitoryIdleTimeoutSec","udpIdleTimeoutSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdaptiveProtectionConfig:getSecurityPolicyAdaptiveProtectionConfig":{"properties":{"autoDeployConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyAdaptiveProtectionConfigAutoDeployConfig:getSecurityPolicyAdaptiveProtectionConfigAutoDeployConfig"},"description":"Auto Deploy Config of this security policy\n"},"layer7DdosDefenseConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig"},"description":"Layer 7 DDoS Defense Config of this security policy\n"}},"type":"object","required":["autoDeployConfigs","layer7DdosDefenseConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdaptiveProtectionConfigAutoDeployConfig:getSecurityPolicyAdaptiveProtectionConfigAutoDeployConfig":{"properties":{"confidenceThreshold":{"type":"number","description":"Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold.\n"},"expirationSec":{"type":"integer","description":"Google Cloud Armor stops applying the action in the automatically deployed rule to an identified attacker after this duration. The rule continues to operate against new requests.\n"},"impactedBaselineThreshold":{"type":"number","description":"Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold.\n"},"loadThreshold":{"type":"number","description":"Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold.\n"}},"type":"object","required":["confidenceThreshold","expirationSec","impactedBaselineThreshold","loadThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig:getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig":{"properties":{"enable":{"type":"boolean","description":"If set to true, enables CAAP for L7 DDoS detection.\n"},"ruleVisibility":{"type":"string","description":"Rule visibility. Supported values include: \"STANDARD\", \"PREMIUM\".\n"},"thresholdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig:getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig"},"description":"Configuration options for layer7 adaptive protection for various customizable thresholds.\n"}},"type":"object","required":["enable","ruleVisibility","thresholdConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig:getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig":{"properties":{"autoDeployConfidenceThreshold":{"type":"number"},"autoDeployExpirationSec":{"type":"integer"},"autoDeployImpactedBaselineThreshold":{"type":"number"},"autoDeployLoadThreshold":{"type":"number"},"detectionAbsoluteQps":{"type":"number"},"detectionLoadThreshold":{"type":"number"},"detectionRelativeToBaselineQps":{"type":"number"},"name":{"type":"string","description":"The name of the security policy. Provide either this or a \u003cspan pulumi-lang-nodejs=\"`selfLink`\" pulumi-lang-dotnet=\"`SelfLink`\" pulumi-lang-go=\"`selfLink`\" pulumi-lang-python=\"`self_link`\" pulumi-lang-yaml=\"`selfLink`\" pulumi-lang-java=\"`selfLink`\"\u003e`self_link`\u003c/span\u003e.\n"},"trafficGranularityConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig:getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig"}}},"type":"object","required":["autoDeployConfidenceThreshold","autoDeployExpirationSec","autoDeployImpactedBaselineThreshold","autoDeployLoadThreshold","detectionAbsoluteQps","detectionLoadThreshold","detectionRelativeToBaselineQps","name","trafficGranularityConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig:getSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig":{"properties":{"enableEachUniqueValue":{"type":"boolean","description":"If enabled, traffic matching each unique value for the specified type constitutes a separate traffic unit. It can only be set to true if value is empty.\n"},"type":{"type":"string","description":"Type of this configuration.\n"},"value":{"type":"string","description":"Requests that match this value constitute a granular traffic unit.\n"}},"type":"object","required":["enableEachUniqueValue","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdvancedOptionsConfig:getSecurityPolicyAdvancedOptionsConfig":{"properties":{"jsonCustomConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyAdvancedOptionsConfigJsonCustomConfig:getSecurityPolicyAdvancedOptionsConfigJsonCustomConfig"},"description":"Custom configuration to apply the JSON parsing. Only applicable when JSON parsing is set to STANDARD.\n"},"jsonParsing":{"type":"string","description":"JSON body parsing. Supported values include: \"DISABLED\", \"STANDARD\".\n"},"logLevel":{"type":"string","description":"Logging level. Supported values include: \"NORMAL\", \"VERBOSE\".\n"},"requestBodyInspectionSize":{"type":"string","description":"The maximum request size chosen by the customer with Waf enabled. Values supported are \"8KB\", \"16KB, \"32KB\", \"48KB\" and \"64KB\". Values are case insensitive.\n"},"userIpRequestHeaders":{"type":"array","items":{"type":"string"},"description":"An optional list of case-insensitive request header names to use for resolving the callers client IP address.\n"}},"type":"object","required":["jsonCustomConfigs","jsonParsing","logLevel","requestBodyInspectionSize","userIpRequestHeaders"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyAdvancedOptionsConfigJsonCustomConfig:getSecurityPolicyAdvancedOptionsConfigJsonCustomConfig":{"properties":{"contentTypes":{"type":"array","items":{"type":"string"},"description":"A list of custom Content-Type header values to apply the JSON parsing.\n"}},"type":"object","required":["contentTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRecaptchaOptionsConfig:getSecurityPolicyRecaptchaOptionsConfig":{"properties":{"redirectSiteKey":{"type":"string","description":"A field to supply a reCAPTCHA site key to be used for all the rules using the redirect action with the type of GOOGLE_RECAPTCHA under the security policy. The specified site key needs to be created from the reCAPTCHA API. The user is responsible for the validity of the specified site key. If not specified, a Google-managed site key is used.\n"}},"type":"object","required":["redirectSiteKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRule:getSecurityPolicyRule":{"properties":{"action":{"type":"string","description":"Action to take when match matches the request.\n"},"description":{"type":"string","description":"An optional description of this rule. Max size is 64.\n"},"headerActions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleHeaderAction:getSecurityPolicyRuleHeaderAction"},"description":"Additional actions that are performed on headers.\n"},"matches":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleMatch:getSecurityPolicyRuleMatch"},"description":"A match condition that incoming traffic is evaluated against. If it evaluates to true, the corresponding action is enforced.\n"},"preconfiguredWafConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRulePreconfiguredWafConfig:getSecurityPolicyRulePreconfiguredWafConfig"},"description":"Preconfigured WAF configuration to be applied for the rule. If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.\n"},"preview":{"type":"boolean","description":"When set to true, the action specified above is not enforced. Stackdriver logs for requests that trigger a preview action are annotated as such.\n"},"priority":{"type":"integer","description":"An unique positive integer indicating the priority of evaluation for a rule. Rules are evaluated from highest priority (lowest numerically) to lowest priority (highest numerically) in order.\n"},"rateLimitOptions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleRateLimitOption:getSecurityPolicyRuleRateLimitOption"},"description":"Rate limit threshold for this security policy. Must be specified if the action is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e or \"throttle\". Cannot be specified for any other actions.\n"},"redirectOptions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleRedirectOption:getSecurityPolicyRuleRedirectOption"},"description":"Parameters defining the redirect action. Cannot be specified for any other actions.\n"}},"type":"object","required":["action","description","headerActions","matches","preconfiguredWafConfigs","preview","priority","rateLimitOptions","redirectOptions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleHeaderAction:getSecurityPolicyRuleHeaderAction":{"properties":{"requestHeadersToAdds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleHeaderActionRequestHeadersToAdd:getSecurityPolicyRuleHeaderActionRequestHeadersToAdd"},"description":"The list of request headers to add or overwrite if they're already present.\n"}},"type":"object","required":["requestHeadersToAdds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleHeaderActionRequestHeadersToAdd:getSecurityPolicyRuleHeaderActionRequestHeadersToAdd":{"properties":{"headerName":{"type":"string","description":"The name of the header to set.\n"},"headerValue":{"type":"string","description":"The value to set the named header to.\n"}},"type":"object","required":["headerName","headerValue"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleMatch:getSecurityPolicyRuleMatch":{"properties":{"configs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleMatchConfig:getSecurityPolicyRuleMatchConfig"},"description":"The configuration options available when specifying versioned_expr. This field must be specified if\u003cspan pulumi-lang-nodejs=\" versionedExpr \" pulumi-lang-dotnet=\" VersionedExpr \" pulumi-lang-go=\" versionedExpr \" pulumi-lang-python=\" versioned_expr \" pulumi-lang-yaml=\" versionedExpr \" pulumi-lang-java=\" versionedExpr \"\u003e versioned_expr \u003c/span\u003eis specified and cannot be specified if\u003cspan pulumi-lang-nodejs=\" versionedExpr \" pulumi-lang-dotnet=\" VersionedExpr \" pulumi-lang-go=\" versionedExpr \" pulumi-lang-python=\" versioned_expr \" pulumi-lang-yaml=\" versionedExpr \" pulumi-lang-java=\" versionedExpr \"\u003e versioned_expr \u003c/span\u003eis not specified.\n"},"exprOptions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleMatchExprOption:getSecurityPolicyRuleMatchExprOption"},"description":"The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr').\n"},"exprs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleMatchExpr:getSecurityPolicyRuleMatchExpr"},"description":"User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.\n"},"versionedExpr":{"type":"string","description":"Predefined rule expression. If this field is specified, config must also be specified. Available options:   SRC_IPS_V1: Must specify the corresponding\u003cspan pulumi-lang-nodejs=\" srcIpRanges \" pulumi-lang-dotnet=\" SrcIpRanges \" pulumi-lang-go=\" srcIpRanges \" pulumi-lang-python=\" src_ip_ranges \" pulumi-lang-yaml=\" srcIpRanges \" pulumi-lang-java=\" srcIpRanges \"\u003e src_ip_ranges \u003c/span\u003efield in config.\n"}},"type":"object","required":["configs","exprs","exprOptions","versionedExpr"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleMatchConfig:getSecurityPolicyRuleMatchConfig":{"properties":{"srcIpRanges":{"type":"array","items":{"type":"string"},"description":"Set of IP addresses or ranges (IPV4 or IPV6) in CIDR notation to match against inbound traffic. There is a limit of 10 IP ranges per rule. A value of '*' matches all IPs (can be used to override the default behavior).\n"}},"type":"object","required":["srcIpRanges"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleMatchExpr:getSecurityPolicyRuleMatchExpr":{"properties":{"expression":{"type":"string","description":"Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.\n"}},"type":"object","required":["expression"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleMatchExprOption:getSecurityPolicyRuleMatchExprOption":{"properties":{"recaptchaOptions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleMatchExprOptionRecaptchaOption:getSecurityPolicyRuleMatchExprOptionRecaptchaOption"},"description":"reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect.\n"}},"type":"object","required":["recaptchaOptions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleMatchExprOptionRecaptchaOption:getSecurityPolicyRuleMatchExprOptionRecaptchaOption":{"properties":{"actionTokenSiteKeys":{"type":"array","items":{"type":"string"},"description":"A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created\n"},"sessionTokenSiteKeys":{"type":"array","items":{"type":"string"},"description":"A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.\n"}},"type":"object","required":["actionTokenSiteKeys","sessionTokenSiteKeys"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRulePreconfiguredWafConfig:getSecurityPolicyRulePreconfiguredWafConfig":{"properties":{"exclusions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusion:getSecurityPolicyRulePreconfiguredWafConfigExclusion"},"description":"An exclusion to apply during preconfigured WAF evaluation.\n"}},"type":"object","required":["exclusions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusion:getSecurityPolicyRulePreconfiguredWafConfigExclusion":{"properties":{"requestCookies":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky"},"description":"Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation.\n"},"requestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader"},"description":"Request header whose value will be excluded from inspection during preconfigured WAF evaluation.\n"},"requestQueryParams":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam"},"description":"Request query parameter whose value will be excluded from inspection during preconfigured WAF evaluation.  Note that the parameter can be in the query string or in the POST body.\n"},"requestUris":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri"},"description":"Request URI from the request line to be excluded from inspection during preconfigured WAF evaluation. When specifying this field, the query or fragment part should be excluded.\n"},"targetRuleIds":{"type":"array","items":{"type":"string"},"description":"A list of target rule IDs under the WAF rule set to apply the preconfigured WAF exclusion. If omitted, it refers to all the rule IDs under the WAF rule set.\n"},"targetRuleSet":{"type":"string","description":"Target WAF rule set to apply the preconfigured WAF exclusion.\n"}},"type":"object","required":["requestCookies","requestHeaders","requestQueryParams","requestUris","targetRuleIds","targetRuleSet"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value. Available options: EQUALS: The operator matches if the field value equals the specified value. STARTS_WITH: The operator matches if the field value starts with the specified value. ENDS_WITH: The operator matches if the field value ends with the specified value. CONTAINS: The operator matches if the field value contains the specified value. EQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value. Available options: EQUALS: The operator matches if the field value equals the specified value. STARTS_WITH: The operator matches if the field value starts with the specified value. ENDS_WITH: The operator matches if the field value ends with the specified value. CONTAINS: The operator matches if the field value contains the specified value. EQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value. Available options: EQUALS: The operator matches if the field value equals the specified value. STARTS_WITH: The operator matches if the field value starts with the specified value. ENDS_WITH: The operator matches if the field value ends with the specified value. CONTAINS: The operator matches if the field value contains the specified value. EQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri:getSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri":{"properties":{"operator":{"type":"string","description":"You can specify an exact match or a partial match by using a field operator and a field value. Available options: EQUALS: The operator matches if the field value equals the specified value. STARTS_WITH: The operator matches if the field value starts with the specified value. ENDS_WITH: The operator matches if the field value ends with the specified value. CONTAINS: The operator matches if the field value contains the specified value. EQUALS_ANY: The operator matches if the field value is any value.\n"},"value":{"type":"string","description":"A request field matching the specified value will be excluded from inspection during preconfigured WAF evaluation. The field value must be given if the field operator is not EQUALS_ANY, and cannot be given if the field operator is EQUALS_ANY.\n"}},"type":"object","required":["operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleRateLimitOption:getSecurityPolicyRuleRateLimitOption":{"properties":{"banDurationSec":{"type":"integer","description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e. If specified, determines the time (in seconds) the traffic will continue to be banned by the rate limit after the rate falls below the threshold.\n"},"banThresholds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleRateLimitOptionBanThreshold:getSecurityPolicyRuleRateLimitOptionBanThreshold"},"description":"Can only be specified if the action for the rule is \u003cspan pulumi-lang-nodejs=\"\"rateBasedBan\"\" pulumi-lang-dotnet=\"\"RateBasedBan\"\" pulumi-lang-go=\"\"rateBasedBan\"\" pulumi-lang-python=\"\"rate_based_ban\"\" pulumi-lang-yaml=\"\"rateBasedBan\"\" pulumi-lang-java=\"\"rateBasedBan\"\"\u003e\"rate_based_ban\"\u003c/span\u003e. If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'.\n"},"conformAction":{"type":"string","description":"Action to take for requests that are under the configured rate limit threshold. Valid option is \"allow\" only.\n"},"enforceOnKey":{"type":"string","description":"Determines the key to enforce the rateLimitThreshold on\n"},"enforceOnKeyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig:getSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig"},"description":"Enforce On Key Config of this security policy\n"},"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"exceedAction":{"type":"string","description":"Action to take for requests that are above the configured rate limit threshold, to either deny with a specified HTTP response code, or redirect to a different endpoint. Valid options are \"deny()\" where valid values for status are 403, 404, 429, and 502, and \"redirect\" where the redirect parameters come from exceedRedirectOptions below.\n"},"exceedRedirectOptions":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleRateLimitOptionExceedRedirectOption:getSecurityPolicyRuleRateLimitOptionExceedRedirectOption"},"description":"Parameters defining the redirect action that is used as the exceed action. Cannot be specified if the exceed action is not redirect.\n"},"rateLimitThresholds":{"type":"array","items":{"$ref":"#/types/gcp:compute/getSecurityPolicyRuleRateLimitOptionRateLimitThreshold:getSecurityPolicyRuleRateLimitOptionRateLimitThreshold"},"description":"Threshold at which to begin ratelimiting.\n"}},"type":"object","required":["banDurationSec","banThresholds","conformAction","enforceOnKey","enforceOnKeyConfigs","enforceOnKeyName","exceedAction","exceedRedirectOptions","rateLimitThresholds"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleRateLimitOptionBanThreshold:getSecurityPolicyRuleRateLimitOptionBanThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object","required":["count","intervalSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig:getSecurityPolicyRuleRateLimitOptionEnforceOnKeyConfig":{"properties":{"enforceOnKeyName":{"type":"string","description":"Rate limit key name applicable only for the following key types: HTTP_HEADER -- Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE -- Name of the HTTP cookie whose value is taken as the key value.\n"},"enforceOnKeyType":{"type":"string","description":"Determines the key to enforce the\u003cspan pulumi-lang-nodejs=\" rateLimitThreshold \" pulumi-lang-dotnet=\" RateLimitThreshold \" pulumi-lang-go=\" rateLimitThreshold \" pulumi-lang-python=\" rate_limit_threshold \" pulumi-lang-yaml=\" rateLimitThreshold \" pulumi-lang-java=\" rateLimitThreshold \"\u003e rate_limit_threshold \u003c/span\u003eon\n"}},"type":"object","required":["enforceOnKeyName","enforceOnKeyType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleRateLimitOptionExceedRedirectOption:getSecurityPolicyRuleRateLimitOptionExceedRedirectOption":{"properties":{"target":{"type":"string","description":"Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.\n"},"type":{"type":"string","description":"Type of the redirect action.\n"}},"type":"object","required":["target","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleRateLimitOptionRateLimitThreshold:getSecurityPolicyRuleRateLimitOptionRateLimitThreshold":{"properties":{"count":{"type":"integer","description":"Number of HTTP(S) requests for calculating the threshold.\n"},"intervalSec":{"type":"integer","description":"Interval over which the threshold is computed.\n"}},"type":"object","required":["count","intervalSec"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSecurityPolicyRuleRedirectOption:getSecurityPolicyRuleRedirectOption":{"properties":{"target":{"type":"string","description":"Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA.\n"},"type":{"type":"string","description":"Type of the redirect action. Available options: EXTERNAL_302: Must specify the corresponding target field in config. GOOGLE_RECAPTCHA: Cannot specify target field in config.\n"}},"type":"object","required":["target","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSnapshotSnapshotEncryptionKey:getSnapshotSnapshotEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an encryption key stored in Google Cloud KMS, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"sha256":{"type":"string","description":"The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied\nencryption key that protects this resource.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey","sha256"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSnapshotSourceDiskEncryptionKey:getSnapshotSourceDiskEncryptionKey":{"properties":{"kmsKeySelfLink":{"type":"string","description":"The name of the encryption key that is stored in Google Cloud KMS.\n"},"kmsKeyServiceAccount":{"type":"string","description":"The service account used for the encryption request for the given KMS key.\nIf absent, the Compute Engine Service Agent service account is used.\n"},"rawKey":{"type":"string","description":"Specifies a 256-bit customer-supplied encryption key, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"},"rsaEncryptedKey":{"type":"string","description":"Specifies an encryption key stored in Google Cloud KMS, encoded in\nRFC 4648 base64 to either encrypt or decrypt this resource.\n"}},"type":"object","required":["kmsKeySelfLink","kmsKeyServiceAccount","rawKey","rsaEncryptedKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getStoragePoolResourceStatus:getStoragePoolResourceStatus":{"properties":{"diskCount":{"type":"string","description":"Number of disks used.\n"},"lastResizeTimestamp":{"type":"string","description":"Timestamp of the last successful resize in RFC3339 text format.\n"},"maxTotalProvisionedDiskCapacityGb":{"type":"string","description":"Maximum allowed aggregate disk size in gigabytes.\n"},"poolUsedCapacityBytes":{"type":"string","description":"Space used by data stored in disks within the storage pool (in bytes).\nThis will reflect the total number of bytes written to the disks in the pool,\nin contrast to the capacity of those disks.\n"},"poolUsedIops":{"type":"string","description":"Sum of all the disks' provisioned IOPS, minus some amount\nthat is allowed per disk that is not counted towards pool's IOPS capacity.\nFor more information, see https://cloud.google.com/compute/docs/disks/storage-pools.\n"},"poolUsedThroughput":{"type":"string","description":"Sum of all the disks' provisioned throughput in MB/s.\n"},"poolUserWrittenBytes":{"type":"string","description":"Amount of data written into the pool, before it is compacted.\n"},"totalProvisionedDiskCapacityGb":{"type":"string","description":"Sum of all the capacity provisioned in disks in this storage pool.\nA disk's provisioned capacity is the same as its total capacity.\n"},"totalProvisionedDiskIops":{"type":"string","description":"Sum of all the disks' provisioned IOPS.\n"},"totalProvisionedDiskThroughput":{"type":"string","description":"Sum of all the disks' provisioned throughput in MB/s,\nminus some amount that is allowed per disk that is not counted towards pool's throughput capacity.\n"}},"type":"object","required":["diskCount","lastResizeTimestamp","maxTotalProvisionedDiskCapacityGb","poolUsedCapacityBytes","poolUsedIops","poolUsedThroughput","poolUserWrittenBytes","totalProvisionedDiskCapacityGb","totalProvisionedDiskIops","totalProvisionedDiskThroughput"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getStoragePoolStatus:getStoragePoolStatus":{"properties":{"diskCount":{"type":"string","description":"Number of disks used.\n"},"lastResizeTimestamp":{"type":"string","description":"Timestamp of the last successful resize in RFC3339 text format.\n"},"maxTotalProvisionedDiskCapacityGb":{"type":"string","description":"Maximum allowed aggregate disk size in gigabytes.\n"},"poolUsedCapacityBytes":{"type":"string","description":"Space used by data stored in disks within the storage pool (in bytes).\nThis will reflect the total number of bytes written to the disks in the pool, in contrast to the capacity of those disks.\n"},"poolUsedIops":{"type":"string","description":"Sum of all the disks' provisioned IOPS, minus some amount that is allowed per disk that is not counted towards pool's IOPS capacity. For more information, see https://cloud.google.com/compute/docs/disks/storage-pools.\n"},"poolUsedThroughput":{"type":"string","description":"Sum of all the disks' provisioned throughput in MB/s.\n"},"poolUserWrittenBytes":{"type":"string","description":"Amount of data written into the pool, before it is compacted.\n"},"totalProvisionedDiskCapacityGb":{"type":"string","description":"Sum of all the capacity provisioned in disks in this storage pool.\nA disk's provisioned capacity is the same as its total capacity.\n"},"totalProvisionedDiskIops":{"type":"string","description":"Sum of all the disks' provisioned IOPS.\n"},"totalProvisionedDiskThroughput":{"type":"string","description":"Sum of all the disks' provisioned throughput in MB/s,\nminus some amount that is allowed per disk that is not counted towards pool's throughput capacity.\n"}},"type":"object","required":["diskCount","lastResizeTimestamp","maxTotalProvisionedDiskCapacityGb","poolUsedCapacityBytes","poolUsedIops","poolUsedThroughput","poolUserWrittenBytes","totalProvisionedDiskCapacityGb","totalProvisionedDiskIops","totalProvisionedDiskThroughput"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getStoragePoolTypesDeprecated:getStoragePoolTypesDeprecated":{"properties":{"deleted":{"type":"string","description":"An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DELETED.\nThis is only informational and the status will not change unless the client explicitly changes it.\n"},"deprecated":{"type":"string","description":"An optional RFC3339 timestamp on or after which the state of this resource is intended to change to DEPRECATED.\nThis is only informational and the status will not change unless the client explicitly changes it.\n"},"obsolete":{"type":"string","description":"An optional RFC3339 timestamp on or after which the state of this resource is intended to change to OBSOLETE.\nThis is only informational and the status will not change unless the client explicitly changes it.\n"},"replacement":{"type":"string","description":"The URL of the suggested replacement for a deprecated resource.\nThe suggested replacement resource must be the same kind of resource as the deprecated resource.\n"},"state":{"type":"string","description":"The deprecation state of this resource. This can be ACTIVE, DEPRECATED, OBSOLETE, or DELETED.\nOperations which communicate the end of life date for an image, can use ACTIVE.\nOperations which create a new resource using a DEPRECATED resource will return successfully,\nbut with a warning indicating the deprecated resource and recommending its replacement.\nOperations which use OBSOLETE or DELETED resources will be rejected and result in an error.\n"}},"type":"object","required":["deleted","deprecated","obsolete","replacement","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSubnetworkSecondaryIpRange:getSubnetworkSecondaryIpRange":{"properties":{"ipCidrRange":{"type":"string","description":"The range of IP addresses belonging to this subnetwork\nsecondary range.\n"},"rangeName":{"type":"string","description":"The name associated with this subnetwork secondary range, used\nwhen adding an alias IP range to a VM instance.\n"}},"type":"object","required":["ipCidrRange","rangeName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:compute/getSubnetworksSubnetwork:getSubnetworksSubnetwork":{"properties":{"description":{"type":"string","description":"Description of the subnetwork.\n"},"ipCidrRange":{"type":"string","description":"The IP address range represented as a CIDR block.\n"},"name":{"type":"string","description":"The name of the subnetwork.\n"},"network":{"type":"string","description":"The self link of the parent network.\n"},"networkName":{"type":"string","description":"The name of the parent network computed from \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e attribute.\n"},"networkSelfLink":{"type":"string","description":"(Deprecated) The name of the parent network computed from \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e attribute. (deprecated and will be removed in a future major release. Use \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e instead.)\n","deprecationMessage":"Use \u003cspan pulumi-lang-nodejs=\"`networkName`\" pulumi-lang-dotnet=\"`NetworkName`\" pulumi-lang-go=\"`networkName`\" pulumi-lang-python=\"`network_name`\" pulumi-lang-yaml=\"`networkName`\" pulumi-lang-java=\"`networkName`\"\u003e`network_name`\u003c/span\u003e instead. This field will be removed in a future major release."},"privateIpGoogleAccess":{"type":"boolean","description":"Whether the VMs in the subnet can access Google services without assigned external IP addresses.\n"},"selfLink":{"type":"string","description":"The self link of the subnetwork.\n"}},"type":"object","required":["description","ipCidrRange","name","network","networkName","networkSelfLink","privateIpGoogleAccess","selfLink"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:config/batching:batching":{"properties":{"enableBatching":{"type":"boolean"},"sendAfter":{"type":"string"}},"type":"object"},"gcp:config/externalCredentials:externalCredentials":{"properties":{"audience":{"type":"string"},"identityToken":{"type":"string"},"serviceAccountEmail":{"type":"string"}},"type":"object","required":["audience","identityToken","serviceAccountEmail"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:contactcenterinsights/AnalysisRuleAnnotatorSelector:AnalysisRuleAnnotatorSelector":{"properties":{"issueModels":{"type":"array","items":{"type":"string"},"description":"The issue model to run. If not provided, the most recently deployed topic\nmodel will be used. The provided issue model will only be used for\ninference if the issue model is deployed and if\u003cspan pulumi-lang-nodejs=\" runIssueModelAnnotator\n\" pulumi-lang-dotnet=\" RunIssueModelAnnotator\n\" pulumi-lang-go=\" runIssueModelAnnotator\n\" pulumi-lang-python=\" run_issue_model_annotator\n\" pulumi-lang-yaml=\" runIssueModelAnnotator\n\" pulumi-lang-java=\" runIssueModelAnnotator\n\"\u003e run_issue_model_annotator\n\u003c/span\u003eis set to true. If more than one issue model is provided, only the first\nprovided issue model will be used for inference.\n"},"phraseMatchers":{"type":"array","items":{"type":"string"},"description":"The list of phrase matchers to run. If not provided, all active phrase\nmatchers will be used. If inactive phrase matchers are provided, they will\nnot be used. Phrase matchers will be run only if\u003cspan pulumi-lang-nodejs=\"\nrunPhraseMatcherAnnotator \" pulumi-lang-dotnet=\"\nRunPhraseMatcherAnnotator \" pulumi-lang-go=\"\nrunPhraseMatcherAnnotator \" pulumi-lang-python=\"\nrun_phrase_matcher_annotator \" pulumi-lang-yaml=\"\nrunPhraseMatcherAnnotator \" pulumi-lang-java=\"\nrunPhraseMatcherAnnotator \"\u003e\nrun_phrase_matcher_annotator \u003c/span\u003eis set to true. Format:\nprojects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}\n"},"qaConfig":{"$ref":"#/types/gcp:contactcenterinsights/AnalysisRuleAnnotatorSelectorQaConfig:AnalysisRuleAnnotatorSelectorQaConfig","description":"Configuration for the QA feature.\nStructure is documented below.\n"},"runEntityAnnotator":{"type":"boolean","description":"Whether to run the entity annotator.\n"},"runIntentAnnotator":{"type":"boolean","description":"Whether to run the intent annotator.\n"},"runInterruptionAnnotator":{"type":"boolean","description":"Whether to run the interruption annotator.\n"},"runIssueModelAnnotator":{"type":"boolean","description":"Whether to run the issue model annotator. A model should have already been\ndeployed for this to take effect.\n"},"runPhraseMatcherAnnotator":{"type":"boolean","description":"Whether to run the active phrase matcher annotator(s).\n"},"runQaAnnotator":{"type":"boolean","description":"Whether to run the QA annotator.\n"},"runSentimentAnnotator":{"type":"boolean","description":"Whether to run the sentiment annotator.\n"},"runSilenceAnnotator":{"type":"boolean","description":"Whether to run the silence annotator.\n"},"runSummarizationAnnotator":{"type":"boolean","description":"Whether to run the summarization annotator.\n"},"summarizationConfig":{"$ref":"#/types/gcp:contactcenterinsights/AnalysisRuleAnnotatorSelectorSummarizationConfig:AnalysisRuleAnnotatorSelectorSummarizationConfig","description":"Configuration for summarization.\nStructure is documented below.\n"}},"type":"object"},"gcp:contactcenterinsights/AnalysisRuleAnnotatorSelectorQaConfig:AnalysisRuleAnnotatorSelectorQaConfig":{"properties":{"scorecardList":{"$ref":"#/types/gcp:contactcenterinsights/AnalysisRuleAnnotatorSelectorQaConfigScorecardList:AnalysisRuleAnnotatorSelectorQaConfigScorecardList","description":"Container for a list of scorecards.\nStructure is documented below.\n"}},"type":"object"},"gcp:contactcenterinsights/AnalysisRuleAnnotatorSelectorQaConfigScorecardList:AnalysisRuleAnnotatorSelectorQaConfigScorecardList":{"properties":{"qaScorecardRevisions":{"type":"array","items":{"type":"string"},"description":"List of QaScorecardRevisions.\n"}},"type":"object"},"gcp:contactcenterinsights/AnalysisRuleAnnotatorSelectorSummarizationConfig:AnalysisRuleAnnotatorSelectorSummarizationConfig":{"properties":{"conversationProfile":{"type":"string","description":"Resource name of the Dialogflow conversation profile.\nFormat:\nprojects/{project}/locations/{location}/conversationProfiles/{conversation_profile}\n"},"summarizationModel":{"type":"string","description":"Default summarization model to be used.\nPossible values:\nSUMMARIZATION_MODEL_UNSPECIFIED\nBASELINE_MODEL\nBASELINE_MODEL_V2_0\nPossible values are: `BASELINE_MODEL`, `BASELINE_MODEL_V2_0`.\n"}},"type":"object"},"gcp:container/AttachedClusterAuthorization:AttachedClusterAuthorization":{"properties":{"adminGroups":{"type":"array","items":{"type":"string"},"description":"Groups that can perform operations as a cluster admin. A managed\nClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole\nto the groups. Up to ten admin groups can be provided.\nFor more info on RBAC, see\nhttps://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles\n"},"adminUsers":{"type":"array","items":{"type":"string"},"description":"Users that can perform operations as a cluster admin. A managed\nClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole\nto the users. Up to ten admin users can be provided.\nFor more info on RBAC, see\nhttps://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles\n"}},"type":"object"},"gcp:container/AttachedClusterBinaryAuthorization:AttachedClusterBinaryAuthorization":{"properties":{"evaluationMode":{"type":"string","description":"Configure Binary Authorization evaluation mode.\nPossible values are: `DISABLED`, `PROJECT_SINGLETON_POLICY_ENFORCE`.\n"}},"type":"object"},"gcp:container/AttachedClusterError:AttachedClusterError":{"properties":{"message":{"type":"string","description":"Human-friendly description of the error.\n"}},"type":"object"},"gcp:container/AttachedClusterFleet:AttachedClusterFleet":{"properties":{"membership":{"type":"string","description":"(Output)\nThe name of the managed Hub Membership resource associated to this\ncluster. Membership names are formatted as\nprojects/\u003cproject-number\u003e/locations/global/membership/\u003ccluster-id\u003e.\n"},"project":{"type":"string","description":"The number of the Fleet host project where this cluster will be registered.\n","willReplaceOnChanges":true}},"type":"object","required":["project"],"language":{"nodejs":{"requiredOutputs":["membership","project"]}}},"gcp:container/AttachedClusterLoggingConfig:AttachedClusterLoggingConfig":{"properties":{"componentConfig":{"$ref":"#/types/gcp:container/AttachedClusterLoggingConfigComponentConfig:AttachedClusterLoggingConfigComponentConfig","description":"The configuration of the logging components\nStructure is documented below.\n"}},"type":"object"},"gcp:container/AttachedClusterLoggingConfigComponentConfig:AttachedClusterLoggingConfigComponentConfig":{"properties":{"enableComponents":{"type":"array","items":{"type":"string"},"description":"The components to be enabled.\nEach value may be one of: `SYSTEM_COMPONENTS`, `WORKLOADS`.\n"}},"type":"object"},"gcp:container/AttachedClusterMonitoringConfig:AttachedClusterMonitoringConfig":{"properties":{"managedPrometheusConfig":{"$ref":"#/types/gcp:container/AttachedClusterMonitoringConfigManagedPrometheusConfig:AttachedClusterMonitoringConfigManagedPrometheusConfig","description":"Enable Google Cloud Managed Service for Prometheus in the cluster.\nStructure is documented below.\n"}},"type":"object"},"gcp:container/AttachedClusterMonitoringConfigManagedPrometheusConfig:AttachedClusterMonitoringConfigManagedPrometheusConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable Managed Collection.\n"}},"type":"object"},"gcp:container/AttachedClusterOidcConfig:AttachedClusterOidcConfig":{"properties":{"issuerUrl":{"type":"string","description":"A JSON Web Token (JWT) issuer URI. \u003cspan pulumi-lang-nodejs=\"`issuer`\" pulumi-lang-dotnet=\"`Issuer`\" pulumi-lang-go=\"`issuer`\" pulumi-lang-python=\"`issuer`\" pulumi-lang-yaml=\"`issuer`\" pulumi-lang-java=\"`issuer`\"\u003e`issuer`\u003c/span\u003e must start with `https://`\n","willReplaceOnChanges":true},"jwks":{"type":"string","description":"OIDC verification keys in JWKS format (RFC 7517).\n","willReplaceOnChanges":true}},"type":"object","required":["issuerUrl"]},"gcp:container/AttachedClusterProxyConfig:AttachedClusterProxyConfig":{"properties":{"kubernetesSecret":{"$ref":"#/types/gcp:container/AttachedClusterProxyConfigKubernetesSecret:AttachedClusterProxyConfigKubernetesSecret","description":"The Kubernetes Secret resource that contains the HTTP(S) proxy configuration.\nStructure is documented below.\n"}},"type":"object"},"gcp:container/AttachedClusterProxyConfigKubernetesSecret:AttachedClusterProxyConfigKubernetesSecret":{"properties":{"name":{"type":"string","description":"Name of the kubernetes secret containing the proxy config.\n"},"namespace":{"type":"string","description":"Namespace of the kubernetes secret containing the proxy config.\n"}},"type":"object","required":["name","namespace"]},"gcp:container/AttachedClusterSecurityPostureConfig:AttachedClusterSecurityPostureConfig":{"properties":{"vulnerabilityMode":{"type":"string","description":"Sets the mode of the Kubernetes security posture API's workload vulnerability scanning.\nPossible values are: `VULNERABILITY_DISABLED`, `VULNERABILITY_ENTERPRISE`.\n"}},"type":"object","required":["vulnerabilityMode"]},"gcp:container/AttachedClusterWorkloadIdentityConfig:AttachedClusterWorkloadIdentityConfig":{"properties":{"identityProvider":{"type":"string","description":"The ID of the OIDC Identity Provider (IdP) associated to\nthe Workload Identity Pool.\n"},"issuerUri":{"type":"string","description":"The OIDC issuer URL for this cluster.\n"},"workloadPool":{"type":"string","description":"The Workload Identity Pool associated to the cluster.\n"}},"type":"object"},"gcp:container/AwsClusterAuthorization:AwsClusterAuthorization":{"properties":{"adminGroups":{"type":"array","items":{"$ref":"#/types/gcp:container/AwsClusterAuthorizationAdminGroup:AwsClusterAuthorizationAdminGroup"},"description":"Groups of users that can perform operations as a cluster admin. A managed ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole to the groups. Up to ten admin groups can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles\n"},"adminUsers":{"type":"array","items":{"$ref":"#/types/gcp:container/AwsClusterAuthorizationAdminUser:AwsClusterAuthorizationAdminUser"},"description":"Users to perform operations as a cluster admin. A managed ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole to the users. Up to ten admin users can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles\n"}},"type":"object","required":["adminUsers"]},"gcp:container/AwsClusterAuthorizationAdminGroup:AwsClusterAuthorizationAdminGroup":{"properties":{"group":{"type":"string","description":"The name of the group, e.g. `my-group@domain.com`.\n"}},"type":"object","required":["group"]},"gcp:container/AwsClusterAuthorizationAdminUser:AwsClusterAuthorizationAdminUser":{"properties":{"username":{"type":"string","description":"The name of the user, e.g. `my-gcp-id@gmail.com`.\n"}},"type":"object","required":["username"]},"gcp:container/AwsClusterBinaryAuthorization:AwsClusterBinaryAuthorization":{"properties":{"evaluationMode":{"type":"string","description":"Mode of operation for Binary Authorization policy evaluation. Possible values: DISABLED, PROJECT_SINGLETON_POLICY_ENFORCE\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["evaluationMode"]}}},"gcp:container/AwsClusterControlPlane:AwsClusterControlPlane":{"properties":{"awsServicesAuthentication":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneAwsServicesAuthentication:AwsClusterControlPlaneAwsServicesAuthentication","description":"Authentication configuration for management of AWS resources.\n"},"configEncryption":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneConfigEncryption:AwsClusterControlPlaneConfigEncryption","description":"The ARN of the AWS KMS key used to encrypt cluster configuration.\n"},"databaseEncryption":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneDatabaseEncryption:AwsClusterControlPlaneDatabaseEncryption","description":"The ARN of the AWS KMS key used to encrypt cluster secrets.\n","willReplaceOnChanges":true},"iamInstanceProfile":{"type":"string","description":"The name of the AWS IAM instance pofile to assign to each control plane replica.\n"},"instancePlacement":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneInstancePlacement:AwsClusterControlPlaneInstancePlacement","description":"Details of placement information for an instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"Optional. The AWS instance type. When unspecified, it defaults to `m5.large`.\n"},"mainVolume":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneMainVolume:AwsClusterControlPlaneMainVolume","description":"Optional. Configuration related to the main volume provisioned for each control plane replica. The main volume is in charge of storing all of the cluster's etcd state. Volumes will be provisioned in the availability zone associated with the corresponding subnet. When unspecified, it defaults to 8 GiB with the GP2 volume type.\n","willReplaceOnChanges":true},"proxyConfig":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneProxyConfig:AwsClusterControlPlaneProxyConfig","description":"Proxy configuration for outbound HTTP(S) traffic.\n"},"rootVolume":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneRootVolume:AwsClusterControlPlaneRootVolume","description":"Optional. Configuration related to the root volume provisioned for each control plane replica. Volumes will be provisioned in the availability zone associated with the corresponding subnet. When unspecified, it defaults to 32 GiB with the GP2 volume type.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Optional. The IDs of additional security groups to add to control plane replicas. The Anthos Multi-Cloud API will automatically create and manage security groups with the minimum rules needed for a functioning cluster.\n"},"sshConfig":{"$ref":"#/types/gcp:container/AwsClusterControlPlaneSshConfig:AwsClusterControlPlaneSshConfig","description":"Optional. SSH configuration for how to access the underlying control plane machines.\n"},"subnetIds":{"type":"array","items":{"type":"string"},"description":"The list of subnets where control plane replicas will run. A replica will be provisioned on each subnet and up to three values can be provided. Each subnet must be in a different AWS Availability Zone (AZ).\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. A set of AWS resource tags to propagate to all underlying managed AWS resources. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.\n"},"version":{"type":"string","description":"The Kubernetes version to run on control plane replicas (e.g. `1.19.10-gke.1000`). You can list all supported versions on a given Google Cloud region by calling .\n"}},"type":"object","required":["awsServicesAuthentication","configEncryption","databaseEncryption","iamInstanceProfile","subnetIds","version"],"language":{"nodejs":{"requiredOutputs":["awsServicesAuthentication","configEncryption","databaseEncryption","iamInstanceProfile","instancePlacement","instanceType","mainVolume","rootVolume","subnetIds","version"]}}},"gcp:container/AwsClusterControlPlaneAwsServicesAuthentication:AwsClusterControlPlaneAwsServicesAuthentication":{"properties":{"roleArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the role that the Anthos Multi-Cloud API will assume when managing AWS resources on your account.\n"},"roleSessionName":{"type":"string","description":"Optional. An identifier for the assumed role session. When unspecified, it defaults to `multicloud-service-agent`.\n"}},"type":"object","required":["roleArn"],"language":{"nodejs":{"requiredOutputs":["roleArn","roleSessionName"]}}},"gcp:container/AwsClusterControlPlaneConfigEncryption:AwsClusterControlPlaneConfigEncryption":{"properties":{"kmsKeyArn":{"type":"string","description":"The ARN of the AWS KMS key used to encrypt cluster configuration.\n"}},"type":"object","required":["kmsKeyArn"]},"gcp:container/AwsClusterControlPlaneDatabaseEncryption:AwsClusterControlPlaneDatabaseEncryption":{"properties":{"kmsKeyArn":{"type":"string","description":"The ARN of the AWS KMS key used to encrypt cluster secrets.\n","willReplaceOnChanges":true}},"type":"object","required":["kmsKeyArn"]},"gcp:container/AwsClusterControlPlaneInstancePlacement:AwsClusterControlPlaneInstancePlacement":{"properties":{"tenancy":{"type":"string","description":"The tenancy for the instance. Possible values: TENANCY_UNSPECIFIED, DEFAULT, DEDICATED, HOST\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["tenancy"]}}},"gcp:container/AwsClusterControlPlaneMainVolume:AwsClusterControlPlaneMainVolume":{"properties":{"iops":{"type":"integer","description":"Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.\n","willReplaceOnChanges":true},"kmsKeyArn":{"type":"string","description":"Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to encrypt AWS EBS volumes. If not specified, the default Amazon managed key associated to the AWS region where this cluster runs will be used.\n","willReplaceOnChanges":true},"sizeGib":{"type":"integer","description":"Optional. The size of the volume, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.\n","willReplaceOnChanges":true},"throughput":{"type":"integer","description":"Optional. The throughput to provision for the volume, in MiB/s. Only valid if the volume type is GP3. If volume type is gp3 and throughput is not specified, the throughput will defaults to 125.\n","willReplaceOnChanges":true},"volumeType":{"type":"string","description":"Optional. Type of the EBS volume. When unspecified, it defaults to GP2 volume. Possible values: VOLUME_TYPE_UNSPECIFIED, GP2, GP3\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["iops","sizeGib","throughput","volumeType"]}}},"gcp:container/AwsClusterControlPlaneProxyConfig:AwsClusterControlPlaneProxyConfig":{"properties":{"secretArn":{"type":"string","description":"The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.\n"},"secretVersion":{"type":"string","description":"The version string of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.\n"}},"type":"object","required":["secretArn","secretVersion"]},"gcp:container/AwsClusterControlPlaneRootVolume:AwsClusterControlPlaneRootVolume":{"properties":{"iops":{"type":"integer","description":"Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.\n"},"kmsKeyArn":{"type":"string","description":"Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to encrypt AWS EBS volumes. If not specified, the default Amazon managed key associated to the AWS region where this cluster runs will be used.\n"},"sizeGib":{"type":"integer","description":"Optional. The size of the volume, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.\n"},"throughput":{"type":"integer","description":"Optional. The throughput to provision for the volume, in MiB/s. Only valid if the volume type is GP3. If volume type is gp3 and throughput is not specified, the throughput will defaults to 125.\n"},"volumeType":{"type":"string","description":"Optional. Type of the EBS volume. When unspecified, it defaults to GP2 volume. Possible values: VOLUME_TYPE_UNSPECIFIED, GP2, GP3\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["iops","sizeGib","throughput","volumeType"]}}},"gcp:container/AwsClusterControlPlaneSshConfig:AwsClusterControlPlaneSshConfig":{"properties":{"ec2KeyPair":{"type":"string","description":"The name of the EC2 key pair used to login into cluster machines.\n"}},"type":"object","required":["ec2KeyPair"]},"gcp:container/AwsClusterFleet:AwsClusterFleet":{"properties":{"membership":{"type":"string","description":"The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/\u003cproject-number\u003e/locations/global/membership/\u003ccluster-id\u003e.\n"},"project":{"type":"string","description":"The number of the Fleet host project where this cluster will be registered.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["membership","project"]}}},"gcp:container/AwsClusterLoggingConfig:AwsClusterLoggingConfig":{"properties":{"componentConfig":{"$ref":"#/types/gcp:container/AwsClusterLoggingConfigComponentConfig:AwsClusterLoggingConfigComponentConfig","description":"Configuration of the logging components.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["componentConfig"]}}},"gcp:container/AwsClusterLoggingConfigComponentConfig:AwsClusterLoggingConfigComponentConfig":{"properties":{"enableComponents":{"type":"array","items":{"type":"string"},"description":"Components of the logging configuration to be enabled.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableComponents"]}}},"gcp:container/AwsClusterNetworking:AwsClusterNetworking":{"properties":{"perNodePoolSgRulesDisabled":{"type":"boolean","description":"Disable the per node pool subnet security group rules on the control plane security group. When set to true, you must also provide one or more security groups that ensure node pools are able to send requests to the control plane on TCP/443 and TCP/8132. Failure to do so may result in unavailable node pools.\n"},"podAddressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"All pods in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.\n","willReplaceOnChanges":true},"serviceAddressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"All services in the cluster are assigned an RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"The VPC associated with the cluster. All component clusters (i.e. control plane and node pools) run on a single VPC. This field cannot be changed after creation.\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["podAddressCidrBlocks","serviceAddressCidrBlocks","vpcId"]},"gcp:container/AwsClusterWorkloadIdentityConfig:AwsClusterWorkloadIdentityConfig":{"properties":{"identityProvider":{"type":"string","description":"The ID of the OIDC Identity Provider (IdP) associated to the Workload Identity Pool.\n"},"issuerUri":{"type":"string","description":"The OIDC issuer URL for this cluster.\n"},"workloadPool":{"type":"string","description":"The Workload Identity Pool associated to the cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["identityProvider","issuerUri","workloadPool"]}}},"gcp:container/AwsNodePoolAutoscaling:AwsNodePoolAutoscaling":{"properties":{"maxNodeCount":{"type":"integer","description":"Maximum number of nodes in the NodePool. Must be \u003e= min_node_count.\n"},"minNodeCount":{"type":"integer","description":"Minimum number of nodes in the NodePool. Must be \u003e= 1 and \u003c= max_node_count.\n"}},"type":"object","required":["maxNodeCount","minNodeCount"]},"gcp:container/AwsNodePoolConfig:AwsNodePoolConfig":{"properties":{"autoscalingMetricsCollection":{"$ref":"#/types/gcp:container/AwsNodePoolConfigAutoscalingMetricsCollection:AwsNodePoolConfigAutoscalingMetricsCollection","description":"Optional. Configuration related to CloudWatch metrics collection on the Auto Scaling group of the node pool. When unspecified, metrics collection is disabled.\n"},"configEncryption":{"$ref":"#/types/gcp:container/AwsNodePoolConfigConfigEncryption:AwsNodePoolConfigConfigEncryption","description":"The ARN of the AWS KMS key used to encrypt node pool configuration.\n"},"iamInstanceProfile":{"type":"string","description":"The name of the AWS IAM role assigned to nodes in the pool.\n"},"imageType":{"type":"string","description":"The OS image type to use on node pool instances.\n","willReplaceOnChanges":true},"instancePlacement":{"$ref":"#/types/gcp:container/AwsNodePoolConfigInstancePlacement:AwsNodePoolConfigInstancePlacement","description":"Details of placement information for an instance.\n","willReplaceOnChanges":true},"instanceType":{"type":"string","description":"Optional. The AWS instance type. When unspecified, it defaults to `m5.large`.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The initial labels assigned to nodes of this node pool. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n"},"proxyConfig":{"$ref":"#/types/gcp:container/AwsNodePoolConfigProxyConfig:AwsNodePoolConfigProxyConfig","description":"Proxy configuration for outbound HTTP(S) traffic.\n"},"rootVolume":{"$ref":"#/types/gcp:container/AwsNodePoolConfigRootVolume:AwsNodePoolConfigRootVolume","description":"Optional. Template for the root volume provisioned for node pool nodes. Volumes will be provisioned in the availability zone assigned to the node pool subnet. When unspecified, it defaults to 32 GiB with the GP2 volume type.\n"},"securityGroupIds":{"type":"array","items":{"type":"string"},"description":"Optional. The IDs of additional security groups to add to nodes in this pool. The manager will automatically create security groups with minimum rules needed for a functioning cluster.\n"},"spotConfig":{"$ref":"#/types/gcp:container/AwsNodePoolConfigSpotConfig:AwsNodePoolConfigSpotConfig","description":"Optional. When specified, the node pool will provision Spot instances from the set of spot_config.instance_types. This field is mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`instanceType`\" pulumi-lang-dotnet=\"`InstanceType`\" pulumi-lang-go=\"`instanceType`\" pulumi-lang-python=\"`instance_type`\" pulumi-lang-yaml=\"`instanceType`\" pulumi-lang-java=\"`instanceType`\"\u003e`instance_type`\u003c/span\u003e\n","willReplaceOnChanges":true},"sshConfig":{"$ref":"#/types/gcp:container/AwsNodePoolConfigSshConfig:AwsNodePoolConfigSshConfig","description":"Optional. The SSH configuration.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. Key/value metadata to assign to each underlying AWS resource. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.\n"},"taints":{"type":"array","items":{"$ref":"#/types/gcp:container/AwsNodePoolConfigTaint:AwsNodePoolConfigTaint"},"description":"Optional. The initial taints assigned to nodes of this node pool.\n","willReplaceOnChanges":true}},"type":"object","required":["configEncryption","iamInstanceProfile"],"language":{"nodejs":{"requiredOutputs":["configEncryption","iamInstanceProfile","imageType","instancePlacement","instanceType","rootVolume"]}}},"gcp:container/AwsNodePoolConfigAutoscalingMetricsCollection:AwsNodePoolConfigAutoscalingMetricsCollection":{"properties":{"granularity":{"type":"string","description":"The frequency at which EC2 Auto Scaling sends aggregated data to AWS CloudWatch. The only valid value is \"1Minute\".\n"},"metrics":{"type":"array","items":{"type":"string"},"description":"The metrics to enable. For a list of valid metrics, see https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html. If you specify granularity and don't specify any metrics, all metrics are enabled.\n"}},"type":"object","required":["granularity"]},"gcp:container/AwsNodePoolConfigConfigEncryption:AwsNodePoolConfigConfigEncryption":{"properties":{"kmsKeyArn":{"type":"string","description":"The ARN of the AWS KMS key used to encrypt node pool configuration.\n"}},"type":"object","required":["kmsKeyArn"]},"gcp:container/AwsNodePoolConfigInstancePlacement:AwsNodePoolConfigInstancePlacement":{"properties":{"tenancy":{"type":"string","description":"The tenancy for the instance. Possible values: TENANCY_UNSPECIFIED, DEFAULT, DEDICATED, HOST\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["tenancy"]}}},"gcp:container/AwsNodePoolConfigProxyConfig:AwsNodePoolConfigProxyConfig":{"properties":{"secretArn":{"type":"string","description":"The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.\n"},"secretVersion":{"type":"string","description":"The version string of the AWS Secret Manager secret that contains the HTTP(S) proxy configuration.\n"}},"type":"object","required":["secretArn","secretVersion"]},"gcp:container/AwsNodePoolConfigRootVolume:AwsNodePoolConfigRootVolume":{"properties":{"iops":{"type":"integer","description":"Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.\n"},"kmsKeyArn":{"type":"string","description":"Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to encrypt AWS EBS volumes. If not specified, the default Amazon managed key associated to the AWS region where this cluster runs will be used.\n"},"sizeGib":{"type":"integer","description":"Optional. The size of the volume, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.\n"},"throughput":{"type":"integer","description":"Optional. The throughput to provision for the volume, in MiB/s. Only valid if the volume type is GP3. If volume type is gp3 and throughput is not specified, the throughput will defaults to 125.\n"},"volumeType":{"type":"string","description":"Optional. Type of the EBS volume. When unspecified, it defaults to GP2 volume. Possible values: VOLUME_TYPE_UNSPECIFIED, GP2, GP3\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["iops","sizeGib","throughput","volumeType"]}}},"gcp:container/AwsNodePoolConfigSpotConfig:AwsNodePoolConfigSpotConfig":{"properties":{"instanceTypes":{"type":"array","items":{"type":"string"},"description":"List of AWS EC2 instance types for creating a spot node pool's nodes. The specified instance types must have the same number of CPUs and memory. You can use the Amazon EC2 Instance Selector tool (https://github.com/aws/amazon-ec2-instance-selector) to choose instance types with matching CPU and memory\n","willReplaceOnChanges":true}},"type":"object","required":["instanceTypes"]},"gcp:container/AwsNodePoolConfigSshConfig:AwsNodePoolConfigSshConfig":{"properties":{"ec2KeyPair":{"type":"string","description":"The name of the EC2 key pair used to login into cluster machines.\n"}},"type":"object","required":["ec2KeyPair"]},"gcp:container/AwsNodePoolConfigTaint:AwsNodePoolConfigTaint":{"properties":{"effect":{"type":"string","description":"The taint effect. Possible values: EFFECT_UNSPECIFIED, NO_SCHEDULE, PREFER_NO_SCHEDULE, NO_EXECUTE\n","willReplaceOnChanges":true},"key":{"type":"string","description":"Key for the taint.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"Value for the taint.\n","willReplaceOnChanges":true}},"type":"object","required":["effect","key","value"]},"gcp:container/AwsNodePoolKubeletConfig:AwsNodePoolKubeletConfig":{"properties":{"cpuCfsQuota":{"type":"boolean","description":"Whether or not to enable CPU CFS quota. Defaults to true.\n","willReplaceOnChanges":true},"cpuCfsQuotaPeriod":{"type":"string","description":"Optional. The CPU CFS quota period to use for the node. Defaults to \"100ms\".\n","willReplaceOnChanges":true},"cpuManagerPolicy":{"type":"string","description":"The CpuManagerPolicy to use for the node. Defaults to \"none\".\n","willReplaceOnChanges":true},"podPidsLimit":{"type":"integer","description":"Optional. The maximum number of PIDs in each pod running on the node. The limit scales automatically based on underlying machine size if left unset.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpuCfsQuota","cpuManagerPolicy"]}}},"gcp:container/AwsNodePoolManagement:AwsNodePoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Optional. Whether or not the nodes will be automatically repaired.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoRepair"]}}},"gcp:container/AwsNodePoolMaxPodsConstraint:AwsNodePoolMaxPodsConstraint":{"properties":{"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods to schedule on a single node.\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["maxPodsPerNode"]},"gcp:container/AwsNodePoolUpdateSettings:AwsNodePoolUpdateSettings":{"properties":{"surgeSettings":{"$ref":"#/types/gcp:container/AwsNodePoolUpdateSettingsSurgeSettings:AwsNodePoolUpdateSettingsSurgeSettings","description":"Optional. Settings for surge update.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["surgeSettings"]}}},"gcp:container/AwsNodePoolUpdateSettingsSurgeSettings:AwsNodePoolUpdateSettingsSurgeSettings":{"properties":{"maxSurge":{"type":"integer","description":"Optional. The maximum number of nodes that can be created beyond the current size of the node pool during the update process.\n"},"maxUnavailable":{"type":"integer","description":"Optional. The maximum number of nodes that can be simultaneously unavailable during the update process. A node is considered unavailable if its status is not Ready.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxSurge","maxUnavailable"]}}},"gcp:container/AzureClusterAuthorization:AzureClusterAuthorization":{"properties":{"adminGroups":{"type":"array","items":{"$ref":"#/types/gcp:container/AzureClusterAuthorizationAdminGroup:AzureClusterAuthorizationAdminGroup"},"description":"Groups of users that can perform operations as a cluster admin. A managed ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole to the groups. Up to ten admin groups can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles\n"},"adminUsers":{"type":"array","items":{"$ref":"#/types/gcp:container/AzureClusterAuthorizationAdminUser:AzureClusterAuthorizationAdminUser"},"description":"Users that can perform operations as a cluster admin. A new ClusterRoleBinding will be created to grant the cluster-admin ClusterRole to the users. Up to ten admin users can be provided. For more info on RBAC, see https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles\n"}},"type":"object","required":["adminUsers"]},"gcp:container/AzureClusterAuthorizationAdminGroup:AzureClusterAuthorizationAdminGroup":{"properties":{"group":{"type":"string","description":"The name of the group, e.g. `my-group@domain.com`.\n"}},"type":"object","required":["group"]},"gcp:container/AzureClusterAuthorizationAdminUser:AzureClusterAuthorizationAdminUser":{"properties":{"username":{"type":"string","description":"The name of the user, e.g. `my-gcp-id@gmail.com`.\n"}},"type":"object","required":["username"]},"gcp:container/AzureClusterAzureServicesAuthentication:AzureClusterAzureServicesAuthentication":{"properties":{"applicationId":{"type":"string","description":"The Azure Active Directory Application ID for Authentication configuration.\n"},"tenantId":{"type":"string","description":"The Azure Active Directory Tenant ID for Authentication configuration.\n"}},"type":"object","required":["applicationId","tenantId"]},"gcp:container/AzureClusterControlPlane:AzureClusterControlPlane":{"properties":{"databaseEncryption":{"$ref":"#/types/gcp:container/AzureClusterControlPlaneDatabaseEncryption:AzureClusterControlPlaneDatabaseEncryption","description":"Optional. Configuration related to application-layer secrets encryption.\n","willReplaceOnChanges":true},"mainVolume":{"$ref":"#/types/gcp:container/AzureClusterControlPlaneMainVolume:AzureClusterControlPlaneMainVolume","description":"Optional. Configuration related to the main volume provisioned for each control plane replica. The main volume is in charge of storing all of the cluster's etcd state. When unspecified, it defaults to a 8-GiB Azure Disk.\n","willReplaceOnChanges":true},"proxyConfig":{"$ref":"#/types/gcp:container/AzureClusterControlPlaneProxyConfig:AzureClusterControlPlaneProxyConfig","description":"Proxy configuration for outbound HTTP(S) traffic.\n","willReplaceOnChanges":true},"replicaPlacements":{"type":"array","items":{"$ref":"#/types/gcp:container/AzureClusterControlPlaneReplicaPlacement:AzureClusterControlPlaneReplicaPlacement"},"description":"Configuration for where to place the control plane replicas. Up to three replica placement instances can be specified. If\u003cspan pulumi-lang-nodejs=\" replicaPlacements \" pulumi-lang-dotnet=\" ReplicaPlacements \" pulumi-lang-go=\" replicaPlacements \" pulumi-lang-python=\" replica_placements \" pulumi-lang-yaml=\" replicaPlacements \" pulumi-lang-java=\" replicaPlacements \"\u003e replica_placements \u003c/span\u003eis set, the replica placement instances will be applied to the three control plane replicas as evenly as possible.\n","willReplaceOnChanges":true},"rootVolume":{"$ref":"#/types/gcp:container/AzureClusterControlPlaneRootVolume:AzureClusterControlPlaneRootVolume","description":"Optional. Configuration related to the root volume provisioned for each control plane replica. When unspecified, it defaults to 32-GiB Azure Disk.\n","willReplaceOnChanges":true},"sshConfig":{"$ref":"#/types/gcp:container/AzureClusterControlPlaneSshConfig:AzureClusterControlPlaneSshConfig","description":"SSH configuration for how to access the underlying control plane machines.\n"},"subnetId":{"type":"string","description":"The ARM ID of the subnet where the control plane VMs are deployed. Example: `/subscriptions//resourceGroups//providers/Microsoft.Network/virtualNetworks//subnets/default`.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. A set of tags to apply to all underlying control plane Azure resources.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The Kubernetes version to run on control plane replicas (e.g. `1.19.10-gke.1000`). You can list all supported versions on a given Google Cloud region by calling GetAzureServerConfig.\n"},"vmSize":{"type":"string","description":"Optional. The Azure VM size name. Example: `Standard_DS2_v2`. For available VM sizes, see https://docs.microsoft.com/en-us/azure/virtual-machines/vm-naming-conventions. When unspecified, it defaults to `Standard_DS2_v2`.\n"}},"type":"object","required":["sshConfig","subnetId","version"],"language":{"nodejs":{"requiredOutputs":["mainVolume","rootVolume","sshConfig","subnetId","version","vmSize"]}}},"gcp:container/AzureClusterControlPlaneDatabaseEncryption:AzureClusterControlPlaneDatabaseEncryption":{"properties":{"keyId":{"type":"string","description":"The ARM ID of the Azure Key Vault key to encrypt / decrypt data. For example: `/subscriptions/\u003csubscription-id\u003e/resourceGroups/\u003cresource-group-id\u003e/providers/Microsoft.KeyVault/vaults/\u003ckey-vault-id\u003e/keys/\u003ckey-name\u003e` Encryption will always take the latest version of the key and hence specific version is not supported.\n","willReplaceOnChanges":true}},"type":"object","required":["keyId"]},"gcp:container/AzureClusterControlPlaneMainVolume:AzureClusterControlPlaneMainVolume":{"properties":{"sizeGib":{"type":"integer","description":"Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["sizeGib"]}}},"gcp:container/AzureClusterControlPlaneProxyConfig:AzureClusterControlPlaneProxyConfig":{"properties":{"resourceGroupId":{"type":"string","description":"The ARM ID the of the resource group containing proxy keyvault. Resource group ids are formatted as `/subscriptions/\u003csubscription-id\u003e/resourceGroups/\u003cresource-group-name\u003e`\n","willReplaceOnChanges":true},"secretId":{"type":"string","description":"The URL the of the proxy setting secret with its version. Secret ids are formatted as `https:\u003ckey-vault-name\u003e.vault.azure.net/secrets/\u003csecret-name\u003e/\u003csecret-version\u003e`.\n","willReplaceOnChanges":true}},"type":"object","required":["resourceGroupId","secretId"]},"gcp:container/AzureClusterControlPlaneReplicaPlacement:AzureClusterControlPlaneReplicaPlacement":{"properties":{"azureAvailabilityZone":{"type":"string","description":"For a given replica, the Azure availability zone where to provision the control plane VM and the ETCD disk.\n","willReplaceOnChanges":true},"subnetId":{"type":"string","description":"For a given replica, the ARM ID of the subnet where the control plane VM is deployed. Make sure it's a subnet under the virtual network in the cluster configuration.\n","willReplaceOnChanges":true}},"type":"object","required":["azureAvailabilityZone","subnetId"]},"gcp:container/AzureClusterControlPlaneRootVolume:AzureClusterControlPlaneRootVolume":{"properties":{"sizeGib":{"type":"integer","description":"Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["sizeGib"]}}},"gcp:container/AzureClusterControlPlaneSshConfig:AzureClusterControlPlaneSshConfig":{"properties":{"authorizedKey":{"type":"string","description":"The SSH public key data for VMs managed by Anthos. This accepts the\u003cspan pulumi-lang-nodejs=\" authorizedKeys \" pulumi-lang-dotnet=\" AuthorizedKeys \" pulumi-lang-go=\" authorizedKeys \" pulumi-lang-python=\" authorized_keys \" pulumi-lang-yaml=\" authorizedKeys \" pulumi-lang-java=\" authorizedKeys \"\u003e authorized_keys \u003c/span\u003efile format used in OpenSSH according to the sshd(8) manual page.\n"}},"type":"object","required":["authorizedKey"]},"gcp:container/AzureClusterFleet:AzureClusterFleet":{"properties":{"membership":{"type":"string","description":"The name of the managed Hub Membership resource associated to this cluster. Membership names are formatted as projects/\u003cproject-number\u003e/locations/global/membership/\u003ccluster-id\u003e.\n"},"project":{"type":"string","description":"The number of the Fleet host project where this cluster will be registered.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["membership","project"]}}},"gcp:container/AzureClusterLoggingConfig:AzureClusterLoggingConfig":{"properties":{"componentConfig":{"$ref":"#/types/gcp:container/AzureClusterLoggingConfigComponentConfig:AzureClusterLoggingConfigComponentConfig","description":"Configuration of the logging components.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["componentConfig"]}}},"gcp:container/AzureClusterLoggingConfigComponentConfig:AzureClusterLoggingConfigComponentConfig":{"properties":{"enableComponents":{"type":"array","items":{"type":"string"},"description":"Components of the logging configuration to be enabled.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableComponents"]}}},"gcp:container/AzureClusterNetworking:AzureClusterNetworking":{"properties":{"podAddressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"The IP address range of the pods in this cluster, in CIDR notation (e.g. `10.96.0.0/14`). All pods in the cluster get assigned a unique RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creation.\n","willReplaceOnChanges":true},"serviceAddressCidrBlocks":{"type":"array","items":{"type":"string"},"description":"The IP address range for services in this cluster, in CIDR notation (e.g. `10.96.0.0/14`). All services in the cluster get assigned a unique RFC1918 IPv4 address from these ranges. Only a single range is supported. This field cannot be changed after creating a cluster.\n","willReplaceOnChanges":true},"virtualNetworkId":{"type":"string","description":"The Azure Resource Manager (ARM) ID of the VNet associated with your cluster. All components in the cluster (i.e. control plane and node pools) run on a single VNet. Example: `/subscriptions/*/resourceGroups/*/providers/Microsoft.Network/virtualNetworks/*` This field cannot be changed after creation.\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["podAddressCidrBlocks","serviceAddressCidrBlocks","virtualNetworkId"]},"gcp:container/AzureClusterWorkloadIdentityConfig:AzureClusterWorkloadIdentityConfig":{"properties":{"identityProvider":{"type":"string","description":"The ID of the OIDC Identity Provider (IdP) associated to the Workload Identity Pool.\n"},"issuerUri":{"type":"string","description":"The OIDC issuer URL for this cluster.\n"},"workloadPool":{"type":"string","description":"The Workload Identity Pool associated to the cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["identityProvider","issuerUri","workloadPool"]}}},"gcp:container/AzureNodePoolAutoscaling:AzureNodePoolAutoscaling":{"properties":{"maxNodeCount":{"type":"integer","description":"Maximum number of nodes in the node pool. Must be \u003e= min_node_count.\n"},"minNodeCount":{"type":"integer","description":"Minimum number of nodes in the node pool. Must be \u003e= 1 and \u003c= max_node_count.\n"}},"type":"object","required":["maxNodeCount","minNodeCount"]},"gcp:container/AzureNodePoolConfig:AzureNodePoolConfig":{"properties":{"imageType":{"type":"string","description":"The OS image type to use on node pool instances.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The initial labels assigned to nodes of this node pool. An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n","willReplaceOnChanges":true},"proxyConfig":{"$ref":"#/types/gcp:container/AzureNodePoolConfigProxyConfig:AzureNodePoolConfigProxyConfig","description":"Proxy configuration for outbound HTTP(S) traffic.\n","willReplaceOnChanges":true},"rootVolume":{"$ref":"#/types/gcp:container/AzureNodePoolConfigRootVolume:AzureNodePoolConfigRootVolume","description":"Optional. Configuration related to the root volume provisioned for each node pool machine. When unspecified, it defaults to a 32-GiB Azure Disk.\n","willReplaceOnChanges":true},"sshConfig":{"$ref":"#/types/gcp:container/AzureNodePoolConfigSshConfig:AzureNodePoolConfigSshConfig","description":"SSH configuration for how to access the node pool machines.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. A set of tags to apply to all underlying Azure resources for this node pool. This currently only includes Virtual Machine Scale Sets. Specify at most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to 255 Unicode characters.\n","willReplaceOnChanges":true},"vmSize":{"type":"string","description":"Optional. The Azure VM size name. Example: `Standard_DS2_v2`. See (/anthos/clusters/docs/azure/reference/supported-vms) for options. When unspecified, it defaults to `Standard_DS2_v2`.\n","willReplaceOnChanges":true}},"type":"object","required":["sshConfig"],"language":{"nodejs":{"requiredOutputs":["imageType","rootVolume","sshConfig","vmSize"]}}},"gcp:container/AzureNodePoolConfigProxyConfig:AzureNodePoolConfigProxyConfig":{"properties":{"resourceGroupId":{"type":"string","description":"The ARM ID the of the resource group containing proxy keyvault. Resource group ids are formatted as `/subscriptions/\u003csubscription-id\u003e/resourceGroups/\u003cresource-group-name\u003e`\n","willReplaceOnChanges":true},"secretId":{"type":"string","description":"The URL the of the proxy setting secret with its version. Secret ids are formatted as `https:\u003ckey-vault-name\u003e.vault.azure.net/secrets/\u003csecret-name\u003e/\u003csecret-version\u003e`.\n","willReplaceOnChanges":true}},"type":"object","required":["resourceGroupId","secretId"]},"gcp:container/AzureNodePoolConfigRootVolume:AzureNodePoolConfigRootVolume":{"properties":{"sizeGib":{"type":"integer","description":"Optional. The size of the disk, in GiBs. When unspecified, a default value is provided. See the specific reference in the parent resource.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["sizeGib"]}}},"gcp:container/AzureNodePoolConfigSshConfig:AzureNodePoolConfigSshConfig":{"properties":{"authorizedKey":{"type":"string","description":"The SSH public key data for VMs managed by Anthos. This accepts the\u003cspan pulumi-lang-nodejs=\" authorizedKeys \" pulumi-lang-dotnet=\" AuthorizedKeys \" pulumi-lang-go=\" authorizedKeys \" pulumi-lang-python=\" authorized_keys \" pulumi-lang-yaml=\" authorizedKeys \" pulumi-lang-java=\" authorizedKeys \"\u003e authorized_keys \u003c/span\u003efile format used in OpenSSH according to the sshd(8) manual page.\n"}},"type":"object","required":["authorizedKey"]},"gcp:container/AzureNodePoolManagement:AzureNodePoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Optional. Whether or not the nodes will be automatically repaired.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoRepair"]}}},"gcp:container/AzureNodePoolMaxPodsConstraint:AzureNodePoolMaxPodsConstraint":{"properties":{"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods to schedule on a single node.\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["maxPodsPerNode"]},"gcp:container/ClusterAddonsConfig:ClusterAddonsConfig":{"properties":{"cloudrunConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigCloudrunConfig:ClusterAddonsConfigCloudrunConfig","description":". Structure is documented below.\n"},"configConnectorConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigConfigConnectorConfig:ClusterAddonsConfigConfigConnectorConfig","description":".\nThe status of the ConfigConnector addon. It is disabled by default; Set `enabled = true` to enable.\n"},"dnsCacheConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigDnsCacheConfig:ClusterAddonsConfigDnsCacheConfig","description":".\nThe status of the NodeLocal DNSCache addon. It is disabled by default.\nSet `enabled = true` to enable.\n\n**Enabling/Disabling NodeLocal DNSCache in an existing cluster is a disruptive operation.\nAll cluster nodes running GKE 1.15 and higher are recreated.**\n"},"gcePersistentDiskCsiDriverConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigGcePersistentDiskCsiDriverConfig:ClusterAddonsConfigGcePersistentDiskCsiDriverConfig","description":".\nWhether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Set `enabled = true` to enable.\n\n**Note:** The Compute Engine persistent disk CSI Driver is enabled by default on newly created clusters for the following versions: Linux clusters: GKE version 1.18.10-gke.2100 or later, or 1.19.3-gke.2100 or later.\n"},"gcpFilestoreCsiDriverConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigGcpFilestoreCsiDriverConfig:ClusterAddonsConfigGcpFilestoreCsiDriverConfig","description":"The status of the Filestore CSI driver addon,\nwhich allows the usage of filestore instance as volumes.\nIt is disabled by default; set `enabled = true` to enable.\n"},"gcsFuseCsiDriverConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigGcsFuseCsiDriverConfig:ClusterAddonsConfigGcsFuseCsiDriverConfig","description":"The status of the GCSFuse CSI driver addon,\nwhich allows the usage of a gcs bucket as volumes.\nIt is disabled by default for Standard clusters; set `enabled = true` to enable.\nIt is enabled by default for Autopilot clusters with version 1.24 or later; set `enabled = true` to enable it explicitly.\nSee [Enable the Cloud Storage FUSE CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/cloud-storage-fuse-csi-driver#enable) for more information.\n"},"gkeBackupAgentConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigGkeBackupAgentConfig:ClusterAddonsConfigGkeBackupAgentConfig","description":".\nThe status of the Backup for GKE agent addon. It is disabled by default; Set `enabled = true` to enable.\n"},"horizontalPodAutoscaling":{"$ref":"#/types/gcp:container/ClusterAddonsConfigHorizontalPodAutoscaling:ClusterAddonsConfigHorizontalPodAutoscaling","description":"The status of the Horizontal Pod Autoscaling\naddon, which increases or decreases the number of replica pods a replication controller\nhas based on the resource usage of the existing pods.\nIt is enabled by default;\nset `disabled = true` to disable.\n"},"httpLoadBalancing":{"$ref":"#/types/gcp:container/ClusterAddonsConfigHttpLoadBalancing:ClusterAddonsConfigHttpLoadBalancing","description":"The status of the HTTP (L7) load balancing\ncontroller addon, which makes it easy to set up HTTP load balancers for services in a\ncluster. It is enabled by default; set `disabled = true` to disable.\n"},"istioConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigIstioConfig:ClusterAddonsConfigIstioConfig","description":").\nStructure is documented below.\n"},"kalmConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigKalmConfig:ClusterAddonsConfigKalmConfig","description":").\nConfiguration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set `enabled = true` to enable.\n"},"lustreCsiDriverConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigLustreCsiDriverConfig:ClusterAddonsConfigLustreCsiDriverConfig","description":"The status of the Lustre CSI driver addon,\nwhich allows the usage of a Lustre instances as volumes.\nIt is disabled by default for Standard clusters; set `enabled = true` to enable.\nIt is disabled by default for Autopilot clusters; set `enabled = true` to enable.\nLustre CSI Driver Config has optional subfield\n\u003cspan pulumi-lang-nodejs=\"`enableLegacyLustrePort`\" pulumi-lang-dotnet=\"`EnableLegacyLustrePort`\" pulumi-lang-go=\"`enableLegacyLustrePort`\" pulumi-lang-python=\"`enable_legacy_lustre_port`\" pulumi-lang-yaml=\"`enableLegacyLustrePort`\" pulumi-lang-java=\"`enableLegacyLustrePort`\"\u003e`enable_legacy_lustre_port`\u003c/span\u003e which allows the Lustre CSI driver to initialize LNet (the virtual networklayer for Lustre kernel module) using port 6988.\nThis flag is required to workaround a port conflict with the gke-metadata-server on GKE nodes.\nSee [Enable Lustre CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/lustre-csi-driver-new-volume) for more information.\n"},"networkPolicyConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigNetworkPolicyConfig:ClusterAddonsConfigNetworkPolicyConfig","description":"Whether we should enable the network policy addon\nfor the master.  This must be enabled in order to enable network policy for the nodes.\nTo enable this, you must also define a \u003cspan pulumi-lang-nodejs=\"`networkPolicy`\" pulumi-lang-dotnet=\"`NetworkPolicy`\" pulumi-lang-go=\"`networkPolicy`\" pulumi-lang-python=\"`network_policy`\" pulumi-lang-yaml=\"`networkPolicy`\" pulumi-lang-java=\"`networkPolicy`\"\u003e`network_policy`\u003c/span\u003e block,\notherwise nothing will happen.\nIt can only be disabled if the nodes already do not have network policies enabled.\nDefaults to disabled; set `disabled = false` to enable.\n"},"parallelstoreCsiDriverConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigParallelstoreCsiDriverConfig:ClusterAddonsConfigParallelstoreCsiDriverConfig","description":"The status of the Parallelstore CSI driver addon,\nwhich allows the usage of a Parallelstore instances as volumes.\nIt is disabled by default for Standard clusters; set `enabled = true` to enable.\nIt is enabled by default for Autopilot clusters with version 1.29 or later; set `enabled = true` to enable it explicitly.\nSee [Enable the Parallelstore CSI driver](https://cloud.google.com/kubernetes-engine/docs/how-to/persistent-volumes/parallelstore-csi-new-volume#enable) for more information.\n"},"podSnapshotConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigPodSnapshotConfig:ClusterAddonsConfigPodSnapshotConfig","description":") The status of the Pod Snapshot addon. It is disabled by default. Set `enabled = true` to enable.\n\nThis example \u003cspan pulumi-lang-nodejs=\"`addonsConfig`\" pulumi-lang-dotnet=\"`AddonsConfig`\" pulumi-lang-go=\"`addonsConfig`\" pulumi-lang-python=\"`addons_config`\" pulumi-lang-yaml=\"`addonsConfig`\" pulumi-lang-java=\"`addonsConfig`\"\u003e`addons_config`\u003c/span\u003e disables two addons:\n\n"},"rayOperatorConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterAddonsConfigRayOperatorConfig:ClusterAddonsConfigRayOperatorConfig"},"description":". The status of the [Ray Operator\naddon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview).\nIt is disabled by default. Set `enabled = true` to enable. The minimum\ncluster version to enable Ray is 1.30.0-gke.1747000.\n\nRay Operator config has optional subfields\n`ray_cluster_logging_config.enabled` and\n`ray_cluster_monitoring_config.enabled` which control Ray Cluster logging\nand monitoring respectively. See [Collect and view logs and metrics for Ray\nclusters on\nGKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics)\nfor more information.\n"},"sliceControllerConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigSliceControllerConfig:ClusterAddonsConfigSliceControllerConfig","description":"The status of the Slice Controller addon. It is disabled by default; set enabled = true to enable.\n"},"statefulHaConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigStatefulHaConfig:ClusterAddonsConfigStatefulHaConfig","description":".\nThe status of the Stateful HA addon, which provides automatic configurable failover for stateful applications.\nIt is disabled by default for Standard clusters. Set `enabled = true` to enable.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudrunConfig","configConnectorConfig","dnsCacheConfig","gcePersistentDiskCsiDriverConfig","gcpFilestoreCsiDriverConfig","gcsFuseCsiDriverConfig","gkeBackupAgentConfig","horizontalPodAutoscaling","httpLoadBalancing","istioConfig","kalmConfig","lustreCsiDriverConfig","networkPolicyConfig","parallelstoreCsiDriverConfig","podSnapshotConfig","rayOperatorConfigs","sliceControllerConfig","statefulHaConfig"]}}},"gcp:container/ClusterAddonsConfigCloudrunConfig:ClusterAddonsConfigCloudrunConfig":{"properties":{"disabled":{"type":"boolean","description":"The status of the CloudRun addon. It is disabled by default. Set `disabled=false` to enable.\n"},"loadBalancerType":{"type":"string","description":"The load balancer type of CloudRun ingress service. It is external load balancer by default.\nSet `load_balancer_type=LOAD_BALANCER_TYPE_INTERNAL` to configure it as internal load balancer.\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterAddonsConfigConfigConnectorConfig:ClusterAddonsConfigConfigConnectorConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigDnsCacheConfig:ClusterAddonsConfigDnsCacheConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigGcePersistentDiskCsiDriverConfig:ClusterAddonsConfigGcePersistentDiskCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigGcpFilestoreCsiDriverConfig:ClusterAddonsConfigGcpFilestoreCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigGcsFuseCsiDriverConfig:ClusterAddonsConfigGcsFuseCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigGkeBackupAgentConfig:ClusterAddonsConfigGkeBackupAgentConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigHorizontalPodAutoscaling:ClusterAddonsConfigHorizontalPodAutoscaling":{"properties":{"disabled":{"type":"boolean","description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedClusterTelemetry\"\" pulumi-lang-dotnet=\"\"NestedClusterTelemetry\"\" pulumi-lang-go=\"\"nestedClusterTelemetry\"\" pulumi-lang-python=\"\"nested_cluster_telemetry\"\" pulumi-lang-yaml=\"\"nestedClusterTelemetry\"\" pulumi-lang-java=\"\"nestedClusterTelemetry\"\"\u003e\"nested_cluster_telemetry\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`clusterTelemetry`\" pulumi-lang-dotnet=\"`ClusterTelemetry`\" pulumi-lang-go=\"`clusterTelemetry`\" pulumi-lang-python=\"`cluster_telemetry`\" pulumi-lang-yaml=\"`clusterTelemetry`\" pulumi-lang-java=\"`clusterTelemetry`\"\u003e`cluster_telemetry`\u003c/span\u003e block supports\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterAddonsConfigHttpLoadBalancing:ClusterAddonsConfigHttpLoadBalancing":{"properties":{"disabled":{"type":"boolean","description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedClusterTelemetry\"\" pulumi-lang-dotnet=\"\"NestedClusterTelemetry\"\" pulumi-lang-go=\"\"nestedClusterTelemetry\"\" pulumi-lang-python=\"\"nested_cluster_telemetry\"\" pulumi-lang-yaml=\"\"nestedClusterTelemetry\"\" pulumi-lang-java=\"\"nestedClusterTelemetry\"\"\u003e\"nested_cluster_telemetry\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`clusterTelemetry`\" pulumi-lang-dotnet=\"`ClusterTelemetry`\" pulumi-lang-go=\"`clusterTelemetry`\" pulumi-lang-python=\"`cluster_telemetry`\" pulumi-lang-yaml=\"`clusterTelemetry`\" pulumi-lang-java=\"`clusterTelemetry`\"\u003e`cluster_telemetry`\u003c/span\u003e block supports\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterAddonsConfigIstioConfig:ClusterAddonsConfigIstioConfig":{"properties":{"auth":{"type":"string","description":"The authentication type between services in Istio. Available options include `AUTH_MUTUAL_TLS`.\n"},"disabled":{"type":"boolean","description":"The status of the Istio addon, which makes it easy to set up Istio for services in a\ncluster. It is disabled by default. Set `disabled = false` to enable.\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterAddonsConfigKalmConfig:ClusterAddonsConfigKalmConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigLustreCsiDriverConfig:ClusterAddonsConfigLustreCsiDriverConfig":{"properties":{"enableLegacyLustrePort":{"type":"boolean","description":"If set to true, the Lustre CSI driver will initialize LNet (the virtual network layer for Lustre kernel module) using port 6988.\n\t\t\t\t\t\t\t\t\t\tThis flag is required to workaround a port conflict with the gke-metadata-server on GKE nodes.\n"},"enabled":{"type":"boolean","description":"Whether the Lustre CSI driver is enabled for this cluster.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigNetworkPolicyConfig:ClusterAddonsConfigNetworkPolicyConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedClusterTelemetry\"\" pulumi-lang-dotnet=\"\"NestedClusterTelemetry\"\" pulumi-lang-go=\"\"nestedClusterTelemetry\"\" pulumi-lang-python=\"\"nested_cluster_telemetry\"\" pulumi-lang-yaml=\"\"nestedClusterTelemetry\"\" pulumi-lang-java=\"\"nestedClusterTelemetry\"\"\u003e\"nested_cluster_telemetry\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`clusterTelemetry`\" pulumi-lang-dotnet=\"`ClusterTelemetry`\" pulumi-lang-go=\"`clusterTelemetry`\" pulumi-lang-python=\"`cluster_telemetry`\" pulumi-lang-yaml=\"`clusterTelemetry`\" pulumi-lang-java=\"`clusterTelemetry`\"\u003e`cluster_telemetry`\u003c/span\u003e block supports\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterAddonsConfigParallelstoreCsiDriverConfig:ClusterAddonsConfigParallelstoreCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigPodSnapshotConfig:ClusterAddonsConfigPodSnapshotConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether the Pod Snapshot feature is enabled for this cluster.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigRayOperatorConfig:ClusterAddonsConfigRayOperatorConfig":{"properties":{"enabled":{"type":"boolean"},"rayClusterLoggingConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig:ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig","description":"The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable.\n"},"rayClusterMonitoringConfig":{"$ref":"#/types/gcp:container/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig:ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig","description":"The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","rayClusterLoggingConfig","rayClusterMonitoringConfig"]}}},"gcp:container/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig:ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig:ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigSliceControllerConfig:ClusterAddonsConfigSliceControllerConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAddonsConfigStatefulHaConfig:ClusterAddonsConfigStatefulHaConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"gcp:container/ClusterAnonymousAuthenticationConfig:ClusterAnonymousAuthenticationConfig":{"properties":{"mode":{"type":"string","description":"Sets or removes authentication restrictions. Available options include `LIMITED` and `ENABLED`.\n"}},"type":"object","required":["mode"]},"gcp:container/ClusterAuthenticatorGroupsConfig:ClusterAuthenticatorGroupsConfig":{"properties":{"securityGroup":{"type":"string","description":"The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format `gke-security-groups@yourdomain.com`.\n"}},"type":"object","required":["securityGroup"]},"gcp:container/ClusterBinaryAuthorization:ClusterBinaryAuthorization":{"properties":{"enabled":{"type":"boolean","description":"Enable Binary Authorization for this cluster.\n","deprecationMessage":"Deprecated in favor of evaluation_mode."},"evaluationMode":{"type":"string","description":"Mode of operation for Binary Authorization policy evaluation.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["evaluationMode"]}}},"gcp:container/ClusterClusterAutoscaling:ClusterClusterAutoscaling":{"properties":{"autoProvisioningDefaults":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaults:ClusterClusterAutoscalingAutoProvisioningDefaults","description":"Contains defaults for a node pool created by NAP. A subset of fields also apply to\nGKE Autopilot clusters.\nStructure is documented below.\n"},"autoProvisioningLocations":{"type":"array","items":{"type":"string"},"description":"The list of Google Compute Engine\n[zones](https://cloud.google.com/compute/docs/zones#available) in which the\nNodePool's nodes can be created by NAP.\n"},"autoscalingProfile":{"type":"string","description":"Configuration\noptions for the [Autoscaling profile](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-autoscaler#autoscaling_profiles)\nfeature, which lets you choose whether the cluster autoscaler should optimize for resource utilization or resource availability\nwhen deciding to remove nodes from a cluster. Can be `BALANCED` or `OPTIMIZE_UTILIZATION`. Defaults to `BALANCED`.\n"},"defaultComputeClassEnabled":{"type":"boolean","description":"Specifies whether default compute class behaviour is enabled. If enabled, cluster autoscaler will use Compute Class with name default for all the workloads, if not overriden.\n"},"enabled":{"type":"boolean","description":"Whether node auto-provisioning is enabled. Must be supplied for GKE Standard clusters, \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e is implied\nfor autopilot clusters. Resource limits for \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\"\u003e`memory`\u003c/span\u003e must be defined to enable node auto-provisioning for GKE Standard.\n"},"resourceLimits":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingResourceLimit:ClusterClusterAutoscalingResourceLimit"},"description":"Global constraints for machine resources in the\ncluster. Configuring the \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\"\u003e`memory`\u003c/span\u003e types is required if node\nauto-provisioning is enabled. These limits will apply to node pool autoscaling\nin addition to node auto-provisioning. Limits can't be unset entirely, they can only be replaced. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoProvisioningDefaults","autoProvisioningLocations","enabled","resourceLimits"]}}},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaults:ClusterClusterAutoscalingAutoProvisioningDefaults":{"properties":{"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption\n","willReplaceOnChanges":true},"diskSize":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd', 'pd-balanced', or 'hyperdisk-balanced'). Defaults to `hyperdisk-balanced` if `hyperdisk-balanced` is supported and `pd-balanced` is not supported for the machine type; otherwise defaults to `pd-balanced`.\n"},"imageType":{"type":"string","description":"The default image type used by NAP once a new node pool is being created. Please note that according to the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning#default-image-type) the value must be one of the [COS_CONTAINERD, COS, UBUNTU_CONTAINERD, UBUNTU]. __NOTE__ : COS AND UBUNTU are deprecated as of `GKE 1.24`\n"},"management":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsManagement:ClusterClusterAutoscalingAutoProvisioningDefaultsManagement","description":"NodeManagement configuration for this NodePool. Structure is documented below.\n"},"minCpuPlatform":{"type":"string","description":")\nMinimum CPU platform to be used for NAP created node pools. The instance may be scheduled on the\nspecified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such\nas \"Intel Haswell\" or \"Intel Sandy Bridge\".\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"Scopes that are used by NAP and GKE Autopilot when creating node pools. Use the \"https://www.googleapis.com/auth/cloud-platform\" scope to grant access to all APIs. It is recommended that you set \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e to a non-default service account and grant IAM roles to that service account for only the resources that it needs.\n\n\u003e `monitoring.write` is always enabled regardless of user input.  \u003cspan pulumi-lang-nodejs=\"`monitoring`\" pulumi-lang-dotnet=\"`Monitoring`\" pulumi-lang-go=\"`monitoring`\" pulumi-lang-python=\"`monitoring`\" pulumi-lang-yaml=\"`monitoring`\" pulumi-lang-java=\"`monitoring`\"\u003e`monitoring`\u003c/span\u003e and `logging.write` may also be enabled depending on the values for \u003cspan pulumi-lang-nodejs=\"`monitoringService`\" pulumi-lang-dotnet=\"`MonitoringService`\" pulumi-lang-go=\"`monitoringService`\" pulumi-lang-python=\"`monitoring_service`\" pulumi-lang-yaml=\"`monitoringService`\" pulumi-lang-java=\"`monitoringService`\"\u003e`monitoring_service`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`loggingService`\" pulumi-lang-dotnet=\"`LoggingService`\" pulumi-lang-go=\"`loggingService`\" pulumi-lang-python=\"`logging_service`\" pulumi-lang-yaml=\"`loggingService`\" pulumi-lang-java=\"`loggingService`\"\u003e`logging_service`\u003c/span\u003e.\n"},"serviceAccount":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e of the Google Cloud Platform Service Account to be used by the node VMs created by GKE Autopilot or NAP.\n"},"shieldedInstanceConfig":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig:ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig","description":"Shielded Instance options. Structure is documented below.\n"},"upgradeSettings":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings:ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings","description":"Specifies the upgrade settings for NAP created node pools\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["management","oauthScopes","upgradeSettings"]}}},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsManagement:ClusterClusterAutoscalingAutoProvisioningDefaultsManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.\n\nThis block also contains several computed attributes, documented below.\n"},"autoUpgrade":{"type":"boolean","description":"Specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.\n"},"upgradeOptions":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOption:ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOption"},"description":"Specifies the Auto Upgrade knobs for the node pool.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoRepair","autoUpgrade","upgradeOptions"]}}},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOption:ClusterClusterAutoscalingAutoProvisioningDefaultsManagementUpgradeOption":{"properties":{"autoUpgradeStartTime":{"type":"string","description":"This field is set when upgrades are about to commence with the approximate start time for the upgrades, in RFC3339 text format.\n"},"description":{"type":"string","description":"Description of the cluster.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoUpgradeStartTime","description"]}}},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig:ClusterClusterAutoscalingAutoProvisioningDefaultsShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines if the instance has integrity monitoring enabled.\n\nEnables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created.  Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enableSecureBoot":{"type":"boolean","description":"Defines if the instance has Secure Boot enabled.\n\nSecure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.  Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings:ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettings":{"properties":{"blueGreenSettings":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings:ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings","description":"Settings for blue-green upgrade strategy. To be specified when strategy is set to BLUE_GREEN. Structure is documented below.\n"},"maxSurge":{"type":"integer","description":"The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process. To be used when strategy is set to SURGE. Default is 0.\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be simultaneously unavailable during the upgrade process. To be used when strategy is set to SURGE. Default is 0.\n"},"strategy":{"type":"string","description":"Strategy used for node pool update. Strategy can only be one of BLUE_GREEN or SURGE. The default is value is SURGE.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["blueGreenSettings","strategy"]}}},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings:ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettings":{"properties":{"nodePoolSoakDuration":{"type":"string","description":"Time needed after draining entire blue pool. After this period, blue pool will be cleaned up. A duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"standardRolloutPolicy":{"$ref":"#/types/gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy:ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy","description":"Standard policy for the blue-green upgrade. To be specified when strategy is set to BLUE_GREEN. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodePoolSoakDuration","standardRolloutPolicy"]}}},"gcp:container/ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy:ClusterClusterAutoscalingAutoProvisioningDefaultsUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy":{"properties":{"batchNodeCount":{"type":"integer","description":"Number of blue nodes to drain in a batch. Only one of the\u003cspan pulumi-lang-nodejs=\" batchPercentage \" pulumi-lang-dotnet=\" BatchPercentage \" pulumi-lang-go=\" batchPercentage \" pulumi-lang-python=\" batch_percentage \" pulumi-lang-yaml=\" batchPercentage \" pulumi-lang-java=\" batchPercentage \"\u003e batch_percentage \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" batchNodeCount \" pulumi-lang-dotnet=\" BatchNodeCount \" pulumi-lang-go=\" batchNodeCount \" pulumi-lang-python=\" batch_node_count \" pulumi-lang-yaml=\" batchNodeCount \" pulumi-lang-java=\" batchNodeCount \"\u003e batch_node_count \u003c/span\u003ecan be specified.\n"},"batchPercentage":{"type":"number","description":"Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0). Only one of the\u003cspan pulumi-lang-nodejs=\" batchPercentage \" pulumi-lang-dotnet=\" BatchPercentage \" pulumi-lang-go=\" batchPercentage \" pulumi-lang-python=\" batch_percentage \" pulumi-lang-yaml=\" batchPercentage \" pulumi-lang-java=\" batchPercentage \"\u003e batch_percentage \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" batchNodeCount \" pulumi-lang-dotnet=\" BatchNodeCount \" pulumi-lang-go=\" batchNodeCount \" pulumi-lang-python=\" batch_node_count \" pulumi-lang-yaml=\" batchNodeCount \" pulumi-lang-java=\" batchNodeCount \"\u003e batch_node_count \u003c/span\u003ecan be specified.\n"},"batchSoakDuration":{"type":"string","description":"Soak time after each batch gets drained. A duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["batchNodeCount","batchPercentage"]}}},"gcp:container/ClusterClusterAutoscalingResourceLimit:ClusterClusterAutoscalingResourceLimit":{"properties":{"maximum":{"type":"integer","description":"Maximum amount of the resource in the cluster.\n"},"minimum":{"type":"integer","description":"Minimum amount of the resource in the cluster.\n"},"resourceType":{"type":"string","description":"The type of the resource. For example, \u003cspan pulumi-lang-nodejs=\"`cpu`\" pulumi-lang-dotnet=\"`Cpu`\" pulumi-lang-go=\"`cpu`\" pulumi-lang-python=\"`cpu`\" pulumi-lang-yaml=\"`cpu`\" pulumi-lang-java=\"`cpu`\"\u003e`cpu`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`memory`\" pulumi-lang-dotnet=\"`Memory`\" pulumi-lang-go=\"`memory`\" pulumi-lang-python=\"`memory`\" pulumi-lang-yaml=\"`memory`\" pulumi-lang-java=\"`memory`\"\u003e`memory`\u003c/span\u003e.  See the [guide to using Node Auto-Provisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning)\nfor a list of types.\n"}},"type":"object","required":["maximum","resourceType"]},"gcp:container/ClusterClusterTelemetry:ClusterClusterTelemetry":{"properties":{"type":{"type":"string","description":"Telemetry integration for the cluster. Supported values (`ENABLED, DISABLED, SYSTEM_ONLY`);\n`SYSTEM_ONLY` (Only system components are monitored and logged) is only available in GKE versions 1.15 and later.\n"}},"type":"object","required":["type"]},"gcp:container/ClusterConfidentialNodes:ClusterConfidentialNodes":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used\nby the confidential node.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Enable Confidential GKE Nodes for this cluster, to\nenforce encryption of data in-use.\n","willReplaceOnChanges":true}},"type":"object","required":["enabled"]},"gcp:container/ClusterControlPlaneEndpointsConfig:ClusterControlPlaneEndpointsConfig":{"properties":{"dnsEndpointConfig":{"$ref":"#/types/gcp:container/ClusterControlPlaneEndpointsConfigDnsEndpointConfig:ClusterControlPlaneEndpointsConfigDnsEndpointConfig","description":"DNS endpoint configuration.\n"},"ipEndpointsConfig":{"$ref":"#/types/gcp:container/ClusterControlPlaneEndpointsConfigIpEndpointsConfig:ClusterControlPlaneEndpointsConfigIpEndpointsConfig","description":"IP endpoint configuration.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dnsEndpointConfig","ipEndpointsConfig"]}}},"gcp:container/ClusterControlPlaneEndpointsConfigDnsEndpointConfig:ClusterControlPlaneEndpointsConfigDnsEndpointConfig":{"properties":{"allowExternalTraffic":{"type":"boolean","description":"Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false.\n"},"enableK8sCertsViaDns":{"type":"boolean","description":"Controls whether the k8s certs auth is allowed via Dns.\n"},"enableK8sTokensViaDns":{"type":"boolean","description":"Controls whether the k8s token auth is allowed via Dns.\n"},"endpoint":{"type":"string","description":"The cluster's DNS endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpoint"]}}},"gcp:container/ClusterControlPlaneEndpointsConfigIpEndpointsConfig:ClusterControlPlaneEndpointsConfigIpEndpointsConfig":{"properties":{"enabled":{"type":"boolean","description":"Controls whether to allow direct IP access. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object"},"gcp:container/ClusterCostManagementConfig:ClusterCostManagementConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the [cost allocation](https://cloud.google.com/kubernetes-engine/docs/how-to/cost-allocations) feature.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterDatabaseEncryption:ClusterDatabaseEncryption":{"properties":{"keyName":{"type":"string","description":"the key to use to encrypt/decrypt secrets.  See the [DatabaseEncryption definition](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#Cluster.DatabaseEncryption) for more information.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedEnableK8sBetaApis\"\" pulumi-lang-dotnet=\"\"NestedEnableK8sBetaApis\"\" pulumi-lang-go=\"\"nestedEnableK8sBetaApis\"\" pulumi-lang-python=\"\"nested_enable_k8s_beta_apis\"\" pulumi-lang-yaml=\"\"nestedEnableK8sBetaApis\"\" pulumi-lang-java=\"\"nestedEnableK8sBetaApis\"\"\u003e\"nested_enable_k8s_beta_apis\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`enableK8sBetaApis`\" pulumi-lang-dotnet=\"`EnableK8sBetaApis`\" pulumi-lang-go=\"`enableK8sBetaApis`\" pulumi-lang-python=\"`enable_k8s_beta_apis`\" pulumi-lang-yaml=\"`enableK8sBetaApis`\" pulumi-lang-java=\"`enableK8sBetaApis`\"\u003e`enable_k8s_beta_apis`\u003c/span\u003e block supports:\n"},"state":{"type":"string","description":"`ENCRYPTED` or `DECRYPTED`\n"}},"type":"object","required":["state"]},"gcp:container/ClusterDefaultSnatStatus:ClusterDefaultSnatStatus":{"properties":{"disabled":{"type":"boolean","description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedClusterTelemetry\"\" pulumi-lang-dotnet=\"\"NestedClusterTelemetry\"\" pulumi-lang-go=\"\"nestedClusterTelemetry\"\" pulumi-lang-python=\"\"nested_cluster_telemetry\"\" pulumi-lang-yaml=\"\"nestedClusterTelemetry\"\" pulumi-lang-java=\"\"nestedClusterTelemetry\"\"\u003e\"nested_cluster_telemetry\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`clusterTelemetry`\" pulumi-lang-dotnet=\"`ClusterTelemetry`\" pulumi-lang-go=\"`clusterTelemetry`\" pulumi-lang-python=\"`cluster_telemetry`\" pulumi-lang-yaml=\"`clusterTelemetry`\" pulumi-lang-java=\"`clusterTelemetry`\"\u003e`cluster_telemetry`\u003c/span\u003e block supports\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterDnsConfig:ClusterDnsConfig":{"properties":{"additiveVpcScopeDnsDomain":{"type":"string","description":"This will enable Cloud DNS additive VPC scope. Must provide a domain name that is unique within the VPC. For this to work \u003cspan pulumi-lang-nodejs=\"`clusterDns \" pulumi-lang-dotnet=\"`ClusterDns \" pulumi-lang-go=\"`clusterDns \" pulumi-lang-python=\"`cluster_dns \" pulumi-lang-yaml=\"`clusterDns \" pulumi-lang-java=\"`clusterDns \"\u003e`cluster_dns \u003c/span\u003e= \"CLOUD_DNS\"` and \u003cspan pulumi-lang-nodejs=\"`clusterDnsScope \" pulumi-lang-dotnet=\"`ClusterDnsScope \" pulumi-lang-go=\"`clusterDnsScope \" pulumi-lang-python=\"`cluster_dns_scope \" pulumi-lang-yaml=\"`clusterDnsScope \" pulumi-lang-java=\"`clusterDnsScope \"\u003e`cluster_dns_scope \u003c/span\u003e= \"CLUSTER_SCOPE\"` must both be set as well.\n"},"clusterDns":{"type":"string","description":"Which in-cluster DNS provider should be used. `PROVIDER_UNSPECIFIED` (default) or `PLATFORM_DEFAULT` or `CLOUD_DNS` or `KUBE_DNS`.\n"},"clusterDnsDomain":{"type":"string","description":"The suffix used for all cluster service records.\n"},"clusterDnsScope":{"type":"string","description":"The scope of access to cluster DNS records. `DNS_SCOPE_UNSPECIFIED` or `CLUSTER_SCOPE` or `VPC_SCOPE`. If the \u003cspan pulumi-lang-nodejs=\"`clusterDns`\" pulumi-lang-dotnet=\"`ClusterDns`\" pulumi-lang-go=\"`clusterDns`\" pulumi-lang-python=\"`cluster_dns`\" pulumi-lang-yaml=\"`clusterDns`\" pulumi-lang-java=\"`clusterDns`\"\u003e`cluster_dns`\u003c/span\u003e field is set to `CLOUD_DNS`, `DNS_SCOPE_UNSPECIFIED` and empty/null behave like `CLUSTER_SCOPE`.\n"}},"type":"object"},"gcp:container/ClusterEnableK8sBetaApis:ClusterEnableK8sBetaApis":{"properties":{"enabledApis":{"type":"array","items":{"type":"string"},"description":"Enabled Kubernetes Beta APIs.\n"}},"type":"object","required":["enabledApis"]},"gcp:container/ClusterEnterpriseConfig:ClusterEnterpriseConfig":{"properties":{"clusterTier":{"type":"string","description":"Indicates the effective cluster tier. Available options include STANDARD and ENTERPRISE.\n","deprecationMessage":"GKE Enterprise features are now available without an Enterprise tier. This field is deprecated and will be removed in a future major release"},"desiredTier":{"type":"string","description":"(DEPRECATED) Sets the tier of the cluster. Available options include `STANDARD` and `ENTERPRISE`. Deprecated as GKE Enterprise features are now available without an Enterprise tier. See https://cloud.google.com/blog/products/containers-kubernetes/gke-gets-new-pricing-and-capabilities-on-10th-birthday for the announcement of this change.\n","deprecationMessage":"GKE Enterprise features are now available without an Enterprise tier. This field is deprecated and will be removed in a future major release"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusterTier","desiredTier"]}}},"gcp:container/ClusterFleet:ClusterFleet":{"properties":{"membership":{"type":"string","description":"Full resource name of the registered fleet membership of the cluster.\n"},"membershipId":{"type":"string","description":"Short name of the fleet membership, for example \"member-1\".\n"},"membershipLocation":{"type":"string","description":"Location of the fleet membership, for example \"us-central1\".\n"},"membershipType":{"type":"string","description":"Sets the membership type of the cluster.  Available option is `LIGHTWEIGHT` to support only lightweight compatible features.  If unspecified, the\u003cspan pulumi-lang-nodejs=\" membershipType \" pulumi-lang-dotnet=\" MembershipType \" pulumi-lang-go=\" membershipType \" pulumi-lang-python=\" membership_type \" pulumi-lang-yaml=\" membershipType \" pulumi-lang-java=\" membershipType \"\u003e membership_type \u003c/span\u003ewill be a regular membership that supports all features.\n"},"preRegistered":{"type":"boolean","description":"Whether the cluster has been registered via the fleet API.\n"},"project":{"type":"string","description":"The name of the Fleet host project where this cluster will be registered.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["membership","membershipId","membershipLocation","preRegistered"]}}},"gcp:container/ClusterGatewayApiConfig:ClusterGatewayApiConfig":{"properties":{"channel":{"type":"string","description":"Which Gateway Api channel should be used. `CHANNEL_DISABLED`, `CHANNEL_EXPERIMENTAL` or `CHANNEL_STANDARD`.\n"}},"type":"object","required":["channel"]},"gcp:container/ClusterGkeAutoUpgradeConfig:ClusterGkeAutoUpgradeConfig":{"properties":{"patchMode":{"type":"string","description":"The selected patch mode.\nAccepted values are:\n* ACCELERATED: Upgrades to the latest available patch version in a given minor and release channel.\n"}},"type":"object","required":["patchMode"]},"gcp:container/ClusterIdentityServiceConfig:ClusterIdentityServiceConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the Identity Service component. It is disabled by default. Set `enabled=true` to enable.\n"}},"type":"object"},"gcp:container/ClusterIpAllocationPolicy:ClusterIpAllocationPolicy":{"properties":{"additionalIpRangesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterIpAllocationPolicyAdditionalIpRangesConfig:ClusterIpAllocationPolicyAdditionalIpRangesConfig"},"description":"The configuration for individual additional subnetworks attached to the cluster.\nStructure is documented below.\n"},"additionalPodRangesConfig":{"$ref":"#/types/gcp:container/ClusterIpAllocationPolicyAdditionalPodRangesConfig:ClusterIpAllocationPolicyAdditionalPodRangesConfig","description":"The configuration for additional pod secondary ranges at\nthe cluster level. Used for Autopilot clusters and Standard clusters with which control of the\nsecondary Pod IP address assignment to node pools isn't needed. Structure is documented below.\n"},"autoIpamConfig":{"$ref":"#/types/gcp:container/ClusterIpAllocationPolicyAutoIpamConfig:ClusterIpAllocationPolicyAutoIpamConfig","description":"All the information related to Auto IPAM. Structure is documented below\n"},"clusterIpv4CidrBlock":{"type":"string","description":"The IP address range for the cluster pod IPs.\nSet to blank to have a range chosen with the default size. Set to /netmask (e.g. /14)\nto have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14)\nfrom the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to\npick a specific range to use.\n","willReplaceOnChanges":true},"clusterSecondaryRangeName":{"type":"string","description":"The name of the existing secondary\nrange in the cluster's subnetwork to use for pod IP addresses. Alternatively,\n\u003cspan pulumi-lang-nodejs=\"`clusterIpv4CidrBlock`\" pulumi-lang-dotnet=\"`ClusterIpv4CidrBlock`\" pulumi-lang-go=\"`clusterIpv4CidrBlock`\" pulumi-lang-python=\"`cluster_ipv4_cidr_block`\" pulumi-lang-yaml=\"`clusterIpv4CidrBlock`\" pulumi-lang-java=\"`clusterIpv4CidrBlock`\"\u003e`cluster_ipv4_cidr_block`\u003c/span\u003e can be used to automatically create a GKE-managed one.\n","willReplaceOnChanges":true},"networkTierConfig":{"$ref":"#/types/gcp:container/ClusterIpAllocationPolicyNetworkTierConfig:ClusterIpAllocationPolicyNetworkTierConfig","description":"Contains network tier information. Structure is documented below\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedAutoIpamConfig\"\" pulumi-lang-dotnet=\"\"NestedAutoIpamConfig\"\" pulumi-lang-go=\"\"nestedAutoIpamConfig\"\" pulumi-lang-python=\"\"nested_auto_ipam_config\"\" pulumi-lang-yaml=\"\"nestedAutoIpamConfig\"\" pulumi-lang-java=\"\"nestedAutoIpamConfig\"\"\u003e\"nested_auto_ipam_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe auto ipam config supports:\n"},"podCidrOverprovisionConfig":{"$ref":"#/types/gcp:container/ClusterIpAllocationPolicyPodCidrOverprovisionConfig:ClusterIpAllocationPolicyPodCidrOverprovisionConfig","description":"Configuration for cluster level pod cidr overprovision. Default is disabled=false.\n","willReplaceOnChanges":true},"servicesIpv4CidrBlock":{"type":"string","description":"The IP address range of the services IPs in this cluster.\nSet to blank to have a range chosen with the default size. Set to /netmask (e.g. /14)\nto have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14)\nfrom the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to\npick a specific range to use.\n","willReplaceOnChanges":true},"servicesSecondaryRangeName":{"type":"string","description":"The name of the existing\nsecondary range in the cluster's subnetwork to use for service `ClusterIP`s.\nAlternatively, \u003cspan pulumi-lang-nodejs=\"`servicesIpv4CidrBlock`\" pulumi-lang-dotnet=\"`ServicesIpv4CidrBlock`\" pulumi-lang-go=\"`servicesIpv4CidrBlock`\" pulumi-lang-python=\"`services_ipv4_cidr_block`\" pulumi-lang-yaml=\"`servicesIpv4CidrBlock`\" pulumi-lang-java=\"`servicesIpv4CidrBlock`\"\u003e`services_ipv4_cidr_block`\u003c/span\u003e can be used to automatically create a\nGKE-managed one.\n","willReplaceOnChanges":true},"stackType":{"type":"string","description":"The IP Stack Type of the cluster.\nDefault value is `IPV4`.\nPossible values are `IPV4` and `IPV4_IPV6`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoIpamConfig","clusterIpv4CidrBlock","clusterSecondaryRangeName","networkTierConfig","podCidrOverprovisionConfig","servicesIpv4CidrBlock","servicesSecondaryRangeName"]}}},"gcp:container/ClusterIpAllocationPolicyAdditionalIpRangesConfig:ClusterIpAllocationPolicyAdditionalIpRangesConfig":{"properties":{"podIpv4RangeNames":{"type":"array","items":{"type":"string"},"description":"List of secondary ranges names within this subnetwork that can be used for pod IPs.\n"},"status":{"type":"string","description":"Status of the subnetwork. Additional subnet with DRAINING status will not be selected during new node pool creation\nAccepted values are:\n* `ACTIVE`: ACTIVE status indicates that the subnet is available for new node pool creation.\n* `DRAINING`: DRAINING status indicates that the subnet is not used for new node pool creation.\n"},"subnetwork":{"type":"string","description":"Name of the subnetwork. This can be the full path of the subnetwork or just the name.\n"}},"type":"object","required":["subnetwork"]},"gcp:container/ClusterIpAllocationPolicyAdditionalPodRangesConfig:ClusterIpAllocationPolicyAdditionalPodRangesConfig":{"properties":{"podRangeNames":{"type":"array","items":{"type":"string"},"description":"The names of the Pod ranges to add to the cluster.\n"}},"type":"object","required":["podRangeNames"]},"gcp:container/ClusterIpAllocationPolicyAutoIpamConfig:ClusterIpAllocationPolicyAutoIpamConfig":{"properties":{"enabled":{"type":"boolean","description":"The flag that enables Auto IPAM on this cluster.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterIpAllocationPolicyNetworkTierConfig:ClusterIpAllocationPolicyNetworkTierConfig":{"properties":{"networkTier":{"type":"string","description":"Network tier configuration.\nAccepted values are:\n* `NETWORK_TIER_DEFAULT`: (Default) Use project-level configuration.\n* `NETWORK_TIER_PREMIUM`: Premium network tier.\n* `NETWORK_TIER_STANDARD`: Standard network tier.\n"}},"type":"object","required":["networkTier"]},"gcp:container/ClusterIpAllocationPolicyPodCidrOverprovisionConfig:ClusterIpAllocationPolicyPodCidrOverprovisionConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedClusterTelemetry\"\" pulumi-lang-dotnet=\"\"NestedClusterTelemetry\"\" pulumi-lang-go=\"\"nestedClusterTelemetry\"\" pulumi-lang-python=\"\"nested_cluster_telemetry\"\" pulumi-lang-yaml=\"\"nestedClusterTelemetry\"\" pulumi-lang-java=\"\"nestedClusterTelemetry\"\"\u003e\"nested_cluster_telemetry\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`clusterTelemetry`\" pulumi-lang-dotnet=\"`ClusterTelemetry`\" pulumi-lang-go=\"`clusterTelemetry`\" pulumi-lang-python=\"`cluster_telemetry`\" pulumi-lang-yaml=\"`clusterTelemetry`\" pulumi-lang-java=\"`clusterTelemetry`\"\u003e`cluster_telemetry`\u003c/span\u003e block supports\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterLoggingConfig:ClusterLoggingConfig":{"properties":{"enableComponents":{"type":"array","items":{"type":"string"},"description":"The GKE components exposing logs. Supported values include:\n`SYSTEM_COMPONENTS`, `APISERVER`, `CONTROLLER_MANAGER`, `SCHEDULER`, and `WORKLOADS`.\n"}},"type":"object","required":["enableComponents"]},"gcp:container/ClusterMaintenancePolicy:ClusterMaintenancePolicy":{"properties":{"dailyMaintenanceWindow":{"$ref":"#/types/gcp:container/ClusterMaintenancePolicyDailyMaintenanceWindow:ClusterMaintenancePolicyDailyMaintenanceWindow","description":"Time window specified for daily maintenance operations.\nSpecify \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format \"HH:MM”,\nwhere HH : \\[00-23\\] and MM : \\[00-59\\] GMT. For example:\n\nExamples:\n"},"maintenanceExclusions":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterMaintenancePolicyMaintenanceExclusion:ClusterMaintenancePolicyMaintenanceExclusion"},"description":"Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows. A cluster can have up to 20 maintenance exclusions at a time [Maintenance Window and Exclusions](https://cloud.google.com/kubernetes-engine/docs/concepts/maintenance-windows-and-exclusions)\n"},"recurringWindow":{"$ref":"#/types/gcp:container/ClusterMaintenancePolicyRecurringWindow:ClusterMaintenancePolicyRecurringWindow","description":"Time window for recurring maintenance operations.\n\nSpecify \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) \"Zulu\" date format.  The start time's date is\nthe initial date that the window starts, and the end time is used for calculating duration.  Specify \u003cspan pulumi-lang-nodejs=\"`recurrence`\" pulumi-lang-dotnet=\"`Recurrence`\" pulumi-lang-go=\"`recurrence`\" pulumi-lang-python=\"`recurrence`\" pulumi-lang-yaml=\"`recurrence`\" pulumi-lang-java=\"`recurrence`\"\u003e`recurrence`\u003c/span\u003e in\n[RFC5545](https://tools.ietf.org/html/rfc5545#section-3.8.5.3) RRULE format, to specify when this recurs.\nNote that GKE may accept other formats, but will return values in UTC, causing a permanent diff.\n\nExamples:\n```\nmaintenance_policy {\nrecurring_window {\nstart_time = \"2019-08-01T02:00:00Z\"\nend_time = \"2019-08-01T06:00:00Z\"\nrecurrence = \"FREQ=DAILY\"\n}\n}\n```\n\n```\nmaintenance_policy {\nrecurring_window {\nstart_time = \"2019-01-01T09:00:00Z\"\nend_time = \"2019-01-01T17:00:00Z\"\nrecurrence = \"FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR\"\n}\n}\n```\n"}},"type":"object"},"gcp:container/ClusterMaintenancePolicyDailyMaintenanceWindow:ClusterMaintenancePolicyDailyMaintenanceWindow":{"properties":{"duration":{"type":"string"},"startTime":{"type":"string"}},"type":"object","required":["startTime"],"language":{"nodejs":{"requiredOutputs":["duration","startTime"]}}},"gcp:container/ClusterMaintenancePolicyMaintenanceExclusion:ClusterMaintenancePolicyMaintenanceExclusion":{"properties":{"endTime":{"type":"string"},"exclusionName":{"type":"string"},"exclusionOptions":{"$ref":"#/types/gcp:container/ClusterMaintenancePolicyMaintenanceExclusionExclusionOptions:ClusterMaintenancePolicyMaintenanceExclusionExclusionOptions","description":"MaintenanceExclusionOptions provides maintenance exclusion related options.\n"},"startTime":{"type":"string"}},"type":"object","required":["exclusionName","startTime"]},"gcp:container/ClusterMaintenancePolicyMaintenanceExclusionExclusionOptions:ClusterMaintenancePolicyMaintenanceExclusionExclusionOptions":{"properties":{"endTimeBehavior":{"type":"string","description":"The exclusion window end time behavior. One of: **UNTIL_END_OF_SUPPORT**. One and and one of \u003cspan pulumi-lang-nodejs=\"`endTimeBehavior`\" pulumi-lang-dotnet=\"`EndTimeBehavior`\" pulumi-lang-go=\"`endTimeBehavior`\" pulumi-lang-python=\"`end_time_behavior`\" pulumi-lang-yaml=\"`endTimeBehavior`\" pulumi-lang-java=\"`endTimeBehavior`\"\u003e`end_time_behavior`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e should be specified.\n\nSpecify \u003cspan pulumi-lang-nodejs=\"`startTime`\" pulumi-lang-dotnet=\"`StartTime`\" pulumi-lang-go=\"`startTime`\" pulumi-lang-python=\"`start_time`\" pulumi-lang-yaml=\"`startTime`\" pulumi-lang-java=\"`startTime`\"\u003e`start_time`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`endTime`\" pulumi-lang-dotnet=\"`EndTime`\" pulumi-lang-go=\"`endTime`\" pulumi-lang-python=\"`end_time`\" pulumi-lang-yaml=\"`endTime`\" pulumi-lang-java=\"`endTime`\"\u003e`end_time`\u003c/span\u003e in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) \"Zulu\" date format.  The start time's date is\nthe initial date that the window starts, and the end time is used for calculating duration.Specify \u003cspan pulumi-lang-nodejs=\"`recurrence`\" pulumi-lang-dotnet=\"`Recurrence`\" pulumi-lang-go=\"`recurrence`\" pulumi-lang-python=\"`recurrence`\" pulumi-lang-yaml=\"`recurrence`\" pulumi-lang-java=\"`recurrence`\"\u003e`recurrence`\u003c/span\u003e in\n[RFC5545](https://tools.ietf.org/html/rfc5545#section-3.8.5.3) RRULE format, to specify when this recurs.\nNote that GKE may accept other formats, but will return values in UTC, causing a permanent diff.\n\nExamples:\n\n```\nmaintenance_policy {\nrecurring_window {\nstart_time = \"2019-01-01T00:00:00Z\"\nend_time = \"2019-01-02T00:00:00Z\"\nrecurrence = \"FREQ=DAILY\"\n}\nmaintenance_exclusion{\nexclusion_name = \"batch job\"\nstart_time = \"2019-01-01T00:00:00Z\"\nend_time = \"2019-01-02T00:00:00Z\"\nexclusion_options {\nscope = \"NO_UPGRADES\"\n}\n}\nmaintenance_exclusion{\nexclusion_name = \"holiday data load\"\nstart_time = \"2019-05-01T00:00:00Z\"\nexclusion_options {\nscope = \"NO_MINOR_UPGRADES\"\nend_time_behavior = \"UNTIL_END_OF_SUPPORT\"\n}\n}\n}\n```\n"},"scope":{"type":"string","description":"The scope of automatic upgrades to restrict in the exclusion window. One of: **NO_UPGRADES | NO_MINOR_UPGRADES | NO_MINOR_OR_NODE_UPGRADES**\n"}},"type":"object","required":["scope"]},"gcp:container/ClusterMaintenancePolicyRecurringWindow:ClusterMaintenancePolicyRecurringWindow":{"properties":{"endTime":{"type":"string"},"recurrence":{"type":"string"},"startTime":{"type":"string"}},"type":"object","required":["endTime","recurrence","startTime"]},"gcp:container/ClusterManagedOpentelemetryConfig:ClusterManagedOpentelemetryConfig":{"properties":{"scope":{"type":"string","description":"The scope of the Managed OpenTelemetry pipeline. Supported values include: `SCOPE_UNSPECIFIED`, `NONE`, `COLLECTION_AND_INSTRUMENTATION_COMPONENTS`.\n"}},"type":"object"},"gcp:container/ClusterMasterAuth:ClusterMasterAuth":{"properties":{"clientCertificate":{"type":"string","description":"Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.\n"},"clientCertificateConfig":{"$ref":"#/types/gcp:container/ClusterMasterAuthClientCertificateConfig:ClusterMasterAuthClientCertificateConfig","description":"Whether client certificate authorization is enabled for this cluster.  For example:\n\n","willReplaceOnChanges":true},"clientKey":{"type":"string","description":"Base64 encoded private key used by clients to authenticate to the cluster endpoint.\n","secret":true},"clusterCaCertificate":{"type":"string","description":"Base64 encoded public certificate that is the root of trust for the cluster.\n"}},"type":"object","required":["clientCertificateConfig"],"language":{"nodejs":{"requiredOutputs":["clientCertificate","clientCertificateConfig","clientKey","clusterCaCertificate"]}}},"gcp:container/ClusterMasterAuthClientCertificateConfig:ClusterMasterAuthClientCertificateConfig":{"properties":{"issueClientCertificate":{"type":"boolean","description":"Whether client certificate authorization is enabled for this cluster.\n","willReplaceOnChanges":true}},"type":"object","required":["issueClientCertificate"]},"gcp:container/ClusterMasterAuthorizedNetworksConfig:ClusterMasterAuthorizedNetworksConfig":{"properties":{"cidrBlocks":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterMasterAuthorizedNetworksConfigCidrBlock:ClusterMasterAuthorizedNetworksConfigCidrBlock"},"description":"External networks that can access the\nKubernetes cluster master through HTTPS.\n"},"gcpPublicCidrsAccessEnabled":{"type":"boolean","description":"Whether Kubernetes master is\naccessible via Google Compute Engine Public IPs.\n"},"privateEndpointEnforcementEnabled":{"type":"boolean","description":"Whether authorized networks is enforced on the private endpoint or not.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["gcpPublicCidrsAccessEnabled","privateEndpointEnforcementEnabled"]}}},"gcp:container/ClusterMasterAuthorizedNetworksConfigCidrBlock:ClusterMasterAuthorizedNetworksConfigCidrBlock":{"properties":{"cidrBlock":{"type":"string","description":"External network that can access Kubernetes master through HTTPS.\nMust be specified in CIDR notation.\n"},"displayName":{"type":"string","description":"Field for users to identify CIDR blocks.\n"}},"type":"object","required":["cidrBlock"]},"gcp:container/ClusterMeshCertificates:ClusterMeshCertificates":{"properties":{"enableCertificates":{"type":"boolean","description":"Controls the issuance of workload mTLS certificates. It is enabled by default. Workload Identity is required, see workload_config.\n"}},"type":"object","required":["enableCertificates"]},"gcp:container/ClusterMonitoringConfig:ClusterMonitoringConfig":{"properties":{"advancedDatapathObservabilityConfig":{"$ref":"#/types/gcp:container/ClusterMonitoringConfigAdvancedDatapathObservabilityConfig:ClusterMonitoringConfigAdvancedDatapathObservabilityConfig","description":"Configuration for Advanced Datapath Monitoring. Structure is documented below.\n"},"enableComponents":{"type":"array","items":{"type":"string"},"description":"The GKE components exposing metrics. Supported values include: `SYSTEM_COMPONENTS`, `APISERVER`, `SCHEDULER`, `CONTROLLER_MANAGER`, `STORAGE`, `HPA`, `POD`, `DAEMONSET`, `DEPLOYMENT`, `STATEFULSET`, `KUBELET`, `CADVISOR`, `DCGM` and `JOBSET`. In beta provider, `WORKLOADS` is supported on top of those 12 values. (`WORKLOADS` is deprecated and removed in GKE 1.24.) `KUBELET` and `CADVISOR` are only supported in GKE 1.29.3-gke.1093000 and above. `JOBSET` is only supported in GKE 1.32.1-gke.1357001 and above.\n"},"managedPrometheus":{"$ref":"#/types/gcp:container/ClusterMonitoringConfigManagedPrometheus:ClusterMonitoringConfigManagedPrometheus","description":"Configuration for Managed Service for Prometheus. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["advancedDatapathObservabilityConfig","enableComponents","managedPrometheus"]}}},"gcp:container/ClusterMonitoringConfigAdvancedDatapathObservabilityConfig:ClusterMonitoringConfigAdvancedDatapathObservabilityConfig":{"properties":{"enableMetrics":{"type":"boolean","description":"Whether or not to enable advanced datapath metrics.\n"},"enableRelay":{"type":"boolean","description":"Whether or not Relay is enabled.\n"}},"type":"object","required":["enableMetrics","enableRelay"]},"gcp:container/ClusterMonitoringConfigManagedPrometheus:ClusterMonitoringConfigManagedPrometheus":{"properties":{"autoMonitoringConfig":{"$ref":"#/types/gcp:container/ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig:ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig","description":"Configuration options for GKE Auto-Monitoring.\n"},"enabled":{"type":"boolean","description":"Whether or not the managed collection is enabled.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["autoMonitoringConfig","enabled"]}}},"gcp:container/ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig:ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig":{"properties":{"scope":{"type":"string","description":"Whether or not to enable GKE Auto-Monitoring. Supported values include: `ALL`, `NONE`.\n"}},"type":"object","required":["scope"]},"gcp:container/ClusterNetworkPerformanceConfig:ClusterNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"Specifies the total network bandwidth tier for NodePools in the cluster.\n"}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:container/ClusterNetworkPolicy:ClusterNetworkPolicy":{"properties":{"enabled":{"type":"boolean","description":"Whether network policy is enabled on the cluster.\n"},"provider":{"type":"string","description":"The selected network policy provider. Defaults to PROVIDER_UNSPECIFIED.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfig:ClusterNodeConfig":{"properties":{"advancedMachineFeatures":{"$ref":"#/types/gcp:container/ClusterNodeConfigAdvancedMachineFeatures:ClusterNodeConfigAdvancedMachineFeatures","description":"Specifies options for controlling\nadvanced machine features. Structure is documented below.\n","willReplaceOnChanges":true},"bootDisk":{"$ref":"#/types/gcp:container/ClusterNodeConfigBootDisk:ClusterNodeConfigBootDisk","description":"Configuration of the node pool boot disk. Structure is documented below\n"},"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption\n","willReplaceOnChanges":true},"confidentialNodes":{"$ref":"#/types/gcp:container/ClusterNodeConfigConfidentialNodes:ClusterNodeConfigConfidentialNodes","description":"Configuration for Confidential Nodes feature. Structure is documented below.\n"},"containerdConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfig:ClusterNodeConfigContainerdConfig","description":"Parameters to customize containerd runtime. Structure is documented below.\n"},"diskSizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified\nin GB. The smallest allowed disk size is 10GB. Defaults to 100GB. This is being migrated to `boot_disk.size_gb`, and must match if specified in both places.\nPrefer configuring \u003cspan pulumi-lang-nodejs=\"`bootDisk`\" pulumi-lang-dotnet=\"`BootDisk`\" pulumi-lang-go=\"`bootDisk`\" pulumi-lang-python=\"`boot_disk`\" pulumi-lang-yaml=\"`bootDisk`\" pulumi-lang-java=\"`bootDisk`\"\u003e`boot_disk`\u003c/span\u003e.\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node\n(e.g. 'pd-standard', 'pd-balanced', 'pd-ssd', or 'hyperdisk-balanced'). Defaults to `hyperdisk-balanced` if `hyperdisk-balanced` is supported and `pd-balanced` is not supported for the machine type; otherwise defaults to `pd-balanced`. This is being migrated to `boot_disk.disk_type`, and must match if specified in both places. Prefer configuring \u003cspan pulumi-lang-nodejs=\"`bootDisk`\" pulumi-lang-dotnet=\"`BootDisk`\" pulumi-lang-go=\"`bootDisk`\" pulumi-lang-python=\"`boot_disk`\" pulumi-lang-yaml=\"`bootDisk`\" pulumi-lang-java=\"`bootDisk`\"\u003e`boot_disk`\u003c/span\u003e.\n"},"effectiveTaints":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigEffectiveTaint:ClusterNodeConfigEffectiveTaint"},"description":"List of kubernetes taints applied to each node.\n"},"enableConfidentialStorage":{"type":"boolean","description":"Enabling Confidential Storage will create boot disk with confidential mode. It is disabled by default.\n","willReplaceOnChanges":true},"ephemeralStorageConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigEphemeralStorageConfig:ClusterNodeConfigEphemeralStorageConfig","description":") Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below.\n\n","willReplaceOnChanges":true},"ephemeralStorageLocalSsdConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigEphemeralStorageLocalSsdConfig:ClusterNodeConfigEphemeralStorageLocalSsdConfig","description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below.\n\n","willReplaceOnChanges":true},"fastSocket":{"$ref":"#/types/gcp:container/ClusterNodeConfigFastSocket:ClusterNodeConfigFastSocket","description":"Parameters for the NCCL Fast Socket feature. If unspecified, NCCL Fast Socket will not be enabled on the node pool.\nNode Pool must enable gvnic.\nGKE version 1.25.2-gke.1700 or later.\nStructure is documented below.\n"},"flexStart":{"type":"boolean","description":"Enables Flex Start provisioning model for the node pool.\n","willReplaceOnChanges":true},"gcfsConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigGcfsConfig:ClusterNodeConfigGcfsConfig","description":"Parameters for the Google Container Filesystem (GCFS).\nIf unspecified, GCFS will not be enabled on the node pool. When enabling this feature you must specify \u003cspan pulumi-lang-nodejs=\"`imageType \" pulumi-lang-dotnet=\"`ImageType \" pulumi-lang-go=\"`imageType \" pulumi-lang-python=\"`image_type \" pulumi-lang-yaml=\"`imageType \" pulumi-lang-java=\"`imageType \"\u003e`image_type \u003c/span\u003e= \"COS_CONTAINERD\"` and \u003cspan pulumi-lang-nodejs=\"`nodeVersion`\" pulumi-lang-dotnet=\"`NodeVersion`\" pulumi-lang-go=\"`nodeVersion`\" pulumi-lang-python=\"`node_version`\" pulumi-lang-yaml=\"`nodeVersion`\" pulumi-lang-java=\"`nodeVersion`\"\u003e`node_version`\u003c/span\u003e from GKE versions 1.19 or later to use it.\nFor GKE versions 1.19, 1.20, and 1.21, the recommended minimum \u003cspan pulumi-lang-nodejs=\"`nodeVersion`\" pulumi-lang-dotnet=\"`NodeVersion`\" pulumi-lang-go=\"`nodeVersion`\" pulumi-lang-python=\"`node_version`\" pulumi-lang-yaml=\"`nodeVersion`\" pulumi-lang-java=\"`nodeVersion`\"\u003e`node_version`\u003c/span\u003e would be 1.19.15-gke.1300, 1.20.11-gke.1300, and 1.21.5-gke.1300 respectively.\nA \u003cspan pulumi-lang-nodejs=\"`machineType`\" pulumi-lang-dotnet=\"`MachineType`\" pulumi-lang-go=\"`machineType`\" pulumi-lang-python=\"`machine_type`\" pulumi-lang-yaml=\"`machineType`\" pulumi-lang-java=\"`machineType`\"\u003e`machine_type`\u003c/span\u003e that has more than 16 GiB of memory is also recommended.\nGCFS must be enabled in order to use [image streaming](https://cloud.google.com/kubernetes-engine/docs/how-to/image-streaming).\nStructure is documented below.\n\n"},"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigGuestAccelerator:ClusterNodeConfigGuestAccelerator"},"description":"List of the type and count of accelerator cards attached to the instance.\nStructure documented below.\n","willReplaceOnChanges":true},"gvnic":{"$ref":"#/types/gcp:container/ClusterNodeConfigGvnic:ClusterNodeConfigGvnic","description":"Google Virtual NIC (gVNIC) is a virtual network interface.\nInstalling the gVNIC driver allows for more efficient traffic transmission across the Google network infrastructure.\ngVNIC is an alternative to the virtIO-based ethernet driver. GKE nodes must use a Container-Optimized OS node image.\nGKE node version 1.15.11-gke.15 or later\nStructure is documented below.\n\n\n"},"hostMaintenancePolicy":{"$ref":"#/types/gcp:container/ClusterNodeConfigHostMaintenancePolicy:ClusterNodeConfigHostMaintenancePolicy","description":"The maintenance policy for the hosts on which the GKE VMs run on.\n","willReplaceOnChanges":true},"imageType":{"type":"string","description":"The image type to use for this node. Note that changing the image type\nwill delete and recreate all nodes in the node pool.\n"},"kubeletConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigKubeletConfig:ClusterNodeConfigKubeletConfig","description":"Kubelet configuration, currently supported attributes can be found [here](https://cloud.google.com/sdk/gcloud/reference/beta/container/node-pools/create#--system-config-from-file).\nStructure is documented below.\n\n```\nkubelet_config {\ncpu_manager_policy   = \"static\"\ncpu_cfs_quota        = true\ncpu_cfs_quota_period = \"100us\"\npod_pids_limit       = 1024\n}\n```\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubernetes labels (key/value pairs) to be applied to each node. The kubernetes.io/ and k8s.io/ prefixes are\nreserved by Kubernetes Core components and cannot be specified.\n"},"linuxNodeConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigLinuxNodeConfig:ClusterNodeConfigLinuxNodeConfig","description":"Parameters that can be configured on Linux nodes. Structure is documented below.\n"},"localNvmeSsdBlockConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigLocalNvmeSsdBlockConfig:ClusterNodeConfigLocalNvmeSsdBlockConfig","description":"Parameters for the local NVMe SSDs. Structure is documented below.\n","willReplaceOnChanges":true},"localSsdCount":{"type":"integer","description":"The amount of local SSD disks that will be\nattached to each cluster node. Defaults to 0.\n","willReplaceOnChanges":true},"localSsdEncryptionMode":{"type":"string","description":"Possible Local SSD encryption modes:\nAccepted values are:\n* `STANDARD_ENCRYPTION`: The given node will be encrypted using keys managed by Google infrastructure and the keys wll be deleted when the node is deleted.\n* `EPHEMERAL_KEY_ENCRYPTION`: The given node will opt-in for using ephemeral key for encrypting Local SSDs. The Local SSDs will not be able to recover data in case of node crash.\n","willReplaceOnChanges":true},"loggingVariant":{"type":"string","description":"Parameter for specifying the type of logging agent used in a node pool. This will override any cluster-wide default value. Valid values include DEFAULT and MAX_THROUGHPUT. See [Increasing logging agent throughput](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-logs#throughput) for more information.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type.\nDefaults to `e2-medium`. To create a custom machine type, value should be set as specified\n[here](https://cloud.google.com/compute/docs/reference/latest/instances#machineType).\n"},"maxRunDuration":{"type":"string","description":"The runtime of each node in the node pool in seconds, terminated by 's'. Example: \"3600s\".\n","willReplaceOnChanges":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key/value pairs assigned to instances in\nthe cluster. From GKE `1.12` onwards, `disable-legacy-endpoints` is set to\n\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by the API; if \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e is set but that default value is not\nincluded, the provider will attempt to unset the value. To avoid this, set the\nvalue in your config.\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance.\nThe instance may be scheduled on the specified or newer CPU platform. Applicable\nvalues are the friendly names of CPU platforms, such as `Intel Haswell`. See the\n[official documentation](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)\nfor more information.\n","willReplaceOnChanges":true},"nodeGroup":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).\n","willReplaceOnChanges":true},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available\non all of the node VMs under the \"default\" service account.\nUse the \"https://www.googleapis.com/auth/cloud-platform\" scope to grant access to all APIs. It is recommended that you set \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e to a non-default service account and grant IAM roles to that service account for only the resources that it needs.\n\nSee the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/access-scopes) for information on migrating off of legacy access scopes.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"A boolean that represents whether or not the underlying node VMs\nare preemptible. See the [official documentation](https://cloud.google.com/container-engine/docs/preemptible-vm)\nfor more information. Defaults to false.\n","willReplaceOnChanges":true},"reservationAffinity":{"$ref":"#/types/gcp:container/ClusterNodeConfigReservationAffinity:ClusterNodeConfigReservationAffinity","description":"The configuration of the desired reservation which instances could take capacity from. Structure is documented below.\n","willReplaceOnChanges":true},"resourceLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The GCP labels (key/value pairs) to be applied to each node. Refer [here](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-managing-labels)\nfor how these labels are applied to clusters, node pools and nodes.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications found [here](https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications). A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`.\n"},"sandboxConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigSandboxConfig:ClusterNodeConfigSandboxConfig","description":") [GKE Sandbox](https://cloud.google.com/kubernetes-engine/docs/how-to/sandbox-pods) configuration. When enabling this feature you must specify \u003cspan pulumi-lang-nodejs=\"`imageType \" pulumi-lang-dotnet=\"`ImageType \" pulumi-lang-go=\"`imageType \" pulumi-lang-python=\"`image_type \" pulumi-lang-yaml=\"`imageType \" pulumi-lang-java=\"`imageType \"\u003e`image_type \u003c/span\u003e= \"COS_CONTAINERD\"` and \u003cspan pulumi-lang-nodejs=\"`nodeVersion \" pulumi-lang-dotnet=\"`NodeVersion \" pulumi-lang-go=\"`nodeVersion \" pulumi-lang-python=\"`node_version \" pulumi-lang-yaml=\"`nodeVersion \" pulumi-lang-java=\"`nodeVersion \"\u003e`node_version \u003c/span\u003e= \"1.12.7-gke.17\"` or later to use it.\nStructure is documented below.\n","willReplaceOnChanges":true},"secondaryBootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigSecondaryBootDisk:ClusterNodeConfigSecondaryBootDisk"},"description":"Parameters for secondary boot disks to preload container images and data on new nodes. Structure is documented below. \u003cspan pulumi-lang-nodejs=\"`gcfsConfig`\" pulumi-lang-dotnet=\"`GcfsConfig`\" pulumi-lang-go=\"`gcfsConfig`\" pulumi-lang-python=\"`gcfs_config`\" pulumi-lang-yaml=\"`gcfsConfig`\" pulumi-lang-java=\"`gcfsConfig`\"\u003e`gcfs_config`\u003c/span\u003e must be `enabled=true` for this feature to work. \u003cspan pulumi-lang-nodejs=\"`minMasterVersion`\" pulumi-lang-dotnet=\"`MinMasterVersion`\" pulumi-lang-go=\"`minMasterVersion`\" pulumi-lang-python=\"`min_master_version`\" pulumi-lang-yaml=\"`minMasterVersion`\" pulumi-lang-java=\"`minMasterVersion`\"\u003e`min_master_version`\u003c/span\u003e must also be set to use GKE 1.28.3-gke.106700 or later versions.\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"The service account to be used by the Node VMs.\nIf not specified, the \"default\" service account is used.\n","willReplaceOnChanges":true},"shieldedInstanceConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigShieldedInstanceConfig:ClusterNodeConfigShieldedInstanceConfig","description":"Shielded Instance options. Structure is documented below.\n","willReplaceOnChanges":true},"soleTenantConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigSoleTenantConfig:ClusterNodeConfigSoleTenantConfig","description":"Allows specifying multiple [node affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity) useful for running workloads on [sole tenant nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/sole-tenancy). Structure is documented below.\n\n","willReplaceOnChanges":true},"spot":{"type":"boolean","description":"A boolean that represents whether the underlying node VMs are spot.\nSee the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)\nfor more information. Defaults to false.\n","willReplaceOnChanges":true},"storagePools":{"type":"array","items":{"type":"string"},"description":"The list of Storage Pools where boot disks are provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all nodes. Tags are used to identify\nvalid sources or targets for network firewalls.\n"},"taints":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigTaint:ClusterNodeConfigTaint"},"description":"A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)\nto apply to nodes. GKE's API can only set this field on cluster creation.\nHowever, GKE will add taints to your nodes if you enable certain features such\nas GPUs. If this field is set, any diffs on this field will cause the provider to\nrecreate the underlying resource. Taint values can be updated safely in\nKubernetes (eg. through \u003cspan pulumi-lang-nodejs=\"`kubectl`\" pulumi-lang-dotnet=\"`Kubectl`\" pulumi-lang-go=\"`kubectl`\" pulumi-lang-python=\"`kubectl`\" pulumi-lang-yaml=\"`kubectl`\" pulumi-lang-java=\"`kubectl`\"\u003e`kubectl`\u003c/span\u003e), and it's recommended that you do not use\nthis field to manage taints. If you do, `lifecycle.ignore_changes` is\nrecommended. Structure is documented below.\n"},"windowsNodeConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigWindowsNodeConfig:ClusterNodeConfigWindowsNodeConfig","description":"Windows node configuration, currently supporting OSVersion [attribute](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/NodeConfig#osversion). The value must be one of [OS_VERSION_UNSPECIFIED, OS_VERSION_LTSC2019, OS_VERSION_LTSC2022]. For example:\n\n"},"workloadMetadataConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigWorkloadMetadataConfig:ClusterNodeConfigWorkloadMetadataConfig","description":"Metadata configuration to expose to workloads on the node pool.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDisk","confidentialNodes","containerdConfig","diskSizeGb","diskType","effectiveTaints","gcfsConfig","guestAccelerators","imageType","kubeletConfig","labels","linuxNodeConfig","localSsdCount","loggingVariant","machineType","metadata","minCpuPlatform","oauthScopes","serviceAccount","shieldedInstanceConfig","windowsNodeConfig","workloadMetadataConfig"]}}},"gcp:container/ClusterNodeConfigAdvancedMachineFeatures:ClusterNodeConfigAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Defines whether the instance should have nested virtualization enabled. Defaults to false.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"Defines the performance monitoring unit [PMU](https://cloud.google.com/compute/docs/pmu-overview) level. Valid values are `ARCHITECTURAL`, `STANDARD`, or `ENHANCED`. Defaults to off.\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n","willReplaceOnChanges":true}},"type":"object","required":["threadsPerCore"]},"gcp:container/ClusterNodeConfigBootDisk:ClusterNodeConfigBootDisk":{"properties":{"diskType":{"type":"string","description":"Type of the disk attached to each node\n(e.g. 'pd-standard', 'pd-balanced', 'pd-ssd', or 'hyperdisk-balanced'). Defaults to `hyperdisk-balanced` if `hyperdisk-balanced` is supported and `pd-balanced` is not supported for the machine type; otherwise defaults to `pd-balanced`. This is being migrated from `node_config.disk_type`, and must match if specified in both places. Prefer using this field.\n"},"provisionedIops":{"type":"integer","description":"Configure disk IOPs. This is only valid if the \u003cspan pulumi-lang-nodejs=\"`diskType`\" pulumi-lang-dotnet=\"`DiskType`\" pulumi-lang-go=\"`diskType`\" pulumi-lang-python=\"`disk_type`\" pulumi-lang-yaml=\"`diskType`\" pulumi-lang-java=\"`diskType`\"\u003e`disk_type`\u003c/span\u003e is 'hyperdisk-balanced'. See [performance limit documention](https://cloud.google.com/compute/docs/disks/hyperdisk-perf-limits) for more information about valid values.\n"},"provisionedThroughput":{"type":"integer","description":"Configure disk throughput. This is only valid if the \u003cspan pulumi-lang-nodejs=\"`diskType`\" pulumi-lang-dotnet=\"`DiskType`\" pulumi-lang-go=\"`diskType`\" pulumi-lang-python=\"`disk_type`\" pulumi-lang-yaml=\"`diskType`\" pulumi-lang-java=\"`diskType`\"\u003e`disk_type`\u003c/span\u003e is 'hyperdisk-balanced'. See [performance limit documention](https://cloud.google.com/compute/docs/disks/hyperdisk-perf-limits) for more information about valid values.\n"},"sizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified\nin GB. The smallest allowed disk size is 10GB. Defaults to 100GB. This is being migrated from `node_config.disk_size_gb`, and must match if specified in both places. Prefer using this field.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskType","provisionedIops","provisionedThroughput","sizeGb"]}}},"gcp:container/ClusterNodeConfigConfidentialNodes:ClusterNodeConfigConfidentialNodes":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used\nby the confidential node.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Enable Confidential GKE Nodes for this cluster, to\nenforce encryption of data in-use.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfigContainerdConfig:ClusterNodeConfigContainerdConfig":{"properties":{"privateRegistryAccessConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig:ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig","description":"Configuration for private container registries. There are two fields in this config:\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHost:ClusterNodeConfigContainerdConfigRegistryHost"},"description":"Defines containerd registry host configuration. Each \u003cspan pulumi-lang-nodejs=\"`registryHosts`\" pulumi-lang-dotnet=\"`RegistryHosts`\" pulumi-lang-go=\"`registryHosts`\" pulumi-lang-python=\"`registry_hosts`\" pulumi-lang-yaml=\"`registryHosts`\" pulumi-lang-java=\"`registryHosts`\"\u003e`registry_hosts`\u003c/span\u003e entry represents a `hosts.toml` file. See [customize containerd configuration in GKE nodes](https://docs.cloud.google.com/kubernetes-engine/docs/how-to/customize-containerd-configuration#registryHosts) for more detail. Example:\n"},"writableCgroups":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigWritableCgroups:ClusterNodeConfigContainerdConfigWritableCgroups","description":"Configuration for writable cgroups. This allows containers to have a writable `/sys/fs/cgroup` directory, which is required for some workloads to create their own sub-cgroups. The \u003cspan pulumi-lang-nodejs=\"`writableCgroups`\" pulumi-lang-dotnet=\"`WritableCgroups`\" pulumi-lang-go=\"`writableCgroups`\" pulumi-lang-python=\"`writable_cgroups`\" pulumi-lang-yaml=\"`writableCgroups`\" pulumi-lang-java=\"`writableCgroups`\"\u003e`writable_cgroups`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:container/ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig:ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"List of configuration objects for CA and domains. Each object identifies a certificate and its assigned domains. See [how to configure for private container registries](https://cloud.google.com/kubernetes-engine/docs/how-to/access-private-registries-private-certificates) for more detail. Example:\n"},"enabled":{"type":"boolean","description":"Enables private registry config. If set to false, all other fields in this object must not be set.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig","description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfig"]},"gcp:container/ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:ClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"]},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHost:ClusterNodeConfigContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHost:ClusterNodeConfigContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["server"]},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHost:ClusterNodeConfigContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostCa:ClusterNodeConfigContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostClient:ClusterNodeConfigContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostHeader:ClusterNodeConfigContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["host"]},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostCa:ClusterNodeConfigContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostClient:ClusterNodeConfigContainerdConfigRegistryHostHostClient":{"properties":{"cert":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostClientCert:ClusterNodeConfigContainerdConfigRegistryHostHostClientCert","description":"Configures the client certificate.\n"},"key":{"$ref":"#/types/gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostClientKey:ClusterNodeConfigContainerdConfigRegistryHostHostClientKey","description":"Configures the client private key.\n"}},"type":"object","required":["cert"]},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostClientCert:ClusterNodeConfigContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostClientKey:ClusterNodeConfigContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigContainerdConfigRegistryHostHostHeader:ClusterNodeConfigContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"]},"gcp:container/ClusterNodeConfigContainerdConfigWritableCgroups:ClusterNodeConfigContainerdConfigWritableCgroups":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfigEffectiveTaint:ClusterNodeConfigEffectiveTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["effect","key","value"]}}},"gcp:container/ClusterNodeConfigEphemeralStorageConfig:ClusterNodeConfigEphemeralStorageConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/ClusterNodeConfigEphemeralStorageLocalSsdConfig:ClusterNodeConfigEphemeralStorageLocalSsdConfig":{"properties":{"dataCacheCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node utilized for GKE Data Cache. If zero, then GKE Data Cache will not be enabled in the nodes.\n","willReplaceOnChanges":true},"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/ClusterNodeConfigFastSocket:ClusterNodeConfigFastSocket":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the NCCL Fast Socket is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfigGcfsConfig:ClusterNodeConfigGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the Google Container Filesystem (GCFS) is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfigGuestAccelerator:ClusterNodeConfigGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"gpuDriverInstallationConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig:ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig","description":"Configuration for auto installation of GPU driver. Structure is documented below.\n","willReplaceOnChanges":true},"gpuPartitionSize":{"type":"string","description":"Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig [user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).\n","willReplaceOnChanges":true},"gpuSharingConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigGuestAcceleratorGpuSharingConfig:ClusterNodeConfigGuestAcceleratorGpuSharingConfig","description":"Configuration for GPU sharing. Structure is documented below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"],"language":{"nodejs":{"requiredOutputs":["count","gpuDriverInstallationConfig","type"]}}},"gcp:container/ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig:ClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig":{"properties":{"gpuDriverVersion":{"type":"string","description":"Mode for how the GPU driver is installed.\nAccepted values are:\n* `\"GPU_DRIVER_VERSION_UNSPECIFIED\"`: Default value is to install the \"Default\" GPU driver. Before GKE `1.30.1-gke.1156000`, the default value is to not install any GPU driver.\n* `\"INSTALLATION_DISABLED\"`: Disable GPU driver auto installation and needs manual installation.\n* `\"DEFAULT\"`: \"Default\" GPU driver in COS and Ubuntu.\n* `\"LATEST\"`: \"Latest\" GPU driver in COS.\n","willReplaceOnChanges":true}},"type":"object","required":["gpuDriverVersion"]},"gcp:container/ClusterNodeConfigGuestAcceleratorGpuSharingConfig:ClusterNodeConfigGuestAcceleratorGpuSharingConfig":{"properties":{"gpuSharingStrategy":{"type":"string","description":"The type of GPU sharing strategy to enable on the GPU node.\nAccepted values are:\n* `\"TIME_SHARING\"`: Allow multiple containers to have [time-shared](https://cloud.google.com/kubernetes-engine/docs/concepts/timesharing-gpus) access to a single GPU device.\n* `\"MPS\"`: Enable co-operative multi-process CUDA workloads to run concurrently on a single GPU device with [MPS](https://cloud.google.com/kubernetes-engine/docs/how-to/nvidia-mps-gpus)\n","willReplaceOnChanges":true},"maxSharedClientsPerGpu":{"type":"integer","description":"The maximum number of containers that can share a GPU.\n","willReplaceOnChanges":true}},"type":"object","required":["gpuSharingStrategy","maxSharedClientsPerGpu"]},"gcp:container/ClusterNodeConfigGvnic:ClusterNodeConfigGvnic":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the Google Virtual NIC (gVNIC) is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodeConfigHostMaintenancePolicy:ClusterNodeConfigHostMaintenancePolicy":{"properties":{"maintenanceInterval":{"type":"string","description":".\n","willReplaceOnChanges":true}},"type":"object","required":["maintenanceInterval"]},"gcp:container/ClusterNodeConfigKubeletConfig:ClusterNodeConfigKubeletConfig":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns which can be set on the Pods. The allowed sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`.\n"},"containerLogMaxFiles":{"type":"integer","description":"Defines the maximum number of container log files that can be present for a container. The integer must be between 2 and 10, inclusive.\n"},"containerLogMaxSize":{"type":"string","description":"Defines the maximum size of the\ncontainer log file before it is rotated. Specified as a positive number and a\nunit suffix, such as `\"100Ki\"`, `\"10Mi\"`. Valid units are \"Ki\", \"Mi\", \"Gi\".\nThe value must be between `\"10Mi\"` and `\"500Mi\"`, inclusive. And the total container log size\n(\u003cspan pulumi-lang-nodejs=\"`containerLogMaxSize`\" pulumi-lang-dotnet=\"`ContainerLogMaxSize`\" pulumi-lang-go=\"`containerLogMaxSize`\" pulumi-lang-python=\"`container_log_max_size`\" pulumi-lang-yaml=\"`containerLogMaxSize`\" pulumi-lang-java=\"`containerLogMaxSize`\"\u003e`container_log_max_size`\u003c/span\u003e * \u003cspan pulumi-lang-nodejs=\"`containerLogMaxFiles`\" pulumi-lang-dotnet=\"`ContainerLogMaxFiles`\" pulumi-lang-go=\"`containerLogMaxFiles`\" pulumi-lang-python=\"`container_log_max_files`\" pulumi-lang-yaml=\"`containerLogMaxFiles`\" pulumi-lang-java=\"`containerLogMaxFiles`\"\u003e`container_log_max_files`\u003c/span\u003e) cannot exceed 1% of the total storage of the node.\n"},"cpuCfsQuota":{"type":"boolean","description":"If true, enables CPU CFS quota enforcement for\ncontainers that specify CPU limits.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"The CPU CFS quota period value. Specified\nas a sequence of decimal numbers, each with optional fraction and a unit suffix,\nsuch as `\"300ms\"`. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\",\n\"h\". The value must be a positive duration.\n"},"cpuManagerPolicy":{"type":"string","description":"The CPU management policy on the node. See\n[K8S CPU Management Policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/).\nOne of `\"none\"` or `\"static\"`. If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"none\".\nPrior to the 6.4.0 this field was marked as required. The workaround for the required field\nis setting the empty string `\"\"`, which will function identically to not setting this field.\n"},"evictionMaxPodGracePeriodSeconds":{"type":"integer","description":"Defines the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. The integer must be positive and not exceed 300.\n"},"evictionMinimumReclaim":{"$ref":"#/types/gcp:container/ClusterNodeConfigKubeletConfigEvictionMinimumReclaim:ClusterNodeConfigKubeletConfigEvictionMinimumReclaim","description":"Defines a map of signal names to percentage that defines minimum reclaims. It describes the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction. Structure is documented below.\n"},"evictionSoft":{"$ref":"#/types/gcp:container/ClusterNodeConfigKubeletConfigEvictionSoft:ClusterNodeConfigKubeletConfigEvictionSoft","description":"Defines a map of signal names to quantities or percentage that defines soft eviction thresholds. Structure is documented below.\n"},"evictionSoftGracePeriod":{"$ref":"#/types/gcp:container/ClusterNodeConfigKubeletConfigEvictionSoftGracePeriod:ClusterNodeConfigKubeletConfigEvictionSoftGracePeriod","description":"Defines a map of signal names to durations that defines grace periods for soft eviction thresholds. Each soft eviction threshold must have a corresponding grace period. Structure is documented below.\n"},"imageGcHighThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage after which image garbage collection is always run. The integer must be between 10 and 85, inclusive.\n"},"imageGcLowThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The integer must be between 10 and 85, inclusive.\n"},"imageMaximumGcAge":{"type":"string","description":"Defines the maximum age an image can be unused before it is garbage collected. Specified as a sequence of decimal numbers, each with optional fraction and a unit suffix, such as `\"300s\"`, `\"1.5m\"`, and `\"2h45m\"`. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". The value must be a positive duration.\n"},"imageMinimumGcAge":{"type":"string","description":"Defines the minimum age for an unused image before it is garbage collected. Specified as a sequence of decimal numbers, each with optional fraction and a unit suffix, such as `\"300s\"`, `\"1.5m\"`. The value cannot be greater than \"2m\".\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"maxParallelImagePulls":{"type":"integer","description":"Set the maximum number of image pulls in parallel. The integer must be between 2 and 5, inclusive.\n"},"memoryManager":{"$ref":"#/types/gcp:container/ClusterNodeConfigKubeletConfigMemoryManager:ClusterNodeConfigKubeletConfigMemoryManager","description":"Configuration for the [memory manager](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/) on the node.\nThe memory manager optimizes memory and hugepages allocation for pods, especially\nthose in the Guaranteed QoS class, by influencing NUMA affinity. Structure is documented below.\n"},"podPidsLimit":{"type":"integer","description":"Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.\n"},"singleProcessOomKill":{"type":"boolean","description":"Defines whether to enable single process OOM killer. If true, the processes in the container will be OOM killed individually instead of as a group.\n"},"topologyManager":{"$ref":"#/types/gcp:container/ClusterNodeConfigKubeletConfigTopologyManager:ClusterNodeConfigKubeletConfigTopologyManager","description":"These settings control the kubelet's [Topology Manager policy](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies), which coordinates the set of components responsible for performance optimizations related to CPU isolation, memory, and device locality. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpuCfsQuota","insecureKubeletReadonlyPortEnabled","maxParallelImagePulls"]}}},"gcp:container/ClusterNodeConfigKubeletConfigEvictionMinimumReclaim:ClusterNodeConfigKubeletConfigEvictionMinimumReclaim":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.inodesFree. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"memoryAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for memory.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.inodesFree. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for pid.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigKubeletConfigEvictionSoft:ClusterNodeConfigKubeletConfigEvictionSoft":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.available. The value must be a percentage between `15%` and `50%`, such as `\"20%\"`.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.inodesFree. The value must be a percentage between `5%` and `50%`, such as `\"20%\"`.\n"},"memoryAvailable":{"type":"string","description":"Defines quantity of soft eviction threshold for memory.available. The value must be a quantity, such as `\"100Mi\"`. The value must be greater than or equal to the GKE default hard eviction threshold of `\"100Mi\"` and less than 50% of machine memory.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.available. The value must be a percentage between `10%` and `50%`, such as `\"20%\"`.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.inodesFree. The value must be a percentage between `5%` and `50%`, such as `\"20%\"`.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for pid.available. The value must be a percentage between `10%` and `50%`, such as `\"20%\"`.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigKubeletConfigEvictionSoftGracePeriod:ClusterNodeConfigKubeletConfigEvictionSoftGracePeriod":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines grace period for the imagefs.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"imagefsInodesFree":{"type":"string","description":"Defines grace period for the imagefs.inodesFree soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"memoryAvailable":{"type":"string","description":"Defines grace period for the memory.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`, such as `\"30s\"`, `\"1m30s\"`, `\"2.5m\"`. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\".\n"},"nodefsAvailable":{"type":"string","description":"Defines grace period for the nodefs.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"nodefsInodesFree":{"type":"string","description":"Defines grace period for the nodefs.inodesFree soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"pidAvailable":{"type":"string","description":"Defines grace period for the pid.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigKubeletConfigMemoryManager:ClusterNodeConfigKubeletConfigMemoryManager":{"properties":{"policy":{"type":"string","description":"The [Memory\nManager](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/)\npolicy can be set to None (default) or Static. This policy dictates how memory alignment is handled on the node.  If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"None\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["policy"]}}},"gcp:container/ClusterNodeConfigKubeletConfigTopologyManager:ClusterNodeConfigKubeletConfigTopologyManager":{"properties":{"policy":{"type":"string","description":"The Topology Manager policy controls resource alignment on the node and can be set to one of the following: none (default), best-effort, restricted, or single-numa-node.  If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"none\".\n"},"scope":{"type":"string","description":"The Topology Manager scope, defining the granularity at which\npolicy decisions are applied. Valid values are \"container\" (resources are aligned\nper container within a pod which is set by default) or \"pod\" (resources are aligned for the entire pod).  If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"container\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["policy","scope"]}}},"gcp:container/ClusterNodeConfigLinuxNodeConfig:ClusterNodeConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"Possible cgroup modes that can be used.\nAccepted values are:\n* `CGROUP_MODE_UNSPECIFIED`: CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. The default for the GKE node OS image will be used.\n* `CGROUP_MODE_V1`: CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on the node image.\n* `CGROUP_MODE_V2`: CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on the node image.\n"},"hugepagesConfig":{"$ref":"#/types/gcp:container/ClusterNodeConfigLinuxNodeConfigHugepagesConfig:ClusterNodeConfigLinuxNodeConfigHugepagesConfig","description":"Amounts for 2M and 1G hugepages. Structure is documented below.\n"},"nodeKernelModuleLoading":{"$ref":"#/types/gcp:container/ClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading:ClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading","description":"Settings for kernel module loading. Structure is documented below.\n"},"sysctls":{"type":"object","additionalProperties":{"type":"string"},"description":"The Linux kernel parameters to be applied to the nodes\nand all pods running on the nodes. Specified as a map from the key, such as\n`net.core.wmem_max`, to a string value. Currently supported attributes can be found [here](https://cloud.google.com/sdk/gcloud/reference/beta/container/node-pools/create#--system-config-from-file).\nNote that validations happen all server side. All attributes are optional.\n\n"},"transparentHugepageDefrag":{"type":"string","description":"The Linux kernel transparent hugepage defrag setting.\n"},"transparentHugepageEnabled":{"type":"string","description":"The Linux kernel transparent hugepage setting.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cgroupMode","transparentHugepageEnabled"]}}},"gcp:container/ClusterNodeConfigLinuxNodeConfigHugepagesConfig:ClusterNodeConfigLinuxNodeConfigHugepagesConfig":{"properties":{"hugepageSize1g":{"type":"integer","description":"Amount of 1G hugepages.\n"},"hugepageSize2m":{"type":"integer","description":"Amount of 2M hugepages.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading:ClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"Possible kernel module loading policies.\nAccepted values are:\n* `POLICY_UNSPECIFIED`: Default if unset. GKE selects the image based on node type. For CPU and TPU nodes, the image will not allow loading external kernel modules. For GPU nodes, the image will allow loading any module, whether it is signed or not.\n* `ENFORCE_SIGNED_MODULES`: Enforced signature verification: Node pools will use a Container-Optimized OS image configured to allow loading of *Google-signed* external kernel modules. Loadpin is enabled but configured to exclude modules, and kernel module signature checking is enforced.\n* `DO_NOT_ENFORCE_SIGNED_MODULES`: Mirrors existing DEFAULT behavior: For CPU and TPU nodes, the image will not allow loading external kernel modules. For GPU nodes, the image will allow loading any module, whether it is signed or not.\n"}},"type":"object"},"gcp:container/ClusterNodeConfigLocalNvmeSsdBlockConfig:ClusterNodeConfigLocalNvmeSsdBlockConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD disks to be attached to the node.\n\u003e Note: Local NVMe SSD storage available in GKE versions v1.25.3-gke.1800 and later.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/ClusterNodeConfigReservationAffinity:ClusterNodeConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"The type of reservation consumption\nAccepted values are:\n\n* `\"UNSPECIFIED\"`: Default value. This should not be used.\n* `\"NO_RESERVATION\"`: Do not consume from any reserved capacity.\n* `\"ANY_RESERVATION\"`: Consume any reservation available.\n* `\"SPECIFIC_RESERVATION\"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"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 its value.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"The list of label values of reservation resources. For example: the name of the specific reservation when using a key of \"compute.googleapis.com/reservation-name\"\n","willReplaceOnChanges":true}},"type":"object","required":["consumeReservationType"]},"gcp:container/ClusterNodeConfigSandboxConfig:ClusterNodeConfigSandboxConfig":{"properties":{"sandboxType":{"type":"string","description":"Which sandbox to use for pods in the node pool.\nAccepted values are:\n\n* `\"gvisor\"`: Pods run within a gVisor sandbox.\n"}},"type":"object","required":["sandboxType"]},"gcp:container/ClusterNodeConfigSecondaryBootDisk:ClusterNodeConfigSecondaryBootDisk":{"properties":{"diskImage":{"type":"string","description":"Path to disk image to create the secondary boot disk from. After using the [gke-disk-image-builder](https://github.com/GoogleCloudPlatform/ai-on-gke/tree/main/tools/gke-disk-image-builder), this argument should be `global/images/DISK_IMAGE_NAME`.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Mode for how the secondary boot disk is used. An example mode is `CONTAINER_IMAGE_CACHE`.\n","willReplaceOnChanges":true}},"type":"object","required":["diskImage"]},"gcp:container/ClusterNodeConfigShieldedInstanceConfig:ClusterNodeConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines if the instance has integrity monitoring enabled.\n\nEnables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created.  Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"enableSecureBoot":{"type":"boolean","description":"Defines if the instance has Secure Boot enabled.\n\nSecure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.  Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:container/ClusterNodeConfigSoleTenantConfig:ClusterNodeConfigSoleTenantConfig":{"properties":{"minNodeCpus":{"type":"integer","description":"Specifies the minimum number of vCPUs that each sole tenant node must have to use CPU overcommit. If not specified, the CPU overcommit feeature is disabled. The value should be greater than or equal to half of the machine type's CPU count.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodeConfigSoleTenantConfigNodeAffinity:ClusterNodeConfigSoleTenantConfigNodeAffinity"},"description":"The node affinity settings for the sole tenant node pool. Structure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["nodeAffinities"]},"gcp:container/ClusterNodeConfigSoleTenantConfigNodeAffinity:ClusterNodeConfigSoleTenantConfigNodeAffinity":{"properties":{"key":{"type":"string","description":"The default or custom node affinity label key name.\n","willReplaceOnChanges":true},"operator":{"type":"string","description":"Specifies affinity or anti-affinity. Accepted values are `\"IN\"` or `\"NOT_IN\"`\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"List of node affinity label values as strings.\n","willReplaceOnChanges":true}},"type":"object","required":["key","operator","values"]},"gcp:container/ClusterNodeConfigTaint:ClusterNodeConfigTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint. Accepted values are `NO_SCHEDULE`, `PREFER_NO_SCHEDULE`, and `NO_EXECUTE`.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"]},"gcp:container/ClusterNodeConfigWindowsNodeConfig:ClusterNodeConfigWindowsNodeConfig":{"properties":{"osversion":{"type":"string","description":"The OS Version of the windows nodepool.Values are OS_VERSION_UNSPECIFIED,OS_VERSION_LTSC2019 and OS_VERSION_LTSC2022\n"}},"type":"object"},"gcp:container/ClusterNodeConfigWorkloadMetadataConfig:ClusterNodeConfigWorkloadMetadataConfig":{"properties":{"mode":{"type":"string","description":"How to expose the node metadata to the workload running on the node.\nAccepted values are:\n* UNSPECIFIED: Not Set\n* GCE_METADATA: Expose all Compute Engine metadata to pods.\n* GKE_METADATA: Run the GKE Metadata Server on this node. The GKE Metadata Server exposes a metadata API to workloads that is compatible with the V1 Compute Metadata APIs exposed by the Compute Engine and App Engine Metadata Servers. This feature can only be enabled if [workload identity](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) is enabled at the cluster level.\n"}},"type":"object","required":["mode"]},"gcp:container/ClusterNodePool:ClusterNodePool":{"properties":{"autoscaling":{"$ref":"#/types/gcp:container/ClusterNodePoolAutoscaling:ClusterNodePoolAutoscaling","description":"Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.\n"},"initialNodeCount":{"type":"integer","description":"The number of nodes to create in this\ncluster's default node pool. In regional or multi-zonal clusters, this is the\nnumber of nodes per zone. Must be set if \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`node_pool`\u003c/span\u003e is not set. If you're using\n\u003cspan pulumi-lang-nodejs=\"`gcp.container.NodePool`\" pulumi-lang-dotnet=\"`gcp.container.NodePool`\" pulumi-lang-go=\"`container.NodePool`\" pulumi-lang-python=\"`container.NodePool`\" pulumi-lang-yaml=\"`gcp.container.NodePool`\" pulumi-lang-java=\"`gcp.container.NodePool`\"\u003e`gcp.container.NodePool`\u003c/span\u003e objects with no default node pool, you'll need to\nset this to a value of at least \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, alongside setting\n\u003cspan pulumi-lang-nodejs=\"`removeDefaultNodePool`\" pulumi-lang-dotnet=\"`RemoveDefaultNodePool`\" pulumi-lang-go=\"`removeDefaultNodePool`\" pulumi-lang-python=\"`remove_default_node_pool`\" pulumi-lang-yaml=\"`removeDefaultNodePool`\" pulumi-lang-java=\"`removeDefaultNodePool`\"\u003e`remove_default_node_pool`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"instanceGroupUrls":{"type":"array","items":{"type":"string"},"description":"The resource URLs of the managed instance groups associated with this node pool.\n"},"managedInstanceGroupUrls":{"type":"array","items":{"type":"string"},"description":"List of instance group URLs which have been assigned to this node pool.\n"},"management":{"$ref":"#/types/gcp:container/ClusterNodePoolManagement:ClusterNodePoolManagement","description":"Node management configuration, wherein auto-repair and auto-upgrade is configured.\n"},"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods per node in this node pool. Note that this does not work on node pools which are \"route-based\" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the cluster, unique within the project and\nlocation.\n\n- - -\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.\n","willReplaceOnChanges":true},"networkConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNetworkConfig:ClusterNodePoolNetworkConfig","description":"Configuration for\n[Adding Pod IP address ranges](https://cloud.google.com/kubernetes-engine/docs/how-to/multi-pod-cidr)) to the node pool. Structure is documented below\n"},"nodeConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfig:ClusterNodePoolNodeConfig","description":"Parameters used in creating the default node pool.\nGenerally, this field should not be used at the same time as a\n\u003cspan pulumi-lang-nodejs=\"`gcp.container.NodePool`\" pulumi-lang-dotnet=\"`gcp.container.NodePool`\" pulumi-lang-go=\"`container.NodePool`\" pulumi-lang-python=\"`container.NodePool`\" pulumi-lang-yaml=\"`gcp.container.NodePool`\" pulumi-lang-java=\"`gcp.container.NodePool`\"\u003e`gcp.container.NodePool`\u003c/span\u003e or a \u003cspan pulumi-lang-nodejs=\"`nodePool`\" pulumi-lang-dotnet=\"`NodePool`\" pulumi-lang-go=\"`nodePool`\" pulumi-lang-python=\"`node_pool`\" pulumi-lang-yaml=\"`nodePool`\" pulumi-lang-java=\"`nodePool`\"\u003e`node_pool`\u003c/span\u003e block; this configuration\nmanages the default node pool, which isn't recommended to be used.\nStructure is documented below.\n","willReplaceOnChanges":true},"nodeCount":{"type":"integer","description":"The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.\n"},"nodeDrainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeDrainConfig:ClusterNodePoolNodeDrainConfig"},"description":"Node drain configuration for this NodePool.\n"},"nodeLocations":{"type":"array","items":{"type":"string"},"description":"The list of zones in which the cluster's nodes\nare located. Nodes must be in the region of their regional cluster or in the\nsame region as their cluster's zone for zonal clusters. If this is specified for\na zonal cluster, omit the cluster's zone.\n\n\u003e A \"multi-zonal\" cluster is a zonal cluster with at least one additional zone\ndefined; in a multi-zonal cluster, the cluster master is only present in a\nsingle zone while nodes are present in each of the primary zone and the node\nlocations. In contrast, in a regional cluster, cluster master nodes are present\nin multiple zones in the region. For that reason, regional clusters should be\npreferred.\n"},"placementPolicy":{"$ref":"#/types/gcp:container/ClusterNodePoolPlacementPolicy:ClusterNodePoolPlacementPolicy","description":"Specifies the node placement policy\n","willReplaceOnChanges":true},"queuedProvisioning":{"$ref":"#/types/gcp:container/ClusterNodePoolQueuedProvisioning:ClusterNodePoolQueuedProvisioning","description":"Specifies the configuration of queued provisioning\n","willReplaceOnChanges":true},"upgradeSettings":{"$ref":"#/types/gcp:container/ClusterNodePoolUpgradeSettings:ClusterNodePoolUpgradeSettings","description":"Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of\u003cspan pulumi-lang-nodejs=\" maxSurge \" pulumi-lang-dotnet=\" MaxSurge \" pulumi-lang-go=\" maxSurge \" pulumi-lang-python=\" max_surge \" pulumi-lang-yaml=\" maxSurge \" pulumi-lang-java=\" maxSurge \"\u003e max_surge \u003c/span\u003eand max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.\n"},"version":{"type":"string","description":"The Kubernetes version for the nodes in this pool. Note that if this field and\u003cspan pulumi-lang-nodejs=\" autoUpgrade \" pulumi-lang-dotnet=\" AutoUpgrade \" pulumi-lang-go=\" autoUpgrade \" pulumi-lang-python=\" auto_upgrade \" pulumi-lang-yaml=\" autoUpgrade \" pulumi-lang-java=\" autoUpgrade \"\u003e auto_upgrade \u003c/span\u003eare both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the\u003cspan pulumi-lang-nodejs=\" gcp.container.getEngineVersions \" pulumi-lang-dotnet=\" gcp.container.getEngineVersions \" pulumi-lang-go=\" container.getEngineVersions \" pulumi-lang-python=\" container_get_engine_versions \" pulumi-lang-yaml=\" gcp.container.getEngineVersions \" pulumi-lang-java=\" gcp.container.getEngineVersions \"\u003e gcp.container.getEngineVersions \u003c/span\u003edata source's\u003cspan pulumi-lang-nodejs=\" versionPrefix \" pulumi-lang-dotnet=\" VersionPrefix \" pulumi-lang-go=\" versionPrefix \" pulumi-lang-python=\" version_prefix \" pulumi-lang-yaml=\" versionPrefix \" pulumi-lang-java=\" versionPrefix \"\u003e version_prefix \u003c/span\u003efield to approximate fuzzy versions in a Terraform-compatible way.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["initialNodeCount","instanceGroupUrls","managedInstanceGroupUrls","management","maxPodsPerNode","name","namePrefix","networkConfig","nodeConfig","nodeCount","nodeDrainConfigs","nodeLocations","upgradeSettings","version"]}}},"gcp:container/ClusterNodePoolAutoConfig:ClusterNodePoolAutoConfig":{"properties":{"linuxNodeConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolAutoConfigLinuxNodeConfig:ClusterNodePoolAutoConfigLinuxNodeConfig","description":"Linux system configuration for the cluster's automatically provisioned node pools. Only \u003cspan pulumi-lang-nodejs=\"`cgroupMode`\" pulumi-lang-dotnet=\"`CgroupMode`\" pulumi-lang-go=\"`cgroupMode`\" pulumi-lang-python=\"`cgroup_mode`\" pulumi-lang-yaml=\"`cgroupMode`\" pulumi-lang-java=\"`cgroupMode`\"\u003e`cgroup_mode`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`nodeKernelModuleLoading`\" pulumi-lang-dotnet=\"`NodeKernelModuleLoading`\" pulumi-lang-go=\"`nodeKernelModuleLoading`\" pulumi-lang-python=\"`node_kernel_module_loading`\" pulumi-lang-yaml=\"`nodeKernelModuleLoading`\" pulumi-lang-java=\"`nodeKernelModuleLoading`\"\u003e`node_kernel_module_loading`\u003c/span\u003e fields are supported in \u003cspan pulumi-lang-nodejs=\"`nodePoolAutoConfig`\" pulumi-lang-dotnet=\"`NodePoolAutoConfig`\" pulumi-lang-go=\"`nodePoolAutoConfig`\" pulumi-lang-python=\"`node_pool_auto_config`\" pulumi-lang-yaml=\"`nodePoolAutoConfig`\" pulumi-lang-java=\"`nodePoolAutoConfig`\"\u003e`node_pool_auto_config`\u003c/span\u003e. Structure is documented below.\n"},"networkTags":{"$ref":"#/types/gcp:container/ClusterNodePoolAutoConfigNetworkTags:ClusterNodePoolAutoConfigNetworkTags","description":"The network tag config for the cluster's automatically provisioned node pools. Structure is documented below.\n"},"nodeKubeletConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolAutoConfigNodeKubeletConfig:ClusterNodePoolAutoConfigNodeKubeletConfig","description":"Kubelet configuration for Autopilot clusters. Currently, only \u003cspan pulumi-lang-nodejs=\"`insecureKubeletReadonlyPortEnabled`\" pulumi-lang-dotnet=\"`InsecureKubeletReadonlyPortEnabled`\" pulumi-lang-go=\"`insecureKubeletReadonlyPortEnabled`\" pulumi-lang-python=\"`insecure_kubelet_readonly_port_enabled`\" pulumi-lang-yaml=\"`insecureKubeletReadonlyPortEnabled`\" pulumi-lang-java=\"`insecureKubeletReadonlyPortEnabled`\"\u003e`insecure_kubelet_readonly_port_enabled`\u003c/span\u003e is supported here.\nStructure is documented below.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications found [here](https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications). A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodeKubeletConfig"]}}},"gcp:container/ClusterNodePoolAutoConfigLinuxNodeConfig:ClusterNodePoolAutoConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"Possible cgroup modes that can be used.\nAccepted values are:\n* `CGROUP_MODE_UNSPECIFIED`: CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. The default for the GKE node OS image will be used.\n* `CGROUP_MODE_V1`: CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on the node image.\n* `CGROUP_MODE_V2`: CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on the node image.\n"},"nodeKernelModuleLoading":{"$ref":"#/types/gcp:container/ClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading:ClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading","description":"Settings for kernel module loading. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cgroupMode"]}}},"gcp:container/ClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading:ClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"Possible kernel module loading policies.\nAccepted values are:\n* `POLICY_UNSPECIFIED`: Default if unset. GKE selects the image based on node type. For CPU and TPU nodes, the image will not allow loading external kernel modules. For GPU nodes, the image will allow loading any module, whether it is signed or not.\n* `ENFORCE_SIGNED_MODULES`: Enforced signature verification: Node pools will use a Container-Optimized OS image configured to allow loading of *Google-signed* external kernel modules. Loadpin is enabled but configured to exclude modules, and kernel module signature checking is enforced.\n* `DO_NOT_ENFORCE_SIGNED_MODULES`: Mirrors existing DEFAULT behavior: For CPU and TPU nodes, the image will not allow loading external kernel modules. For GPU nodes, the image will allow loading any module, whether it is signed or not.\n"}},"type":"object"},"gcp:container/ClusterNodePoolAutoConfigNetworkTags:ClusterNodePoolAutoConfigNetworkTags":{"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"List of network tags applied to auto-provisioned node pools.\n\n"}},"type":"object"},"gcp:container/ClusterNodePoolAutoConfigNodeKubeletConfig:ClusterNodePoolAutoConfigNodeKubeletConfig":{"properties":{"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["insecureKubeletReadonlyPortEnabled"]}}},"gcp:container/ClusterNodePoolAutoscaling:ClusterNodePoolAutoscaling":{"properties":{"locationPolicy":{"type":"string","description":"Location policy specifies the algorithm used when scaling-up the node pool. \"BALANCED\" - Is a best effort policy that aims to balance the sizes of available zones. \"ANY\" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduces preemption risk for Spot VMs.\n"},"maxNodeCount":{"type":"integer","description":"Maximum number of nodes per zone in the node pool. Must be \u003e= min_node_count. Cannot be used with total limits.\n"},"minNodeCount":{"type":"integer","description":"Minimum number of nodes per zone in the node pool. Must be \u003e=0 and \u003c= max_node_count. Cannot be used with total limits.\n"},"totalMaxNodeCount":{"type":"integer","description":"Maximum number of all nodes in the node pool. Must be \u003e= total_min_node_count. Cannot be used with per zone limits.\n"},"totalMinNodeCount":{"type":"integer","description":"Minimum number of all nodes in the node pool. Must be \u003e=0 and \u003c= total_max_node_count. Cannot be used with per zone limits.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["locationPolicy"]}}},"gcp:container/ClusterNodePoolDefaults:ClusterNodePoolDefaults":{"properties":{"nodeConfigDefaults":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaults:ClusterNodePoolDefaultsNodeConfigDefaults","description":"Subset of NodeConfig message that has defaults.\n"}},"type":"object"},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaults:ClusterNodePoolDefaultsNodeConfigDefaults":{"properties":{"containerdConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfig","description":"Parameters for containerd configuration.\n"},"gcfsConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfig:ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfig","description":"The default Google Container Filesystem (GCFS) configuration at the cluster level. e.g. enable [image streaming](https://cloud.google.com/kubernetes-engine/docs/how-to/image-streaming) across all the node pools within the cluster. Structure is documented below.\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled for newly created node pools in the cluster. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"loggingVariant":{"type":"string","description":"The type of logging agent that is deployed by default for newly created node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT. See [Increasing logging agent throughput](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-logs#throughput) for more information.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["containerdConfig","gcfsConfig","insecureKubeletReadonlyPortEnabled","loggingVariant"]}}},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfig":{"properties":{"privateRegistryAccessConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfig","description":"Configuration for private container registries. There are two fields in this config:\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHost:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHost"},"description":"Defines containerd registry host configuration. Each \u003cspan pulumi-lang-nodejs=\"`registryHosts`\" pulumi-lang-dotnet=\"`RegistryHosts`\" pulumi-lang-go=\"`registryHosts`\" pulumi-lang-python=\"`registry_hosts`\" pulumi-lang-yaml=\"`registryHosts`\" pulumi-lang-java=\"`registryHosts`\"\u003e`registry_hosts`\u003c/span\u003e entry represents a `hosts.toml` file. See [customize containerd configuration in GKE nodes](https://docs.cloud.google.com/kubernetes-engine/docs/how-to/customize-containerd-configuration#registryHosts) for more detail. Example:\n"},"writableCgroups":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigWritableCgroups:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigWritableCgroups","description":"Configuration for writable cgroups. This allows containers to have a writable `/sys/fs/cgroup` directory, which is required for some workloads to create their own sub-cgroups. The \u003cspan pulumi-lang-nodejs=\"`writableCgroups`\" pulumi-lang-dotnet=\"`WritableCgroups`\" pulumi-lang-go=\"`writableCgroups`\" pulumi-lang-python=\"`writable_cgroups`\" pulumi-lang-yaml=\"`writableCgroups`\" pulumi-lang-java=\"`writableCgroups`\"\u003e`writable_cgroups`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"List of configuration objects for CA and domains. Each object identifies a certificate and its assigned domains. See [how to configure for private container registries](https://cloud.google.com/kubernetes-engine/docs/how-to/access-private-registries-private-certificates) for more detail. Example:\n"},"enabled":{"type":"boolean","description":"Enables private registry config. If set to false, all other fields in this object must not be set.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig","description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfig"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHost:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHost:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["server"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHost:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostCa:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClient:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostHeader:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["host"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostCa:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object"},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClient:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClient":{"properties":{"cert":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientCert:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientCert","description":"Configures the client certificate.\n"},"key":{"$ref":"#/types/gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientKey:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientKey","description":"Configures the client private key.\n"}},"type":"object","required":["cert"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientCert:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object"},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientKey:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object"},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostHeader:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigWritableCgroups:ClusterNodePoolDefaultsNodeConfigDefaultsContainerdConfigWritableCgroups":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfig:ClusterNodePoolDefaultsNodeConfigDefaultsGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the Google Container Filesystem (GCFS) is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolManagement:ClusterNodePoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.\n\nThis block also contains several computed attributes, documented below.\n"},"autoUpgrade":{"type":"boolean","description":"Specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNetworkConfig:ClusterNodePoolNetworkConfig":{"properties":{"acceleratorNetworkProfile":{"type":"string","description":"The accelerator network profile to use for this node pool.\n","willReplaceOnChanges":true},"additionalNodeNetworkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig:ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig"},"description":"We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface\n","willReplaceOnChanges":true},"additionalPodNetworkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNetworkConfigAdditionalPodNetworkConfig:ClusterNodePoolNetworkConfigAdditionalPodNetworkConfig"},"description":"We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node\n","willReplaceOnChanges":true},"createPodRange":{"type":"boolean","description":"Whether to create a new range for pod IPs in this node pool. Defaults are provided for\u003cspan pulumi-lang-nodejs=\" podRange \" pulumi-lang-dotnet=\" PodRange \" pulumi-lang-go=\" podRange \" pulumi-lang-python=\" pod_range \" pulumi-lang-yaml=\" podRange \" pulumi-lang-java=\" podRange \"\u003e pod_range \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" podIpv4CidrBlock \" pulumi-lang-dotnet=\" PodIpv4CidrBlock \" pulumi-lang-go=\" podIpv4CidrBlock \" pulumi-lang-python=\" pod_ipv4_cidr_block \" pulumi-lang-yaml=\" podIpv4CidrBlock \" pulumi-lang-java=\" podIpv4CidrBlock \"\u003e pod_ipv4_cidr_block \u003c/span\u003eif they are not specified.\n","willReplaceOnChanges":true},"enablePrivateNodes":{"type":"boolean","description":"Whether nodes have internal IP addresses only.\n"},"networkPerformanceConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNetworkConfigNetworkPerformanceConfig:ClusterNodePoolNetworkConfigNetworkPerformanceConfig","description":"Network bandwidth tier configuration.\n"},"podCidrOverprovisionConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNetworkConfigPodCidrOverprovisionConfig:ClusterNodePoolNetworkConfigPodCidrOverprovisionConfig","description":"Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited\n","willReplaceOnChanges":true},"podIpv4CidrBlock":{"type":"string","description":"The IP address range for pod IPs in this node pool. Only applicable if\u003cspan pulumi-lang-nodejs=\" createPodRange \" pulumi-lang-dotnet=\" CreatePodRange \" pulumi-lang-go=\" createPodRange \" pulumi-lang-python=\" create_pod_range \" pulumi-lang-yaml=\" createPodRange \" pulumi-lang-java=\" createPodRange \"\u003e create_pod_range \u003c/span\u003eis true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.\n","willReplaceOnChanges":true},"podRange":{"type":"string","description":"The ID of the secondary range for pod IPs. If\u003cspan pulumi-lang-nodejs=\" createPodRange \" pulumi-lang-dotnet=\" CreatePodRange \" pulumi-lang-go=\" createPodRange \" pulumi-lang-python=\" create_pod_range \" pulumi-lang-yaml=\" createPodRange \" pulumi-lang-java=\" createPodRange \"\u003e create_pod_range \u003c/span\u003eis true, this ID is used for the new range. If\u003cspan pulumi-lang-nodejs=\" createPodRange \" pulumi-lang-dotnet=\" CreatePodRange \" pulumi-lang-go=\" createPodRange \" pulumi-lang-python=\" create_pod_range \" pulumi-lang-yaml=\" createPodRange \" pulumi-lang-java=\" createPodRange \"\u003e create_pod_range \u003c/span\u003eis false, uses an existing secondary range with this ID.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the Google Compute Engine\nsubnetwork in which the cluster's instances are launched.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalNodeNetworkConfigs","enablePrivateNodes","podCidrOverprovisionConfig","podIpv4CidrBlock","podRange","subnetwork"]}}},"gcp:container/ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig:ClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig":{"properties":{"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the Google Compute Engine\nnetwork to which the cluster is connected. For Shared VPC, set this to the self link of the\nshared network.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the Google Compute Engine\nsubnetwork in which the cluster's instances are launched.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["network","subnetwork"]}}},"gcp:container/ClusterNodePoolNetworkConfigAdditionalPodNetworkConfig:ClusterNodePoolNetworkConfigAdditionalPodNetworkConfig":{"properties":{"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods per node which use this pod network.\n","willReplaceOnChanges":true},"secondaryPodRange":{"type":"string","description":"The name of the secondary range on the subnet which provides IP address for this pod range.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the Google Compute Engine\nsubnetwork in which the cluster's instances are launched.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxPodsPerNode"]}}},"gcp:container/ClusterNodePoolNetworkConfigNetworkPerformanceConfig:ClusterNodePoolNetworkConfigNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"Specifies the total network bandwidth tier for NodePools in the cluster.\n"}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:container/ClusterNodePoolNetworkConfigPodCidrOverprovisionConfig:ClusterNodePoolNetworkConfigPodCidrOverprovisionConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether the cluster disables default in-node sNAT rules. In-node sNAT rules will be disabled when defaultSnatStatus is disabled.When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedClusterTelemetry\"\" pulumi-lang-dotnet=\"\"NestedClusterTelemetry\"\" pulumi-lang-go=\"\"nestedClusterTelemetry\"\" pulumi-lang-python=\"\"nested_cluster_telemetry\"\" pulumi-lang-yaml=\"\"nestedClusterTelemetry\"\" pulumi-lang-java=\"\"nestedClusterTelemetry\"\"\u003e\"nested_cluster_telemetry\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`clusterTelemetry`\" pulumi-lang-dotnet=\"`ClusterTelemetry`\" pulumi-lang-go=\"`clusterTelemetry`\" pulumi-lang-python=\"`cluster_telemetry`\" pulumi-lang-yaml=\"`clusterTelemetry`\" pulumi-lang-java=\"`clusterTelemetry`\"\u003e`cluster_telemetry`\u003c/span\u003e block supports\n"}},"type":"object","required":["disabled"]},"gcp:container/ClusterNodePoolNodeConfig:ClusterNodePoolNodeConfig":{"properties":{"advancedMachineFeatures":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigAdvancedMachineFeatures:ClusterNodePoolNodeConfigAdvancedMachineFeatures","description":"Specifies options for controlling\nadvanced machine features. Structure is documented below.\n","willReplaceOnChanges":true},"bootDisk":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigBootDisk:ClusterNodePoolNodeConfigBootDisk","description":"Configuration of the node pool boot disk. Structure is documented below\n"},"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption\n","willReplaceOnChanges":true},"confidentialNodes":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigConfidentialNodes:ClusterNodePoolNodeConfigConfidentialNodes","description":"Configuration for Confidential Nodes feature. Structure is documented below.\n"},"containerdConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfig:ClusterNodePoolNodeConfigContainerdConfig","description":"Parameters to customize containerd runtime. Structure is documented below.\n"},"diskSizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified\nin GB. The smallest allowed disk size is 10GB. Defaults to 100GB. This is being migrated to `boot_disk.size_gb`, and must match if specified in both places.\nPrefer configuring \u003cspan pulumi-lang-nodejs=\"`bootDisk`\" pulumi-lang-dotnet=\"`BootDisk`\" pulumi-lang-go=\"`bootDisk`\" pulumi-lang-python=\"`boot_disk`\" pulumi-lang-yaml=\"`bootDisk`\" pulumi-lang-java=\"`bootDisk`\"\u003e`boot_disk`\u003c/span\u003e.\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node\n(e.g. 'pd-standard', 'pd-balanced', 'pd-ssd', or 'hyperdisk-balanced'). Defaults to `hyperdisk-balanced` if `hyperdisk-balanced` is supported and `pd-balanced` is not supported for the machine type; otherwise defaults to `pd-balanced`. This is being migrated to `boot_disk.disk_type`, and must match if specified in both places. Prefer configuring \u003cspan pulumi-lang-nodejs=\"`bootDisk`\" pulumi-lang-dotnet=\"`BootDisk`\" pulumi-lang-go=\"`bootDisk`\" pulumi-lang-python=\"`boot_disk`\" pulumi-lang-yaml=\"`bootDisk`\" pulumi-lang-java=\"`bootDisk`\"\u003e`boot_disk`\u003c/span\u003e.\n"},"effectiveTaints":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigEffectiveTaint:ClusterNodePoolNodeConfigEffectiveTaint"},"description":"List of kubernetes taints applied to each node.\n"},"enableConfidentialStorage":{"type":"boolean","description":"Enabling Confidential Storage will create boot disk with confidential mode. It is disabled by default.\n","willReplaceOnChanges":true},"ephemeralStorageConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigEphemeralStorageConfig:ClusterNodePoolNodeConfigEphemeralStorageConfig","description":") Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below.\n\n","willReplaceOnChanges":true},"ephemeralStorageLocalSsdConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig:ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig","description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk. Structure is documented below.\n\n","willReplaceOnChanges":true},"fastSocket":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigFastSocket:ClusterNodePoolNodeConfigFastSocket","description":"Parameters for the NCCL Fast Socket feature. If unspecified, NCCL Fast Socket will not be enabled on the node pool.\nNode Pool must enable gvnic.\nGKE version 1.25.2-gke.1700 or later.\nStructure is documented below.\n"},"flexStart":{"type":"boolean","description":"Enables Flex Start provisioning model for the node pool.\n","willReplaceOnChanges":true},"gcfsConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigGcfsConfig:ClusterNodePoolNodeConfigGcfsConfig","description":"Parameters for the Google Container Filesystem (GCFS).\nIf unspecified, GCFS will not be enabled on the node pool. When enabling this feature you must specify \u003cspan pulumi-lang-nodejs=\"`imageType \" pulumi-lang-dotnet=\"`ImageType \" pulumi-lang-go=\"`imageType \" pulumi-lang-python=\"`image_type \" pulumi-lang-yaml=\"`imageType \" pulumi-lang-java=\"`imageType \"\u003e`image_type \u003c/span\u003e= \"COS_CONTAINERD\"` and \u003cspan pulumi-lang-nodejs=\"`nodeVersion`\" pulumi-lang-dotnet=\"`NodeVersion`\" pulumi-lang-go=\"`nodeVersion`\" pulumi-lang-python=\"`node_version`\" pulumi-lang-yaml=\"`nodeVersion`\" pulumi-lang-java=\"`nodeVersion`\"\u003e`node_version`\u003c/span\u003e from GKE versions 1.19 or later to use it.\nFor GKE versions 1.19, 1.20, and 1.21, the recommended minimum \u003cspan pulumi-lang-nodejs=\"`nodeVersion`\" pulumi-lang-dotnet=\"`NodeVersion`\" pulumi-lang-go=\"`nodeVersion`\" pulumi-lang-python=\"`node_version`\" pulumi-lang-yaml=\"`nodeVersion`\" pulumi-lang-java=\"`nodeVersion`\"\u003e`node_version`\u003c/span\u003e would be 1.19.15-gke.1300, 1.20.11-gke.1300, and 1.21.5-gke.1300 respectively.\nA \u003cspan pulumi-lang-nodejs=\"`machineType`\" pulumi-lang-dotnet=\"`MachineType`\" pulumi-lang-go=\"`machineType`\" pulumi-lang-python=\"`machine_type`\" pulumi-lang-yaml=\"`machineType`\" pulumi-lang-java=\"`machineType`\"\u003e`machine_type`\u003c/span\u003e that has more than 16 GiB of memory is also recommended.\nGCFS must be enabled in order to use [image streaming](https://cloud.google.com/kubernetes-engine/docs/how-to/image-streaming).\nStructure is documented below.\n\n"},"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigGuestAccelerator:ClusterNodePoolNodeConfigGuestAccelerator"},"description":"List of the type and count of accelerator cards attached to the instance.\nStructure documented below.\n","willReplaceOnChanges":true},"gvnic":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigGvnic:ClusterNodePoolNodeConfigGvnic","description":"Google Virtual NIC (gVNIC) is a virtual network interface.\nInstalling the gVNIC driver allows for more efficient traffic transmission across the Google network infrastructure.\ngVNIC is an alternative to the virtIO-based ethernet driver. GKE nodes must use a Container-Optimized OS node image.\nGKE node version 1.15.11-gke.15 or later\nStructure is documented below.\n\n\n"},"hostMaintenancePolicy":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigHostMaintenancePolicy:ClusterNodePoolNodeConfigHostMaintenancePolicy","description":"The maintenance policy for the hosts on which the GKE VMs run on.\n","willReplaceOnChanges":true},"imageType":{"type":"string","description":"The image type to use for this node. Note that changing the image type\nwill delete and recreate all nodes in the node pool.\n"},"kubeletConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigKubeletConfig:ClusterNodePoolNodeConfigKubeletConfig","description":"Kubelet configuration, currently supported attributes can be found [here](https://cloud.google.com/sdk/gcloud/reference/beta/container/node-pools/create#--system-config-from-file).\nStructure is documented below.\n\n```\nkubelet_config {\ncpu_manager_policy   = \"static\"\ncpu_cfs_quota        = true\ncpu_cfs_quota_period = \"100us\"\npod_pids_limit       = 1024\n}\n```\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubernetes labels (key/value pairs) to be applied to each node. The kubernetes.io/ and k8s.io/ prefixes are\nreserved by Kubernetes Core components and cannot be specified.\n"},"linuxNodeConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigLinuxNodeConfig:ClusterNodePoolNodeConfigLinuxNodeConfig","description":"Parameters that can be configured on Linux nodes. Structure is documented below.\n"},"localNvmeSsdBlockConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig:ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig","description":"Parameters for the local NVMe SSDs. Structure is documented below.\n","willReplaceOnChanges":true},"localSsdCount":{"type":"integer","description":"The amount of local SSD disks that will be\nattached to each cluster node. Defaults to 0.\n","willReplaceOnChanges":true},"localSsdEncryptionMode":{"type":"string","description":"Possible Local SSD encryption modes:\nAccepted values are:\n* `STANDARD_ENCRYPTION`: The given node will be encrypted using keys managed by Google infrastructure and the keys wll be deleted when the node is deleted.\n* `EPHEMERAL_KEY_ENCRYPTION`: The given node will opt-in for using ephemeral key for encrypting Local SSDs. The Local SSDs will not be able to recover data in case of node crash.\n","willReplaceOnChanges":true},"loggingVariant":{"type":"string","description":"Parameter for specifying the type of logging agent used in a node pool. This will override any cluster-wide default value. Valid values include DEFAULT and MAX_THROUGHPUT. See [Increasing logging agent throughput](https://cloud.google.com/stackdriver/docs/solutions/gke/managing-logs#throughput) for more information.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type.\nDefaults to `e2-medium`. To create a custom machine type, value should be set as specified\n[here](https://cloud.google.com/compute/docs/reference/latest/instances#machineType).\n"},"maxRunDuration":{"type":"string","description":"The runtime of each node in the node pool in seconds, terminated by 's'. Example: \"3600s\".\n","willReplaceOnChanges":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key/value pairs assigned to instances in\nthe cluster. From GKE `1.12` onwards, `disable-legacy-endpoints` is set to\n\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by the API; if \u003cspan pulumi-lang-nodejs=\"`metadata`\" pulumi-lang-dotnet=\"`Metadata`\" pulumi-lang-go=\"`metadata`\" pulumi-lang-python=\"`metadata`\" pulumi-lang-yaml=\"`metadata`\" pulumi-lang-java=\"`metadata`\"\u003e`metadata`\u003c/span\u003e is set but that default value is not\nincluded, the provider will attempt to unset the value. To avoid this, set the\nvalue in your config.\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance.\nThe instance may be scheduled on the specified or newer CPU platform. Applicable\nvalues are the friendly names of CPU platforms, such as `Intel Haswell`. See the\n[official documentation](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)\nfor more information.\n","willReplaceOnChanges":true},"nodeGroup":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).\n","willReplaceOnChanges":true},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available\non all of the node VMs under the \"default\" service account.\nUse the \"https://www.googleapis.com/auth/cloud-platform\" scope to grant access to all APIs. It is recommended that you set \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e to a non-default service account and grant IAM roles to that service account for only the resources that it needs.\n\nSee the [official documentation](https://cloud.google.com/kubernetes-engine/docs/how-to/access-scopes) for information on migrating off of legacy access scopes.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"A boolean that represents whether or not the underlying node VMs\nare preemptible. See the [official documentation](https://cloud.google.com/container-engine/docs/preemptible-vm)\nfor more information. Defaults to false.\n","willReplaceOnChanges":true},"reservationAffinity":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigReservationAffinity:ClusterNodePoolNodeConfigReservationAffinity","description":"The configuration of the desired reservation which instances could take capacity from. Structure is documented below.\n","willReplaceOnChanges":true},"resourceLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The GCP labels (key/value pairs) to be applied to each node. Refer [here](https://cloud.google.com/kubernetes-engine/docs/how-to/creating-managing-labels)\nfor how these labels are applied to clusters, node pools and nodes.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications found [here](https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications). A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`.\n"},"sandboxConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigSandboxConfig:ClusterNodePoolNodeConfigSandboxConfig","description":") [GKE Sandbox](https://cloud.google.com/kubernetes-engine/docs/how-to/sandbox-pods) configuration. When enabling this feature you must specify \u003cspan pulumi-lang-nodejs=\"`imageType \" pulumi-lang-dotnet=\"`ImageType \" pulumi-lang-go=\"`imageType \" pulumi-lang-python=\"`image_type \" pulumi-lang-yaml=\"`imageType \" pulumi-lang-java=\"`imageType \"\u003e`image_type \u003c/span\u003e= \"COS_CONTAINERD\"` and \u003cspan pulumi-lang-nodejs=\"`nodeVersion \" pulumi-lang-dotnet=\"`NodeVersion \" pulumi-lang-go=\"`nodeVersion \" pulumi-lang-python=\"`node_version \" pulumi-lang-yaml=\"`nodeVersion \" pulumi-lang-java=\"`nodeVersion \"\u003e`node_version \u003c/span\u003e= \"1.12.7-gke.17\"` or later to use it.\nStructure is documented below.\n","willReplaceOnChanges":true},"secondaryBootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigSecondaryBootDisk:ClusterNodePoolNodeConfigSecondaryBootDisk"},"description":"Parameters for secondary boot disks to preload container images and data on new nodes. Structure is documented below. \u003cspan pulumi-lang-nodejs=\"`gcfsConfig`\" pulumi-lang-dotnet=\"`GcfsConfig`\" pulumi-lang-go=\"`gcfsConfig`\" pulumi-lang-python=\"`gcfs_config`\" pulumi-lang-yaml=\"`gcfsConfig`\" pulumi-lang-java=\"`gcfsConfig`\"\u003e`gcfs_config`\u003c/span\u003e must be `enabled=true` for this feature to work. \u003cspan pulumi-lang-nodejs=\"`minMasterVersion`\" pulumi-lang-dotnet=\"`MinMasterVersion`\" pulumi-lang-go=\"`minMasterVersion`\" pulumi-lang-python=\"`min_master_version`\" pulumi-lang-yaml=\"`minMasterVersion`\" pulumi-lang-java=\"`minMasterVersion`\"\u003e`min_master_version`\u003c/span\u003e must also be set to use GKE 1.28.3-gke.106700 or later versions.\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"The service account to be used by the Node VMs.\nIf not specified, the \"default\" service account is used.\n","willReplaceOnChanges":true},"shieldedInstanceConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigShieldedInstanceConfig:ClusterNodePoolNodeConfigShieldedInstanceConfig","description":"Shielded Instance options. Structure is documented below.\n","willReplaceOnChanges":true},"soleTenantConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigSoleTenantConfig:ClusterNodePoolNodeConfigSoleTenantConfig","description":"Allows specifying multiple [node affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity) useful for running workloads on [sole tenant nodes](https://cloud.google.com/kubernetes-engine/docs/how-to/sole-tenancy). Structure is documented below.\n\n","willReplaceOnChanges":true},"spot":{"type":"boolean","description":"A boolean that represents whether the underlying node VMs are spot.\nSee the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)\nfor more information. Defaults to false.\n","willReplaceOnChanges":true},"storagePools":{"type":"array","items":{"type":"string"},"description":"The list of Storage Pools where boot disks are provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all nodes. Tags are used to identify\nvalid sources or targets for network firewalls.\n"},"taints":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigTaint:ClusterNodePoolNodeConfigTaint"},"description":"A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)\nto apply to nodes. GKE's API can only set this field on cluster creation.\nHowever, GKE will add taints to your nodes if you enable certain features such\nas GPUs. If this field is set, any diffs on this field will cause the provider to\nrecreate the underlying resource. Taint values can be updated safely in\nKubernetes (eg. through \u003cspan pulumi-lang-nodejs=\"`kubectl`\" pulumi-lang-dotnet=\"`Kubectl`\" pulumi-lang-go=\"`kubectl`\" pulumi-lang-python=\"`kubectl`\" pulumi-lang-yaml=\"`kubectl`\" pulumi-lang-java=\"`kubectl`\"\u003e`kubectl`\u003c/span\u003e), and it's recommended that you do not use\nthis field to manage taints. If you do, `lifecycle.ignore_changes` is\nrecommended. Structure is documented below.\n"},"windowsNodeConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigWindowsNodeConfig:ClusterNodePoolNodeConfigWindowsNodeConfig","description":"Windows node configuration, currently supporting OSVersion [attribute](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/NodeConfig#osversion). The value must be one of [OS_VERSION_UNSPECIFIED, OS_VERSION_LTSC2019, OS_VERSION_LTSC2022]. For example:\n\n"},"workloadMetadataConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigWorkloadMetadataConfig:ClusterNodePoolNodeConfigWorkloadMetadataConfig","description":"Metadata configuration to expose to workloads on the node pool.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDisk","confidentialNodes","containerdConfig","diskSizeGb","diskType","effectiveTaints","gcfsConfig","guestAccelerators","imageType","kubeletConfig","labels","linuxNodeConfig","localSsdCount","loggingVariant","machineType","metadata","minCpuPlatform","oauthScopes","serviceAccount","shieldedInstanceConfig","windowsNodeConfig","workloadMetadataConfig"]}}},"gcp:container/ClusterNodePoolNodeConfigAdvancedMachineFeatures:ClusterNodePoolNodeConfigAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Defines whether the instance should have nested virtualization enabled. Defaults to false.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"Defines the performance monitoring unit [PMU](https://cloud.google.com/compute/docs/pmu-overview) level. Valid values are `ARCHITECTURAL`, `STANDARD`, or `ENHANCED`. Defaults to off.\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n","willReplaceOnChanges":true}},"type":"object","required":["threadsPerCore"]},"gcp:container/ClusterNodePoolNodeConfigBootDisk:ClusterNodePoolNodeConfigBootDisk":{"properties":{"diskType":{"type":"string","description":"Type of the disk attached to each node\n(e.g. 'pd-standard', 'pd-balanced', 'pd-ssd', or 'hyperdisk-balanced'). Defaults to `hyperdisk-balanced` if `hyperdisk-balanced` is supported and `pd-balanced` is not supported for the machine type; otherwise defaults to `pd-balanced`. This is being migrated from `node_config.disk_type`, and must match if specified in both places. Prefer using this field.\n"},"provisionedIops":{"type":"integer","description":"Configure disk IOPs. This is only valid if the \u003cspan pulumi-lang-nodejs=\"`diskType`\" pulumi-lang-dotnet=\"`DiskType`\" pulumi-lang-go=\"`diskType`\" pulumi-lang-python=\"`disk_type`\" pulumi-lang-yaml=\"`diskType`\" pulumi-lang-java=\"`diskType`\"\u003e`disk_type`\u003c/span\u003e is 'hyperdisk-balanced'. See [performance limit documention](https://cloud.google.com/compute/docs/disks/hyperdisk-perf-limits) for more information about valid values.\n"},"provisionedThroughput":{"type":"integer","description":"Configure disk throughput. This is only valid if the \u003cspan pulumi-lang-nodejs=\"`diskType`\" pulumi-lang-dotnet=\"`DiskType`\" pulumi-lang-go=\"`diskType`\" pulumi-lang-python=\"`disk_type`\" pulumi-lang-yaml=\"`diskType`\" pulumi-lang-java=\"`diskType`\"\u003e`disk_type`\u003c/span\u003e is 'hyperdisk-balanced'. See [performance limit documention](https://cloud.google.com/compute/docs/disks/hyperdisk-perf-limits) for more information about valid values.\n"},"sizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified\nin GB. The smallest allowed disk size is 10GB. Defaults to 100GB. This is being migrated from `node_config.disk_size_gb`, and must match if specified in both places. Prefer using this field.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskType","provisionedIops","provisionedThroughput","sizeGb"]}}},"gcp:container/ClusterNodePoolNodeConfigConfidentialNodes:ClusterNodePoolNodeConfigConfidentialNodes":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used\nby the confidential node.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Enable Confidential GKE Nodes for this cluster, to\nenforce encryption of data in-use.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfig:ClusterNodePoolNodeConfigContainerdConfig":{"properties":{"privateRegistryAccessConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig:ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig","description":"Configuration for private container registries. There are two fields in this config:\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHost:ClusterNodePoolNodeConfigContainerdConfigRegistryHost"},"description":"Defines containerd registry host configuration. Each \u003cspan pulumi-lang-nodejs=\"`registryHosts`\" pulumi-lang-dotnet=\"`RegistryHosts`\" pulumi-lang-go=\"`registryHosts`\" pulumi-lang-python=\"`registry_hosts`\" pulumi-lang-yaml=\"`registryHosts`\" pulumi-lang-java=\"`registryHosts`\"\u003e`registry_hosts`\u003c/span\u003e entry represents a `hosts.toml` file. See [customize containerd configuration in GKE nodes](https://docs.cloud.google.com/kubernetes-engine/docs/how-to/customize-containerd-configuration#registryHosts) for more detail. Example:\n"},"writableCgroups":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigWritableCgroups:ClusterNodePoolNodeConfigContainerdConfigWritableCgroups","description":"Configuration for writable cgroups. This allows containers to have a writable `/sys/fs/cgroup` directory, which is required for some workloads to create their own sub-cgroups. The \u003cspan pulumi-lang-nodejs=\"`writableCgroups`\" pulumi-lang-dotnet=\"`WritableCgroups`\" pulumi-lang-go=\"`writableCgroups`\" pulumi-lang-python=\"`writable_cgroups`\" pulumi-lang-yaml=\"`writableCgroups`\" pulumi-lang-java=\"`writableCgroups`\"\u003e`writable_cgroups`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig:ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"List of configuration objects for CA and domains. Each object identifies a certificate and its assigned domains. See [how to configure for private container registries](https://cloud.google.com/kubernetes-engine/docs/how-to/access-private-registries-private-certificates) for more detail. Example:\n"},"enabled":{"type":"boolean","description":"Enables private registry config. If set to false, all other fields in this object must not be set.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig","description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfig"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:ClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHost:ClusterNodePoolNodeConfigContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHost:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["server"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHost:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["host"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient":{"properties":{"cert":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert","description":"Configures the client certificate.\n"},"key":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey","description":"Configures the client private key.\n"}},"type":"object","required":["cert"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader:ClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"]},"gcp:container/ClusterNodePoolNodeConfigContainerdConfigWritableCgroups:ClusterNodePoolNodeConfigContainerdConfigWritableCgroups":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolNodeConfigEffectiveTaint:ClusterNodePoolNodeConfigEffectiveTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["effect","key","value"]}}},"gcp:container/ClusterNodePoolNodeConfigEphemeralStorageConfig:ClusterNodePoolNodeConfigEphemeralStorageConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig:ClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig":{"properties":{"dataCacheCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node utilized for GKE Data Cache. If zero, then GKE Data Cache will not be enabled in the nodes.\n","willReplaceOnChanges":true},"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD is 375 GB in size. If zero, it means to disable using local SSDs as ephemeral storage.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/ClusterNodePoolNodeConfigFastSocket:ClusterNodePoolNodeConfigFastSocket":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the NCCL Fast Socket is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolNodeConfigGcfsConfig:ClusterNodePoolNodeConfigGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the Google Container Filesystem (GCFS) is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolNodeConfigGuestAccelerator:ClusterNodePoolNodeConfigGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the guest accelerator cards exposed to this instance.\n","willReplaceOnChanges":true},"gpuDriverInstallationConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig:ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig","description":"Configuration for auto installation of GPU driver. Structure is documented below.\n","willReplaceOnChanges":true},"gpuPartitionSize":{"type":"string","description":"Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig [user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).\n","willReplaceOnChanges":true},"gpuSharingConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig:ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig","description":"Configuration for GPU sharing. Structure is documented below.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource to expose to this instance. E.g. `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"],"language":{"nodejs":{"requiredOutputs":["count","gpuDriverInstallationConfig","type"]}}},"gcp:container/ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig:ClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig":{"properties":{"gpuDriverVersion":{"type":"string","description":"Mode for how the GPU driver is installed.\nAccepted values are:\n* `\"GPU_DRIVER_VERSION_UNSPECIFIED\"`: Default value is to install the \"Default\" GPU driver. Before GKE `1.30.1-gke.1156000`, the default value is to not install any GPU driver.\n* `\"INSTALLATION_DISABLED\"`: Disable GPU driver auto installation and needs manual installation.\n* `\"DEFAULT\"`: \"Default\" GPU driver in COS and Ubuntu.\n* `\"LATEST\"`: \"Latest\" GPU driver in COS.\n","willReplaceOnChanges":true}},"type":"object","required":["gpuDriverVersion"]},"gcp:container/ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig:ClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig":{"properties":{"gpuSharingStrategy":{"type":"string","description":"The type of GPU sharing strategy to enable on the GPU node.\nAccepted values are:\n* `\"TIME_SHARING\"`: Allow multiple containers to have [time-shared](https://cloud.google.com/kubernetes-engine/docs/concepts/timesharing-gpus) access to a single GPU device.\n* `\"MPS\"`: Enable co-operative multi-process CUDA workloads to run concurrently on a single GPU device with [MPS](https://cloud.google.com/kubernetes-engine/docs/how-to/nvidia-mps-gpus)\n","willReplaceOnChanges":true},"maxSharedClientsPerGpu":{"type":"integer","description":"The maximum number of containers that can share a GPU.\n","willReplaceOnChanges":true}},"type":"object","required":["gpuSharingStrategy","maxSharedClientsPerGpu"]},"gcp:container/ClusterNodePoolNodeConfigGvnic:ClusterNodePoolNodeConfigGvnic":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the Google Virtual NIC (gVNIC) is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolNodeConfigHostMaintenancePolicy:ClusterNodePoolNodeConfigHostMaintenancePolicy":{"properties":{"maintenanceInterval":{"type":"string","description":".\n","willReplaceOnChanges":true}},"type":"object","required":["maintenanceInterval"]},"gcp:container/ClusterNodePoolNodeConfigKubeletConfig:ClusterNodePoolNodeConfigKubeletConfig":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns which can be set on the Pods. The allowed sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`.\n"},"containerLogMaxFiles":{"type":"integer","description":"Defines the maximum number of container log files that can be present for a container. The integer must be between 2 and 10, inclusive.\n"},"containerLogMaxSize":{"type":"string","description":"Defines the maximum size of the\ncontainer log file before it is rotated. Specified as a positive number and a\nunit suffix, such as `\"100Ki\"`, `\"10Mi\"`. Valid units are \"Ki\", \"Mi\", \"Gi\".\nThe value must be between `\"10Mi\"` and `\"500Mi\"`, inclusive. And the total container log size\n(\u003cspan pulumi-lang-nodejs=\"`containerLogMaxSize`\" pulumi-lang-dotnet=\"`ContainerLogMaxSize`\" pulumi-lang-go=\"`containerLogMaxSize`\" pulumi-lang-python=\"`container_log_max_size`\" pulumi-lang-yaml=\"`containerLogMaxSize`\" pulumi-lang-java=\"`containerLogMaxSize`\"\u003e`container_log_max_size`\u003c/span\u003e * \u003cspan pulumi-lang-nodejs=\"`containerLogMaxFiles`\" pulumi-lang-dotnet=\"`ContainerLogMaxFiles`\" pulumi-lang-go=\"`containerLogMaxFiles`\" pulumi-lang-python=\"`container_log_max_files`\" pulumi-lang-yaml=\"`containerLogMaxFiles`\" pulumi-lang-java=\"`containerLogMaxFiles`\"\u003e`container_log_max_files`\u003c/span\u003e) cannot exceed 1% of the total storage of the node.\n"},"cpuCfsQuota":{"type":"boolean","description":"If true, enables CPU CFS quota enforcement for\ncontainers that specify CPU limits.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"The CPU CFS quota period value. Specified\nas a sequence of decimal numbers, each with optional fraction and a unit suffix,\nsuch as `\"300ms\"`. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\",\n\"h\". The value must be a positive duration.\n"},"cpuManagerPolicy":{"type":"string","description":"The CPU management policy on the node. See\n[K8S CPU Management Policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/).\nOne of `\"none\"` or `\"static\"`. If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"none\".\nPrior to the 6.4.0 this field was marked as required. The workaround for the required field\nis setting the empty string `\"\"`, which will function identically to not setting this field.\n"},"evictionMaxPodGracePeriodSeconds":{"type":"integer","description":"Defines the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. The integer must be positive and not exceed 300.\n"},"evictionMinimumReclaim":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim:ClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim","description":"Defines a map of signal names to percentage that defines minimum reclaims. It describes the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction. Structure is documented below.\n"},"evictionSoft":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigKubeletConfigEvictionSoft:ClusterNodePoolNodeConfigKubeletConfigEvictionSoft","description":"Defines a map of signal names to quantities or percentage that defines soft eviction thresholds. Structure is documented below.\n"},"evictionSoftGracePeriod":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod:ClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod","description":"Defines a map of signal names to durations that defines grace periods for soft eviction thresholds. Each soft eviction threshold must have a corresponding grace period. Structure is documented below.\n"},"imageGcHighThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage after which image garbage collection is always run. The integer must be between 10 and 85, inclusive.\n"},"imageGcLowThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The integer must be between 10 and 85, inclusive.\n"},"imageMaximumGcAge":{"type":"string","description":"Defines the maximum age an image can be unused before it is garbage collected. Specified as a sequence of decimal numbers, each with optional fraction and a unit suffix, such as `\"300s\"`, `\"1.5m\"`, and `\"2h45m\"`. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\". The value must be a positive duration.\n"},"imageMinimumGcAge":{"type":"string","description":"Defines the minimum age for an unused image before it is garbage collected. Specified as a sequence of decimal numbers, each with optional fraction and a unit suffix, such as `\"300s\"`, `\"1.5m\"`. The value cannot be greater than \"2m\".\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"maxParallelImagePulls":{"type":"integer","description":"Set the maximum number of image pulls in parallel. The integer must be between 2 and 5, inclusive.\n"},"memoryManager":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigKubeletConfigMemoryManager:ClusterNodePoolNodeConfigKubeletConfigMemoryManager","description":"Configuration for the [memory manager](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/) on the node.\nThe memory manager optimizes memory and hugepages allocation for pods, especially\nthose in the Guaranteed QoS class, by influencing NUMA affinity. Structure is documented below.\n"},"podPidsLimit":{"type":"integer","description":"Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.\n"},"singleProcessOomKill":{"type":"boolean","description":"Defines whether to enable single process OOM killer. If true, the processes in the container will be OOM killed individually instead of as a group.\n"},"topologyManager":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigKubeletConfigTopologyManager:ClusterNodePoolNodeConfigKubeletConfigTopologyManager","description":"These settings control the kubelet's [Topology Manager policy](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies), which coordinates the set of components responsible for performance optimizations related to CPU isolation, memory, and device locality. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpuCfsQuota","insecureKubeletReadonlyPortEnabled","maxParallelImagePulls"]}}},"gcp:container/ClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim:ClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.inodesFree. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"memoryAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for memory.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.inodesFree. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for pid.available. The value must be a percentage no more than `\"10%\"`, such as `\"5%\"`.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigKubeletConfigEvictionSoft:ClusterNodePoolNodeConfigKubeletConfigEvictionSoft":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.available. The value must be a percentage between `15%` and `50%`, such as `\"20%\"`.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.inodesFree. The value must be a percentage between `5%` and `50%`, such as `\"20%\"`.\n"},"memoryAvailable":{"type":"string","description":"Defines quantity of soft eviction threshold for memory.available. The value must be a quantity, such as `\"100Mi\"`. The value must be greater than or equal to the GKE default hard eviction threshold of `\"100Mi\"` and less than 50% of machine memory.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.available. The value must be a percentage between `10%` and `50%`, such as `\"20%\"`.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.inodesFree. The value must be a percentage between `5%` and `50%`, such as `\"20%\"`.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for pid.available. The value must be a percentage between `10%` and `50%`, such as `\"20%\"`.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod:ClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines grace period for the imagefs.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"imagefsInodesFree":{"type":"string","description":"Defines grace period for the imagefs.inodesFree soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"memoryAvailable":{"type":"string","description":"Defines grace period for the memory.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`, such as `\"30s\"`, `\"1m30s\"`, `\"2.5m\"`. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\".\n"},"nodefsAvailable":{"type":"string","description":"Defines grace period for the nodefs.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"nodefsInodesFree":{"type":"string","description":"Defines grace period for the nodefs.inodesFree soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"},"pidAvailable":{"type":"string","description":"Defines grace period for the pid.available soft eviction threshold. The value must be a positive duration string no more than `\"5m\"`.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigKubeletConfigMemoryManager:ClusterNodePoolNodeConfigKubeletConfigMemoryManager":{"properties":{"policy":{"type":"string","description":"The [Memory\nManager](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/)\npolicy can be set to None (default) or Static. This policy dictates how memory alignment is handled on the node.  If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"None\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["policy"]}}},"gcp:container/ClusterNodePoolNodeConfigKubeletConfigTopologyManager:ClusterNodePoolNodeConfigKubeletConfigTopologyManager":{"properties":{"policy":{"type":"string","description":"The Topology Manager policy controls resource alignment on the node and can be set to one of the following: none (default), best-effort, restricted, or single-numa-node.  If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"none\".\n"},"scope":{"type":"string","description":"The Topology Manager scope, defining the granularity at which\npolicy decisions are applied. Valid values are \"container\" (resources are aligned\nper container within a pod which is set by default) or \"pod\" (resources are aligned for the entire pod).  If unset (or set to the empty string `\"\"`), the API will treat the field as if set to \"container\".\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["policy","scope"]}}},"gcp:container/ClusterNodePoolNodeConfigLinuxNodeConfig:ClusterNodePoolNodeConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"Possible cgroup modes that can be used.\nAccepted values are:\n* `CGROUP_MODE_UNSPECIFIED`: CGROUP_MODE_UNSPECIFIED is when unspecified cgroup configuration is used. The default for the GKE node OS image will be used.\n* `CGROUP_MODE_V1`: CGROUP_MODE_V1 specifies to use cgroupv1 for the cgroup configuration on the node image.\n* `CGROUP_MODE_V2`: CGROUP_MODE_V2 specifies to use cgroupv2 for the cgroup configuration on the node image.\n"},"hugepagesConfig":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig:ClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig","description":"Amounts for 2M and 1G hugepages. Structure is documented below.\n"},"nodeKernelModuleLoading":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading:ClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading","description":"Settings for kernel module loading. Structure is documented below.\n"},"sysctls":{"type":"object","additionalProperties":{"type":"string"},"description":"The Linux kernel parameters to be applied to the nodes\nand all pods running on the nodes. Specified as a map from the key, such as\n`net.core.wmem_max`, to a string value. Currently supported attributes can be found [here](https://cloud.google.com/sdk/gcloud/reference/beta/container/node-pools/create#--system-config-from-file).\nNote that validations happen all server side. All attributes are optional.\n\n"},"transparentHugepageDefrag":{"type":"string","description":"The Linux kernel transparent hugepage defrag setting.\n"},"transparentHugepageEnabled":{"type":"string","description":"The Linux kernel transparent hugepage setting.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cgroupMode","transparentHugepageEnabled"]}}},"gcp:container/ClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig:ClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig":{"properties":{"hugepageSize1g":{"type":"integer","description":"Amount of 1G hugepages.\n"},"hugepageSize2m":{"type":"integer","description":"Amount of 2M hugepages.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading:ClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"Possible kernel module loading policies.\nAccepted values are:\n* `POLICY_UNSPECIFIED`: Default if unset. GKE selects the image based on node type. For CPU and TPU nodes, the image will not allow loading external kernel modules. For GPU nodes, the image will allow loading any module, whether it is signed or not.\n* `ENFORCE_SIGNED_MODULES`: Enforced signature verification: Node pools will use a Container-Optimized OS image configured to allow loading of *Google-signed* external kernel modules. Loadpin is enabled but configured to exclude modules, and kernel module signature checking is enforced.\n* `DO_NOT_ENFORCE_SIGNED_MODULES`: Mirrors existing DEFAULT behavior: For CPU and TPU nodes, the image will not allow loading external kernel modules. For GPU nodes, the image will allow loading any module, whether it is signed or not.\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig:ClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD disks to be attached to the node.\n\u003e Note: Local NVMe SSD storage available in GKE versions v1.25.3-gke.1800 and later.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/ClusterNodePoolNodeConfigReservationAffinity:ClusterNodePoolNodeConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"The type of reservation consumption\nAccepted values are:\n\n* `\"UNSPECIFIED\"`: Default value. This should not be used.\n* `\"NO_RESERVATION\"`: Do not consume from any reserved capacity.\n* `\"ANY_RESERVATION\"`: Consume any reservation available.\n* `\"SPECIFIC_RESERVATION\"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"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 its value.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"The list of label values of reservation resources. For example: the name of the specific reservation when using a key of \"compute.googleapis.com/reservation-name\"\n","willReplaceOnChanges":true}},"type":"object","required":["consumeReservationType"]},"gcp:container/ClusterNodePoolNodeConfigSandboxConfig:ClusterNodePoolNodeConfigSandboxConfig":{"properties":{"sandboxType":{"type":"string","description":"Which sandbox to use for pods in the node pool.\nAccepted values are:\n\n* `\"gvisor\"`: Pods run within a gVisor sandbox.\n"}},"type":"object","required":["sandboxType"]},"gcp:container/ClusterNodePoolNodeConfigSecondaryBootDisk:ClusterNodePoolNodeConfigSecondaryBootDisk":{"properties":{"diskImage":{"type":"string","description":"Path to disk image to create the secondary boot disk from. After using the [gke-disk-image-builder](https://github.com/GoogleCloudPlatform/ai-on-gke/tree/main/tools/gke-disk-image-builder), this argument should be `global/images/DISK_IMAGE_NAME`.\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Mode for how the secondary boot disk is used. An example mode is `CONTAINER_IMAGE_CACHE`.\n","willReplaceOnChanges":true}},"type":"object","required":["diskImage"]},"gcp:container/ClusterNodePoolNodeConfigShieldedInstanceConfig:ClusterNodePoolNodeConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines if the instance has integrity monitoring enabled.\n\nEnables monitoring and attestation of the boot integrity of the instance. The attestation is performed against the integrity policy baseline. This baseline is initially derived from the implicitly trusted boot image when the instance is created.  Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"enableSecureBoot":{"type":"boolean","description":"Defines if the instance has Secure Boot enabled.\n\nSecure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.  Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigSoleTenantConfig:ClusterNodePoolNodeConfigSoleTenantConfig":{"properties":{"minNodeCpus":{"type":"integer","description":"Specifies the minimum number of vCPUs that each sole tenant node must have to use CPU overcommit. If not specified, the CPU overcommit feeature is disabled. The value should be greater than or equal to half of the machine type's CPU count.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity:ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity"},"description":"The node affinity settings for the sole tenant node pool. Structure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["nodeAffinities"]},"gcp:container/ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity:ClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity":{"properties":{"key":{"type":"string","description":"The default or custom node affinity label key name.\n","willReplaceOnChanges":true},"operator":{"type":"string","description":"Specifies affinity or anti-affinity. Accepted values are `\"IN\"` or `\"NOT_IN\"`\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"List of node affinity label values as strings.\n","willReplaceOnChanges":true}},"type":"object","required":["key","operator","values"]},"gcp:container/ClusterNodePoolNodeConfigTaint:ClusterNodePoolNodeConfigTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint. Accepted values are `NO_SCHEDULE`, `PREFER_NO_SCHEDULE`, and `NO_EXECUTE`.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"]},"gcp:container/ClusterNodePoolNodeConfigWindowsNodeConfig:ClusterNodePoolNodeConfigWindowsNodeConfig":{"properties":{"osversion":{"type":"string","description":"The OS Version of the windows nodepool.Values are OS_VERSION_UNSPECIFIED,OS_VERSION_LTSC2019 and OS_VERSION_LTSC2022\n"}},"type":"object"},"gcp:container/ClusterNodePoolNodeConfigWorkloadMetadataConfig:ClusterNodePoolNodeConfigWorkloadMetadataConfig":{"properties":{"mode":{"type":"string","description":"How to expose the node metadata to the workload running on the node.\nAccepted values are:\n* UNSPECIFIED: Not Set\n* GCE_METADATA: Expose all Compute Engine metadata to pods.\n* GKE_METADATA: Run the GKE Metadata Server on this node. The GKE Metadata Server exposes a metadata API to workloads that is compatible with the V1 Compute Metadata APIs exposed by the Compute Engine and App Engine Metadata Servers. This feature can only be enabled if [workload identity](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity) is enabled at the cluster level.\n"}},"type":"object","required":["mode"]},"gcp:container/ClusterNodePoolNodeDrainConfig:ClusterNodePoolNodeDrainConfig":{"properties":{"respectPdbDuringNodePoolDeletion":{"type":"boolean","description":"Whether to respect PodDisruptionBudget policy during node pool deletion.\n"}},"type":"object"},"gcp:container/ClusterNodePoolPlacementPolicy:ClusterNodePoolPlacementPolicy":{"properties":{"policyName":{"type":"string","description":"If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.\n","willReplaceOnChanges":true},"tpuTopology":{"type":"string","description":"The TPU topology like \"2x4\" or \"2x2x2\". https://cloud.google.com/kubernetes-engine/docs/concepts/plan-tpus#topology\n"},"type":{"type":"string","description":"Telemetry integration for the cluster. Supported values (`ENABLED, DISABLED, SYSTEM_ONLY`);\n`SYSTEM_ONLY` (Only system components are monitored and logged) is only available in GKE versions 1.15 and later.\n"}},"type":"object","required":["type"]},"gcp:container/ClusterNodePoolQueuedProvisioning:ClusterNodePoolQueuedProvisioning":{"properties":{"enabled":{"type":"boolean","description":"Whether nodes in this node pool are obtainable solely through the ProvisioningRequest API\n","willReplaceOnChanges":true}},"type":"object","required":["enabled"]},"gcp:container/ClusterNodePoolUpgradeSettings:ClusterNodePoolUpgradeSettings":{"properties":{"blueGreenSettings":{"$ref":"#/types/gcp:container/ClusterNodePoolUpgradeSettingsBlueGreenSettings:ClusterNodePoolUpgradeSettingsBlueGreenSettings","description":"Settings for blue-green upgrade strategy. To be specified when strategy is set to BLUE_GREEN. Structure is documented below.\n"},"maxSurge":{"type":"integer","description":"The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process. To be used when strategy is set to SURGE. Default is 0.\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be simultaneously unavailable during the upgrade process. To be used when strategy is set to SURGE. Default is 0.\n"},"strategy":{"type":"string","description":"Strategy used for node pool update. Strategy can only be one of BLUE_GREEN or SURGE. The default is value is SURGE.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["blueGreenSettings","maxSurge","maxUnavailable"]}}},"gcp:container/ClusterNodePoolUpgradeSettingsBlueGreenSettings:ClusterNodePoolUpgradeSettingsBlueGreenSettings":{"properties":{"autoscaledRolloutPolicy":{"$ref":"#/types/gcp:container/ClusterNodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy:ClusterNodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy","description":"Autoscaled rollout policy for blue-green upgrade.\n"},"nodePoolSoakDuration":{"type":"string","description":"Time needed after draining entire blue pool. After this period, blue pool will be cleaned up. A duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"standardRolloutPolicy":{"$ref":"#/types/gcp:container/ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy:ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy","description":"Standard policy for the blue-green upgrade. To be specified when strategy is set to BLUE_GREEN. Structure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodePoolSoakDuration"]}}},"gcp:container/ClusterNodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy:ClusterNodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy":{"properties":{"waitForDrainDuration":{"type":"string","description":"Time in seconds to wait after cordoning the blue pool before draining the nodes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["waitForDrainDuration"]}}},"gcp:container/ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy:ClusterNodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy":{"properties":{"batchNodeCount":{"type":"integer","description":"Number of blue nodes to drain in a batch. Only one of the\u003cspan pulumi-lang-nodejs=\" batchPercentage \" pulumi-lang-dotnet=\" BatchPercentage \" pulumi-lang-go=\" batchPercentage \" pulumi-lang-python=\" batch_percentage \" pulumi-lang-yaml=\" batchPercentage \" pulumi-lang-java=\" batchPercentage \"\u003e batch_percentage \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" batchNodeCount \" pulumi-lang-dotnet=\" BatchNodeCount \" pulumi-lang-go=\" batchNodeCount \" pulumi-lang-python=\" batch_node_count \" pulumi-lang-yaml=\" batchNodeCount \" pulumi-lang-java=\" batchNodeCount \"\u003e batch_node_count \u003c/span\u003ecan be specified.\n"},"batchPercentage":{"type":"number","description":"Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0). Only one of the\u003cspan pulumi-lang-nodejs=\" batchPercentage \" pulumi-lang-dotnet=\" BatchPercentage \" pulumi-lang-go=\" batchPercentage \" pulumi-lang-python=\" batch_percentage \" pulumi-lang-yaml=\" batchPercentage \" pulumi-lang-java=\" batchPercentage \"\u003e batch_percentage \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" batchNodeCount \" pulumi-lang-dotnet=\" BatchNodeCount \" pulumi-lang-go=\" batchNodeCount \" pulumi-lang-python=\" batch_node_count \" pulumi-lang-yaml=\" batchNodeCount \" pulumi-lang-java=\" batchNodeCount \"\u003e batch_node_count \u003c/span\u003ecan be specified.\n"},"batchSoakDuration":{"type":"string","description":"Soak time after each batch gets drained. A duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["batchNodeCount","batchPercentage","batchSoakDuration"]}}},"gcp:container/ClusterNotificationConfig:ClusterNotificationConfig":{"properties":{"pubsub":{"$ref":"#/types/gcp:container/ClusterNotificationConfigPubsub:ClusterNotificationConfigPubsub","description":"The pubsub config for the cluster's upgrade notifications.\n"}},"type":"object","required":["pubsub"]},"gcp:container/ClusterNotificationConfigPubsub:ClusterNotificationConfigPubsub":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the notification config is enabled\n"},"filter":{"$ref":"#/types/gcp:container/ClusterNotificationConfigPubsubFilter:ClusterNotificationConfigPubsubFilter","description":"Choose what type of notifications you want to receive. If no filters are applied, you'll receive all notification types. Structure is documented below.\n\n"},"topic":{"type":"string","description":"The pubsub topic to push upgrade notifications to. Must be in the same project as the cluster. Must be in the format: `projects/{project}/topics/{topic}`.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterNotificationConfigPubsubFilter:ClusterNotificationConfigPubsubFilter":{"properties":{"eventTypes":{"type":"array","items":{"type":"string"},"description":"Can be used to filter what notifications are sent. Accepted values are `UPGRADE_AVAILABLE_EVENT`, `UPGRADE_EVENT`, `SECURITY_BULLETIN_EVENT` and `UPGRADE_INFO_EVENT`. See [Filtering notifications](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-notifications#filtering) for more details.\n"}},"type":"object","required":["eventTypes"]},"gcp:container/ClusterPodAutoscaling:ClusterPodAutoscaling":{"properties":{"hpaProfile":{"type":"string","description":"Enable the Horizontal Pod Autoscaling profile for this cluster.\nAcceptable values are:\n* `\"NONE\"`: Customers explicitly opt-out of HPA profiles.\n* `\"PERFORMANCE\"`: PERFORMANCE is used when customers opt-in to the performance HPA profile. In this profile we support a higher number of HPAs per cluster and faster metrics collection for workload autoscaling.\nSee [HPAProfile](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters#hpaprofile) for more details.\n"}},"type":"object","required":["hpaProfile"]},"gcp:container/ClusterPodSecurityPolicyConfig:ClusterPodSecurityPolicyConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the PodSecurityPolicy controller for this cluster.\nIf enabled, pods must be valid under a PodSecurityPolicy to be created.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterPrivateClusterConfig:ClusterPrivateClusterConfig":{"properties":{"enablePrivateEndpoint":{"type":"boolean","description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the cluster's private\nendpoint is used as the cluster endpoint and access through the public endpoint\nis disabled. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, either endpoint can be used. This field only applies\nto private clusters, when \u003cspan pulumi-lang-nodejs=\"`enablePrivateNodes`\" pulumi-lang-dotnet=\"`EnablePrivateNodes`\" pulumi-lang-go=\"`enablePrivateNodes`\" pulumi-lang-python=\"`enable_private_nodes`\" pulumi-lang-yaml=\"`enablePrivateNodes`\" pulumi-lang-java=\"`enablePrivateNodes`\"\u003e`enable_private_nodes`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enablePrivateNodes":{"type":"boolean","description":"Enables the private cluster feature,\ncreating a private endpoint on the cluster. In a private cluster, nodes only\nhave RFC 1918 private addresses and communicate with the master's private\nendpoint via private networking.\n"},"masterGlobalAccessConfig":{"$ref":"#/types/gcp:container/ClusterPrivateClusterConfigMasterGlobalAccessConfig:ClusterPrivateClusterConfigMasterGlobalAccessConfig","description":"Controls cluster master global\naccess settings. If unset, the provider will no longer manage this field and will\nnot modify the previously-set value. Structure is documented below.\n"},"masterIpv4CidrBlock":{"type":"string","description":"The IP range in CIDR notation to use for\nthe hosted master network. This range will be used for assigning private IP\naddresses to the cluster master(s) and the ILB VIP. This range must not overlap\nwith any other ranges in use within the cluster's network, and it must be a /28\nsubnet. See [Private Cluster Limitations](https://cloud.google.com/kubernetes-engine/docs/how-to/private-clusters#req_res_lim)\nfor more details. This field only applies to private clusters, when\n\u003cspan pulumi-lang-nodejs=\"`enablePrivateNodes`\" pulumi-lang-dotnet=\"`EnablePrivateNodes`\" pulumi-lang-go=\"`enablePrivateNodes`\" pulumi-lang-python=\"`enable_private_nodes`\" pulumi-lang-yaml=\"`enablePrivateNodes`\" pulumi-lang-java=\"`enablePrivateNodes`\"\u003e`enable_private_nodes`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"peeringName":{"type":"string","description":"The name of the peering between this cluster and the Google owned VPC.\n"},"privateEndpoint":{"type":"string","description":"The internal IP address of this cluster's master endpoint.\n"},"privateEndpointSubnetwork":{"type":"string","description":"Subnetwork in cluster's network where master's endpoint will be provisioned.\n","willReplaceOnChanges":true},"publicEndpoint":{"type":"string","description":"The external IP address of this cluster's master endpoint.\n\n!\u003e The Google provider is unable to validate certain configurations of\n\u003cspan pulumi-lang-nodejs=\"`privateClusterConfig`\" pulumi-lang-dotnet=\"`PrivateClusterConfig`\" pulumi-lang-go=\"`privateClusterConfig`\" pulumi-lang-python=\"`private_cluster_config`\" pulumi-lang-yaml=\"`privateClusterConfig`\" pulumi-lang-java=\"`privateClusterConfig`\"\u003e`private_cluster_config`\u003c/span\u003e when \u003cspan pulumi-lang-nodejs=\"`enablePrivateNodes`\" pulumi-lang-dotnet=\"`EnablePrivateNodes`\" pulumi-lang-go=\"`enablePrivateNodes`\" pulumi-lang-python=\"`enable_private_nodes`\" pulumi-lang-yaml=\"`enablePrivateNodes`\" pulumi-lang-java=\"`enablePrivateNodes`\"\u003e`enable_private_nodes`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. It's\nrecommended that you omit the block entirely if the field is not set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["masterGlobalAccessConfig","masterIpv4CidrBlock","peeringName","privateEndpoint","publicEndpoint"]}}},"gcp:container/ClusterPrivateClusterConfigMasterGlobalAccessConfig:ClusterPrivateClusterConfigMasterGlobalAccessConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether the cluster master is accessible globally or\nnot.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterProtectConfig:ClusterProtectConfig":{"properties":{"workloadConfig":{"$ref":"#/types/gcp:container/ClusterProtectConfigWorkloadConfig:ClusterProtectConfigWorkloadConfig","description":") WorkloadConfig defines which actions are enabled for a cluster's workload configurations. Structure is documented below\n"},"workloadVulnerabilityMode":{"type":"string","description":") Sets which mode to use for Protect workload vulnerability scanning feature. Accepted values are DISABLED, BASIC.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["workloadConfig","workloadVulnerabilityMode"]}}},"gcp:container/ClusterProtectConfigWorkloadConfig:ClusterProtectConfigWorkloadConfig":{"properties":{"auditMode":{"type":"string","description":") Sets which mode of auditing should be used for the cluster's workloads. Accepted values are DISABLED, BASIC.\n"}},"type":"object","required":["auditMode"]},"gcp:container/ClusterRbacBindingConfig:ClusterRbacBindingConfig":{"properties":{"enableInsecureBindingSystemAuthenticated":{"type":"boolean","description":"Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.\n\n\n## Attributes Reference\n\nIn addition to the arguments listed above, the following computed attributes are\nexported:\n"},"enableInsecureBindingSystemUnauthenticated":{"type":"boolean","description":"Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:anonymous or system:unauthenticated.\n"}},"type":"object"},"gcp:container/ClusterReleaseChannel:ClusterReleaseChannel":{"properties":{"channel":{"type":"string","description":"The selected release channel.\nAccepted values are:\n* UNSPECIFIED: Not set.\n* RAPID: Weekly upgrade cadence; Early testers and developers who requires new features.\n* REGULAR: Multiple per month upgrade cadence; Production users who need features not yet offered in the Stable channel.\n* STABLE: Every few months upgrade cadence; Production users who need stability above all else, and for whom frequent upgrades are too risky.\n* EXTENDED: GKE provides extended support for Kubernetes minor versions through the Extended channel. With this channel, you can stay on a minor version for up to 24 months.\n"}},"type":"object","required":["channel"]},"gcp:container/ClusterResourceUsageExportConfig:ClusterResourceUsageExportConfig":{"properties":{"bigqueryDestination":{"$ref":"#/types/gcp:container/ClusterResourceUsageExportConfigBigqueryDestination:ClusterResourceUsageExportConfigBigqueryDestination","description":"Parameters for using BigQuery as the destination of resource usage export.\n\n* `bigquery_destination.dataset_id` (Required) - The ID of a BigQuery Dataset. For Example:\n\n"},"enableNetworkEgressMetering":{"type":"boolean","description":"Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created\nin the cluster to meter network egress traffic.\n"},"enableResourceConsumptionMetering":{"type":"boolean","description":"Whether to enable resource\nconsumption metering on this cluster. When enabled, a table will be created in\nthe resource export BigQuery dataset to store resource consumption data. The\nresulting table can be joined with the resource usage table or with BigQuery\nbilling export. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object","required":["bigqueryDestination"]},"gcp:container/ClusterResourceUsageExportConfigBigqueryDestination:ClusterResourceUsageExportConfigBigqueryDestination":{"properties":{"datasetId":{"type":"string","description":"The ID of a BigQuery Dataset.\n"}},"type":"object","required":["datasetId"]},"gcp:container/ClusterSecretManagerConfig:ClusterSecretManagerConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the Secret Manager add-on for this cluster.\n"},"rotationConfig":{"$ref":"#/types/gcp:container/ClusterSecretManagerConfigRotationConfig:ClusterSecretManagerConfigRotationConfig","description":"config for secret manager auto rotation. Structure is docuemented below\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","rotationConfig"]}}},"gcp:container/ClusterSecretManagerConfigRotationConfig:ClusterSecretManagerConfigRotationConfig":{"properties":{"enabled":{"type":"boolean","description":") - Enable the roation in Sync as K8s secret feature for this cluster.\n"},"rotationInterval":{"type":"string","description":") - The interval between two consecutive rotations. Default rotation interval is 2 minutes.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","rotationInterval"]}}},"gcp:container/ClusterSecretSyncConfig:ClusterSecretSyncConfig":{"properties":{"enabled":{"type":"boolean","description":") - Enable the Sync as K8s secret feature for this cluster.\n"},"rotationConfig":{"$ref":"#/types/gcp:container/ClusterSecretSyncConfigRotationConfig:ClusterSecretSyncConfigRotationConfig","description":") - config for secret sync auto rotation. Structure is docuemented below\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","rotationConfig"]}}},"gcp:container/ClusterSecretSyncConfigRotationConfig:ClusterSecretSyncConfigRotationConfig":{"properties":{"enabled":{"type":"boolean","description":") - Enable the roation in Sync as K8s secret feature for this cluster.\n"},"rotationInterval":{"type":"string","description":") - The interval between two consecutive rotations. Default rotation interval is 2 minutes.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","rotationInterval"]}}},"gcp:container/ClusterSecurityPostureConfig:ClusterSecurityPostureConfig":{"properties":{"mode":{"type":"string","description":"Sets the mode of the Kubernetes security posture API's off-cluster features. Available options include `DISABLED`, `BASIC`, and `ENTERPRISE`.\n"},"vulnerabilityMode":{"type":"string","description":"Sets the mode of the Kubernetes security posture API's workload vulnerability scanning. Available options include `VULNERABILITY_DISABLED`, `VULNERABILITY_BASIC` and `VULNERABILITY_ENTERPRISE`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["mode","vulnerabilityMode"]}}},"gcp:container/ClusterServiceExternalIpsConfig:ClusterServiceExternalIpsConfig":{"properties":{"enabled":{"type":"boolean","description":"Controls whether external ips specified by a service will be allowed. It is enabled by default.\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterTpuConfig:ClusterTpuConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether Cloud TPU integration is enabled or not\n","willReplaceOnChanges":true},"ipv4CidrBlock":{"type":"string","description":"IPv4 CIDR block reserved for Cloud TPU in the VPC.\n"},"useServiceNetworking":{"type":"boolean","description":"Whether to use service networking for Cloud TPU or not\n","willReplaceOnChanges":true}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","ipv4CidrBlock"]}}},"gcp:container/ClusterUserManagedKeysConfig:ClusterUserManagedKeysConfig":{"properties":{"aggregationCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the aggreation CA in this cluster.\n","willReplaceOnChanges":true},"clusterCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the cluster CA in this cluster.\n","willReplaceOnChanges":true},"controlPlaneDiskEncryptionKey":{"type":"string","description":"The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.\n"},"etcdApiCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the etcd API CA in this cluster.\n","willReplaceOnChanges":true},"etcdPeerCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the etcd peer CA in this cluster.\n","willReplaceOnChanges":true},"gkeopsEtcdBackupEncryptionKey":{"type":"string","description":"Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.\n"},"serviceAccountSigningKeys":{"type":"array","items":{"type":"string"},"description":"The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster.\n"},"serviceAccountVerificationKeys":{"type":"array","items":{"type":"string"},"description":"The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster.\n"}},"type":"object"},"gcp:container/ClusterVerticalPodAutoscaling:ClusterVerticalPodAutoscaling":{"properties":{"enabled":{"type":"boolean","description":"Enables vertical pod autoscaling\n"}},"type":"object","required":["enabled"]},"gcp:container/ClusterWorkloadAltsConfig:ClusterWorkloadAltsConfig":{"properties":{"enableAlts":{"type":"boolean","description":"Whether the alts handshaker should be enabled or not for direct-path. Requires Workload Identity (workloadPool) must be non-empty).\n"}},"type":"object","required":["enableAlts"]},"gcp:container/ClusterWorkloadIdentityConfig:ClusterWorkloadIdentityConfig":{"properties":{"workloadPool":{"type":"string","description":"The workload pool to attach all Kubernetes service accounts to.\n\n"}},"type":"object"},"gcp:container/NodePoolAutoscaling:NodePoolAutoscaling":{"properties":{"locationPolicy":{"type":"string","description":"Location policy specifies the algorithm used when\nscaling-up the node pool. Location policy is supported only in 1.24.1+ clusters.\n* \"BALANCED\" - Is a best effort policy that aims to balance the sizes of available zones.\n* \"ANY\" - Instructs the cluster autoscaler to prioritize utilization of unused reservations,\nand reduce preemption risk for Spot VMs.\n"},"maxNodeCount":{"type":"integer","description":"Maximum number of nodes per zone in the NodePool.\nMust be \u003e= min_node_count. Cannot be used with total limits.\n"},"minNodeCount":{"type":"integer","description":"Minimum number of nodes per zone in the NodePool.\nMust be \u003e=0 and \u003c= \u003cspan pulumi-lang-nodejs=\"`maxNodeCount`\" pulumi-lang-dotnet=\"`MaxNodeCount`\" pulumi-lang-go=\"`maxNodeCount`\" pulumi-lang-python=\"`max_node_count`\" pulumi-lang-yaml=\"`maxNodeCount`\" pulumi-lang-java=\"`maxNodeCount`\"\u003e`max_node_count`\u003c/span\u003e. Cannot be used with total limits.\n"},"totalMaxNodeCount":{"type":"integer","description":"Total maximum number of nodes in the NodePool.\nMust be \u003e= total_min_node_count. Cannot be used with per zone limits.\nTotal size limits are supported only in 1.24.1+ clusters.\n"},"totalMinNodeCount":{"type":"integer","description":"Total minimum number of nodes in the NodePool.\nMust be \u003e=0 and \u003c= \u003cspan pulumi-lang-nodejs=\"`totalMaxNodeCount`\" pulumi-lang-dotnet=\"`TotalMaxNodeCount`\" pulumi-lang-go=\"`totalMaxNodeCount`\" pulumi-lang-python=\"`total_max_node_count`\" pulumi-lang-yaml=\"`totalMaxNodeCount`\" pulumi-lang-java=\"`totalMaxNodeCount`\"\u003e`total_max_node_count`\u003c/span\u003e. Cannot be used with per zone limits.\nTotal size limits are supported only in 1.24.1+ clusters.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["locationPolicy"]}}},"gcp:container/NodePoolManagement:NodePoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Whether the nodes will be automatically repaired. Enabled by default.\n"},"autoUpgrade":{"type":"boolean","description":"Whether the nodes will be automatically upgraded. Enabled by default.\n"}},"type":"object"},"gcp:container/NodePoolNetworkConfig:NodePoolNetworkConfig":{"properties":{"acceleratorNetworkProfile":{"type":"string","description":") - Specifies the accelerator network profile for nodes in this node pool. Setting to `\"auto\"` enables GKE to automatically configure high-performance networking settings for nodes with accelerators (like GPUs). GKE manages the underlying resources (like VPCs and subnets) for this configuration.\n","willReplaceOnChanges":true},"additionalNodeNetworkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNetworkConfigAdditionalNodeNetworkConfig:NodePoolNetworkConfigAdditionalNodeNetworkConfig"},"description":"We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface.\nStructure is documented below\n","willReplaceOnChanges":true},"additionalPodNetworkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNetworkConfigAdditionalPodNetworkConfig:NodePoolNetworkConfigAdditionalPodNetworkConfig"},"description":"We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node.\nStructure is documented below\n","willReplaceOnChanges":true},"createPodRange":{"type":"boolean","description":"Whether to create a new range for pod IPs in this node pool. Defaults are provided for \u003cspan pulumi-lang-nodejs=\"`podRange`\" pulumi-lang-dotnet=\"`PodRange`\" pulumi-lang-go=\"`podRange`\" pulumi-lang-python=\"`pod_range`\" pulumi-lang-yaml=\"`podRange`\" pulumi-lang-java=\"`podRange`\"\u003e`pod_range`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`podIpv4CidrBlock`\" pulumi-lang-dotnet=\"`PodIpv4CidrBlock`\" pulumi-lang-go=\"`podIpv4CidrBlock`\" pulumi-lang-python=\"`pod_ipv4_cidr_block`\" pulumi-lang-yaml=\"`podIpv4CidrBlock`\" pulumi-lang-java=\"`podIpv4CidrBlock`\"\u003e`pod_ipv4_cidr_block`\u003c/span\u003e if they are not specified.\n","willReplaceOnChanges":true},"enablePrivateNodes":{"type":"boolean","description":"Whether nodes have internal IP addresses only.\n"},"networkPerformanceConfig":{"$ref":"#/types/gcp:container/NodePoolNetworkConfigNetworkPerformanceConfig:NodePoolNetworkConfigNetworkPerformanceConfig","description":"Network bandwidth tier configuration. Structure is documented below.\n"},"podCidrOverprovisionConfig":{"$ref":"#/types/gcp:container/NodePoolNetworkConfigPodCidrOverprovisionConfig:NodePoolNetworkConfigPodCidrOverprovisionConfig","description":"Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited. Structure is documented below.\n","willReplaceOnChanges":true},"podIpv4CidrBlock":{"type":"string","description":"The IP address range for pod IPs in this node pool. Only applicable if createPodRange is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.\n","willReplaceOnChanges":true},"podRange":{"type":"string","description":"The ID of the secondary range for pod IPs. If \u003cspan pulumi-lang-nodejs=\"`createPodRange`\" pulumi-lang-dotnet=\"`CreatePodRange`\" pulumi-lang-go=\"`createPodRange`\" pulumi-lang-python=\"`create_pod_range`\" pulumi-lang-yaml=\"`createPodRange`\" pulumi-lang-java=\"`createPodRange`\"\u003e`create_pod_range`\u003c/span\u003e is true, this ID is used for the new range. If \u003cspan pulumi-lang-nodejs=\"`createPodRange`\" pulumi-lang-dotnet=\"`CreatePodRange`\" pulumi-lang-go=\"`createPodRange`\" pulumi-lang-python=\"`create_pod_range`\" pulumi-lang-yaml=\"`createPodRange`\" pulumi-lang-java=\"`createPodRange`\"\u003e`create_pod_range`\u003c/span\u003e is false, uses an existing secondary range with this ID.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The subnetwork path for the node pool. Format: `projects/{project}/regions/{region}/subnetworks/{subnetwork}`. If the cluster is associated with multiple subnetworks, the subnetwork for the node pool is picked based on the IP utilization during node pool creation and is immutable\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalNodeNetworkConfigs","enablePrivateNodes","podCidrOverprovisionConfig","podIpv4CidrBlock","podRange","subnetwork"]}}},"gcp:container/NodePoolNetworkConfigAdditionalNodeNetworkConfig:NodePoolNetworkConfigAdditionalNodeNetworkConfig":{"properties":{"network":{"type":"string","description":"Name of the VPC where the additional interface belongs.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"Name of the subnetwork where the additional interface belongs.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["network","subnetwork"]}}},"gcp:container/NodePoolNetworkConfigAdditionalPodNetworkConfig:NodePoolNetworkConfigAdditionalPodNetworkConfig":{"properties":{"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods per node which use this pod network.\n","willReplaceOnChanges":true},"secondaryPodRange":{"type":"string","description":"The name of the secondary range on the subnet which provides IP address for this pod range.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"Name of the subnetwork where the additional pod network belongs.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxPodsPerNode"]}}},"gcp:container/NodePoolNetworkConfigNetworkPerformanceConfig:NodePoolNetworkConfigNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"Specifies the total network bandwidth tier for the NodePool. [Valid values](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.Tier) include: \"TIER_1\" and \"TIER_UNSPECIFIED\".\n"}},"type":"object","required":["totalEgressBandwidthTier"]},"gcp:container/NodePoolNetworkConfigPodCidrOverprovisionConfig:NodePoolNetworkConfigPodCidrOverprovisionConfig":{"properties":{"disabled":{"type":"boolean","description":"Whether pod cidr overprovision is disabled.\n"}},"type":"object","required":["disabled"]},"gcp:container/NodePoolNodeConfig:NodePoolNodeConfig":{"properties":{"advancedMachineFeatures":{"$ref":"#/types/gcp:container/NodePoolNodeConfigAdvancedMachineFeatures:NodePoolNodeConfigAdvancedMachineFeatures","description":"Specifies options for controlling advanced machine features.\n","willReplaceOnChanges":true},"bootDisk":{"$ref":"#/types/gcp:container/NodePoolNodeConfigBootDisk:NodePoolNodeConfigBootDisk","description":"Boot disk configuration for node pools nodes.\n"},"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.\n","willReplaceOnChanges":true},"confidentialNodes":{"$ref":"#/types/gcp:container/NodePoolNodeConfigConfidentialNodes:NodePoolNodeConfigConfidentialNodes","description":"Configuration for the confidential nodes feature, which makes nodes run on confidential VMs.\n"},"containerdConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfig:NodePoolNodeConfigContainerdConfig","description":"Parameters for containerd configuration.\n"},"diskSizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd\n"},"effectiveTaints":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigEffectiveTaint:NodePoolNodeConfigEffectiveTaint"},"description":"List of kubernetes taints applied to each node.\n"},"enableConfidentialStorage":{"type":"boolean","description":"If enabled boot disks are configured with confidential mode.\n","willReplaceOnChanges":true},"ephemeralStorageConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigEphemeralStorageConfig:NodePoolNodeConfigEphemeralStorageConfig","description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.\n","willReplaceOnChanges":true},"ephemeralStorageLocalSsdConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigEphemeralStorageLocalSsdConfig:NodePoolNodeConfigEphemeralStorageLocalSsdConfig","description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.\n","willReplaceOnChanges":true},"fastSocket":{"$ref":"#/types/gcp:container/NodePoolNodeConfigFastSocket:NodePoolNodeConfigFastSocket","description":"Enable or disable NCCL Fast Socket in the node pool.\n"},"flexStart":{"type":"boolean","description":"Enables Flex Start provisioning model for the node pool\n","willReplaceOnChanges":true},"gcfsConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigGcfsConfig:NodePoolNodeConfigGcfsConfig","description":"GCFS configuration for this node.\n"},"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigGuestAccelerator:NodePoolNodeConfigGuestAccelerator"},"description":"List of the type and count of accelerator cards attached to the instance.\n","willReplaceOnChanges":true},"gvnic":{"$ref":"#/types/gcp:container/NodePoolNodeConfigGvnic:NodePoolNodeConfigGvnic","description":"Enable or disable gvnic in the node pool.\n"},"hostMaintenancePolicy":{"$ref":"#/types/gcp:container/NodePoolNodeConfigHostMaintenancePolicy:NodePoolNodeConfigHostMaintenancePolicy","description":"The maintenance policy for the hosts on which the GKE VMs run on.\n","willReplaceOnChanges":true},"imageType":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.\n"},"kubeletConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigKubeletConfig:NodePoolNodeConfigKubeletConfig","description":"Node kubelet configs.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.\n"},"linuxNodeConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigLinuxNodeConfig:NodePoolNodeConfigLinuxNodeConfig","description":"Parameters that can be configured on Linux nodes.\n"},"localNvmeSsdBlockConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigLocalNvmeSsdBlockConfig:NodePoolNodeConfigLocalNvmeSsdBlockConfig","description":"Parameters for raw-block local NVMe SSDs.\n","willReplaceOnChanges":true},"localSsdCount":{"type":"integer","description":"The number of local SSD disks to be attached to the node.\n","willReplaceOnChanges":true},"localSsdEncryptionMode":{"type":"string","description":"LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.\n","willReplaceOnChanges":true},"loggingVariant":{"type":"string","description":"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type.\n"},"maxRunDuration":{"type":"string","description":"The runtime of each node in the node pool in seconds, terminated by 's'. Example: \"3600s\".\n","willReplaceOnChanges":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key/value pairs assigned to instances in the cluster.\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.\n","willReplaceOnChanges":true},"nodeGroup":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.\n","willReplaceOnChanges":true},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available on all of the node VMs.\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Whether the nodes are created as preemptible VM instances.\n","willReplaceOnChanges":true},"reservationAffinity":{"$ref":"#/types/gcp:container/NodePoolNodeConfigReservationAffinity:NodePoolNodeConfigReservationAffinity","description":"The reservation affinity configuration for the node pool.\n","willReplaceOnChanges":true},"resourceLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The GCE resource labels (a map of key/value pairs) to be applied to the node pool.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"sandboxConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigSandboxConfig:NodePoolNodeConfigSandboxConfig","description":"Sandbox configuration for this node.\n","willReplaceOnChanges":true},"secondaryBootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigSecondaryBootDisk:NodePoolNodeConfigSecondaryBootDisk"},"description":"Secondary boot disks for preloading data or container images.\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.\n","willReplaceOnChanges":true},"shieldedInstanceConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigShieldedInstanceConfig:NodePoolNodeConfigShieldedInstanceConfig","description":"Shielded Instance options.\n","willReplaceOnChanges":true},"soleTenantConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigSoleTenantConfig:NodePoolNodeConfigSoleTenantConfig","description":"Node affinity options for sole tenant node pools.\n","willReplaceOnChanges":true},"spot":{"type":"boolean","description":"Whether the nodes are created as spot VM instances.\n","willReplaceOnChanges":true},"storagePools":{"type":"array","items":{"type":"string"},"description":"The list of Storage Pools where boot disks are provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all nodes.\n"},"taints":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigTaint:NodePoolNodeConfigTaint"},"description":"List of Kubernetes taints to be applied to each node.\n"},"windowsNodeConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigWindowsNodeConfig:NodePoolNodeConfigWindowsNodeConfig","description":"Parameters that can be configured on Windows nodes.\n"},"workloadMetadataConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigWorkloadMetadataConfig:NodePoolNodeConfigWorkloadMetadataConfig","description":"The workload metadata configuration for this node.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDisk","confidentialNodes","containerdConfig","diskSizeGb","diskType","effectiveTaints","gcfsConfig","guestAccelerators","imageType","kubeletConfig","labels","linuxNodeConfig","localSsdCount","loggingVariant","machineType","metadata","minCpuPlatform","oauthScopes","serviceAccount","shieldedInstanceConfig","windowsNodeConfig","workloadMetadataConfig"]}}},"gcp:container/NodePoolNodeConfigAdvancedMachineFeatures:NodePoolNodeConfigAdvancedMachineFeatures":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether the node should have nested virtualization enabled.\n","willReplaceOnChanges":true},"performanceMonitoringUnit":{"type":"string","description":"Level of Performance Monitoring Unit (PMU) requested. If unset, no access to the PMU is assumed.\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n","willReplaceOnChanges":true}},"type":"object","required":["threadsPerCore"]},"gcp:container/NodePoolNodeConfigBootDisk:NodePoolNodeConfigBootDisk":{"properties":{"diskType":{"type":"string","description":"Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd\n"},"provisionedIops":{"type":"integer","description":"Configured IOPs provisioning. Only valid with disk type hyperdisk-balanced.\n"},"provisionedThroughput":{"type":"integer","description":"Configured throughput provisioning. Only valid with disk type hyperdisk-balanced.\n"},"sizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskType","provisionedIops","provisionedThroughput","sizeGb"]}}},"gcp:container/NodePoolNodeConfigConfidentialNodes:NodePoolNodeConfigConfidentialNodes":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used by the confidential node.\n","willReplaceOnChanges":true},"enabled":{"type":"boolean","description":"Whether Confidential Nodes feature is enabled for all nodes in this pool.\n"}},"type":"object","required":["enabled"]},"gcp:container/NodePoolNodeConfigContainerdConfig:NodePoolNodeConfigContainerdConfig":{"properties":{"privateRegistryAccessConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig:NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig","description":"Parameters for private container registries configuration.\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHost:NodePoolNodeConfigContainerdConfigRegistryHost"},"description":"Configures containerd registry host configuration. Each\u003cspan pulumi-lang-nodejs=\" registryHosts \" pulumi-lang-dotnet=\" RegistryHosts \" pulumi-lang-go=\" registryHosts \" pulumi-lang-python=\" registry_hosts \" pulumi-lang-yaml=\" registryHosts \" pulumi-lang-java=\" registryHosts \"\u003e registry_hosts \u003c/span\u003eentry represents a hosts.toml file.\n"},"writableCgroups":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigWritableCgroups:NodePoolNodeConfigContainerdConfigWritableCgroups","description":"Parameters for writable cgroups configuration.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig:NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"Parameters for configuring CA certificate and domains.\n"},"enabled":{"type":"boolean","description":"Whether or not private registries are configured.\n"}},"type":"object","required":["enabled"]},"gcp:container/NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig","description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfig"]},"gcp:container/NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:NodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"]},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHost:NodePoolNodeConfigContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHost:NodePoolNodeConfigContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["server"]},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHost:NodePoolNodeConfigContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostCa:NodePoolNodeConfigContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostClient:NodePoolNodeConfigContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostHeader:NodePoolNodeConfigContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["host"]},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostCa:NodePoolNodeConfigContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostClient:NodePoolNodeConfigContainerdConfigRegistryHostHostClient":{"properties":{"cert":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostClientCert:NodePoolNodeConfigContainerdConfigRegistryHostHostClientCert","description":"Configures the client certificate.\n"},"key":{"$ref":"#/types/gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostClientKey:NodePoolNodeConfigContainerdConfigRegistryHostHostClientKey","description":"Configures the client private key.\n"}},"type":"object","required":["cert"]},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostClientCert:NodePoolNodeConfigContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostClientKey:NodePoolNodeConfigContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigContainerdConfigRegistryHostHostHeader:NodePoolNodeConfigContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"]},"gcp:container/NodePoolNodeConfigContainerdConfigWritableCgroups:NodePoolNodeConfigContainerdConfigWritableCgroups":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"]},"gcp:container/NodePoolNodeConfigEffectiveTaint:NodePoolNodeConfigEffectiveTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["effect","key","value"]}}},"gcp:container/NodePoolNodeConfigEphemeralStorageConfig:NodePoolNodeConfigEphemeralStorageConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/NodePoolNodeConfigEphemeralStorageLocalSsdConfig:NodePoolNodeConfigEphemeralStorageLocalSsdConfig":{"properties":{"dataCacheCount":{"type":"integer","description":"Number of local SSDs to be utilized for GKE Data Cache. Uses NVMe interfaces.\n","willReplaceOnChanges":true},"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/NodePoolNodeConfigFastSocket:NodePoolNodeConfigFastSocket":{"properties":{"enabled":{"type":"boolean","description":"Whether or not NCCL Fast Socket is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/NodePoolNodeConfigGcfsConfig:NodePoolNodeConfigGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not GCFS is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/NodePoolNodeConfigGuestAccelerator:NodePoolNodeConfigGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the accelerator cards exposed to an instance.\n","willReplaceOnChanges":true},"gpuDriverInstallationConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig:NodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig","description":"Configuration for auto installation of GPU driver.\n","willReplaceOnChanges":true},"gpuPartitionSize":{"type":"string","description":"Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning)\n","willReplaceOnChanges":true},"gpuSharingConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigGuestAcceleratorGpuSharingConfig:NodePoolNodeConfigGuestAcceleratorGpuSharingConfig","description":"Configuration for GPU sharing.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The accelerator type resource name.\n","willReplaceOnChanges":true}},"type":"object","required":["count","type"],"language":{"nodejs":{"requiredOutputs":["count","gpuDriverInstallationConfig","type"]}}},"gcp:container/NodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig:NodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig":{"properties":{"gpuDriverVersion":{"type":"string","description":"Mode for how the GPU driver is installed.\n","willReplaceOnChanges":true}},"type":"object","required":["gpuDriverVersion"]},"gcp:container/NodePoolNodeConfigGuestAcceleratorGpuSharingConfig:NodePoolNodeConfigGuestAcceleratorGpuSharingConfig":{"properties":{"gpuSharingStrategy":{"type":"string","description":"The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig)\n","willReplaceOnChanges":true},"maxSharedClientsPerGpu":{"type":"integer","description":"The maximum number of containers that can share a GPU.\n","willReplaceOnChanges":true}},"type":"object","required":["gpuSharingStrategy","maxSharedClientsPerGpu"]},"gcp:container/NodePoolNodeConfigGvnic:NodePoolNodeConfigGvnic":{"properties":{"enabled":{"type":"boolean","description":"Whether or not gvnic is enabled\n"}},"type":"object","required":["enabled"]},"gcp:container/NodePoolNodeConfigHostMaintenancePolicy:NodePoolNodeConfigHostMaintenancePolicy":{"properties":{"maintenanceInterval":{"type":"string","description":".\n","willReplaceOnChanges":true}},"type":"object","required":["maintenanceInterval"]},"gcp:container/NodePoolNodeConfigKubeletConfig:NodePoolNodeConfigKubeletConfig":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns which can be set on the Pods.\n"},"containerLogMaxFiles":{"type":"integer","description":"Defines the maximum number of container log files that can be present for a container.\n"},"containerLogMaxSize":{"type":"string","description":"Defines the maximum size of the container log file before it is rotated.\n"},"cpuCfsQuota":{"type":"boolean","description":"Enable CPU CFS quota enforcement for containers that specify CPU limits.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"Set the CPU CFS quota period value 'cpu.cfs_period_us'.\n"},"cpuManagerPolicy":{"type":"string","description":"Control the CPU management policy on the node.\n"},"evictionMaxPodGracePeriodSeconds":{"type":"integer","description":"Defines the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.\n"},"evictionMinimumReclaim":{"$ref":"#/types/gcp:container/NodePoolNodeConfigKubeletConfigEvictionMinimumReclaim:NodePoolNodeConfigKubeletConfigEvictionMinimumReclaim","description":"Defines a map of signal names to percentage that defines minimum reclaims. It describes the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction.\n"},"evictionSoft":{"$ref":"#/types/gcp:container/NodePoolNodeConfigKubeletConfigEvictionSoft:NodePoolNodeConfigKubeletConfigEvictionSoft","description":"Defines a map of signal names to quantities or percentage that defines soft eviction thresholds.\n"},"evictionSoftGracePeriod":{"$ref":"#/types/gcp:container/NodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod:NodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod","description":"Defines a map of signal names to durations that defines grace periods for soft eviction thresholds. Each soft eviction threshold must have a corresponding grace period.\n"},"imageGcHighThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage after which image garbage collection is always run.\n"},"imageGcLowThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to.\n"},"imageMaximumGcAge":{"type":"string","description":"Defines the maximum age an image can be unused before it is garbage collected.\n"},"imageMinimumGcAge":{"type":"string","description":"Defines the minimum age for an unused image before it is garbage collected.\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"maxParallelImagePulls":{"type":"integer","description":"Set the maximum number of image pulls in parallel.\n"},"memoryManager":{"$ref":"#/types/gcp:container/NodePoolNodeConfigKubeletConfigMemoryManager:NodePoolNodeConfigKubeletConfigMemoryManager","description":"Configuration for the Memory Manager on the node. The memory manager optimizes memory and hugepages allocation for pods, especially those in the Guaranteed QoS class, by influencing NUMA affinity.\n"},"podPidsLimit":{"type":"integer","description":"Controls the maximum number of processes allowed to run in a pod.\n"},"singleProcessOomKill":{"type":"boolean","description":"Defines whether to enable single process OOM killer.\n"},"topologyManager":{"$ref":"#/types/gcp:container/NodePoolNodeConfigKubeletConfigTopologyManager:NodePoolNodeConfigKubeletConfigTopologyManager","description":"Configuration for the Topology Manager on the node. The Topology Manager aligns CPU, memory, and device resources on a node to optimize performance, especially for NUMA-aware workloads, by ensuring resource co-location.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cpuCfsQuota","insecureKubeletReadonlyPortEnabled","maxParallelImagePulls"]}}},"gcp:container/NodePoolNodeConfigKubeletConfigEvictionMinimumReclaim:NodePoolNodeConfigKubeletConfigEvictionMinimumReclaim":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.available.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.inodesFree.\n"},"memoryAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for memory.available.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.available.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.inodesFree.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for pid.available.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigKubeletConfigEvictionSoft:NodePoolNodeConfigKubeletConfigEvictionSoft":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.available.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.inodesFree.\n"},"memoryAvailable":{"type":"string","description":"Defines quantity of soft eviction threshold for memory.available.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.available.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.inodesFree.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for pid.available.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod:NodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines grace period for the imagefs.available soft eviction threshold\n"},"imagefsInodesFree":{"type":"string","description":"Defines grace period for the imagefs.inodesFree soft eviction threshold.\n"},"memoryAvailable":{"type":"string","description":"Defines grace period for the memory.available soft eviction threshold.\n"},"nodefsAvailable":{"type":"string","description":"Defines grace period for the nodefs.available soft eviction threshold.\n"},"nodefsInodesFree":{"type":"string","description":"Defines grace period for the nodefs.inodesFree soft eviction threshold.\n"},"pidAvailable":{"type":"string","description":"Defines grace period for the pid.available soft eviction threshold.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigKubeletConfigMemoryManager:NodePoolNodeConfigKubeletConfigMemoryManager":{"properties":{"policy":{"type":"string","description":"The Memory Manager policy to use. This policy guides how memory and hugepages are allocated and managed for pods on the node, influencing NUMA affinity.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["policy"]}}},"gcp:container/NodePoolNodeConfigKubeletConfigTopologyManager:NodePoolNodeConfigKubeletConfigTopologyManager":{"properties":{"policy":{"type":"string","description":"The Topology Manager policy to use. This policy dictates how resource alignment is handled on the node.\n"},"scope":{"type":"string","description":"The Topology Manager scope, defining the granularity at which policy decisions are applied. Valid values are \"container\" (resources are aligned per container within a pod) or \"pod\" (resources are aligned for the entire pod).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["policy","scope"]}}},"gcp:container/NodePoolNodeConfigLinuxNodeConfig:NodePoolNodeConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"cgroupMode specifies the cgroup mode to be used on the node.\n"},"hugepagesConfig":{"$ref":"#/types/gcp:container/NodePoolNodeConfigLinuxNodeConfigHugepagesConfig:NodePoolNodeConfigLinuxNodeConfigHugepagesConfig","description":"Amounts for 2M and 1G hugepages.\n"},"nodeKernelModuleLoading":{"$ref":"#/types/gcp:container/NodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading:NodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading","description":"The settings for kernel module loading.\n"},"sysctls":{"type":"object","additionalProperties":{"type":"string"},"description":"The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.\n"},"transparentHugepageDefrag":{"type":"string","description":"The Linux kernel transparent hugepage defrag setting.\n"},"transparentHugepageEnabled":{"type":"string","description":"The Linux kernel transparent hugepage setting.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cgroupMode","transparentHugepageEnabled"]}}},"gcp:container/NodePoolNodeConfigLinuxNodeConfigHugepagesConfig:NodePoolNodeConfigLinuxNodeConfigHugepagesConfig":{"properties":{"hugepageSize1g":{"type":"integer","description":"Amount of 1G hugepages.\n"},"hugepageSize2m":{"type":"integer","description":"Amount of 2M hugepages.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading:NodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"The policy for kernel module loading.\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigLocalNvmeSsdBlockConfig:NodePoolNodeConfigLocalNvmeSsdBlockConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size.\n","willReplaceOnChanges":true}},"type":"object","required":["localSsdCount"]},"gcp:container/NodePoolNodeConfigReservationAffinity:NodePoolNodeConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"The type of reservation consumption\nAccepted values are:\n\n* `\"UNSPECIFIED\"`: Default value. This should not be used.\n* `\"NO_RESERVATION\"`: Do not consume from any reserved capacity.\n* `\"ANY_RESERVATION\"`: Consume any reservation available.\n* `\"SPECIFIC_RESERVATION\"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"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 its value.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"The list of label values of reservation resources. For example: the name of the specific reservation when using a key of \"compute.googleapis.com/reservation-name\"\n","willReplaceOnChanges":true}},"type":"object","required":["consumeReservationType"]},"gcp:container/NodePoolNodeConfigSandboxConfig:NodePoolNodeConfigSandboxConfig":{"properties":{"sandboxType":{"type":"string","description":"Type of the sandbox to use for the node (e.g. 'gvisor')\n"}},"type":"object","required":["sandboxType"]},"gcp:container/NodePoolNodeConfigSecondaryBootDisk:NodePoolNodeConfigSecondaryBootDisk":{"properties":{"diskImage":{"type":"string","description":"Disk image to create the secondary boot disk from\n","willReplaceOnChanges":true},"mode":{"type":"string","description":"Mode for how the secondary boot disk is used.\n","willReplaceOnChanges":true}},"type":"object","required":["diskImage"]},"gcp:container/NodePoolNodeConfigShieldedInstanceConfig:NodePoolNodeConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines whether the instance has integrity monitoring enabled.\n","willReplaceOnChanges":true},"enableSecureBoot":{"type":"boolean","description":"Defines whether the instance has Secure Boot enabled.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:container/NodePoolNodeConfigSoleTenantConfig:NodePoolNodeConfigSoleTenantConfig":{"properties":{"minNodeCpus":{"type":"integer","description":"Specifies the minimum number of vCPUs that each sole tenant node must have to use CPU overcommit. If not specified, the CPU overcommit feature is disabled.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/NodePoolNodeConfigSoleTenantConfigNodeAffinity:NodePoolNodeConfigSoleTenantConfigNodeAffinity"},"description":".\n","willReplaceOnChanges":true}},"type":"object","required":["nodeAffinities"]},"gcp:container/NodePoolNodeConfigSoleTenantConfigNodeAffinity:NodePoolNodeConfigSoleTenantConfigNodeAffinity":{"properties":{"key":{"type":"string","description":".\n","willReplaceOnChanges":true},"operator":{"type":"string","description":".\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":".\n","willReplaceOnChanges":true}},"type":"object","required":["key","operator","values"]},"gcp:container/NodePoolNodeConfigTaint:NodePoolNodeConfigTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"]},"gcp:container/NodePoolNodeConfigWindowsNodeConfig:NodePoolNodeConfigWindowsNodeConfig":{"properties":{"osversion":{"type":"string","description":"The OS Version of the windows nodepool.Values are OS_VERSION_UNSPECIFIED,OS_VERSION_LTSC2019 and OS_VERSION_LTSC2022\n"}},"type":"object"},"gcp:container/NodePoolNodeConfigWorkloadMetadataConfig:NodePoolNodeConfigWorkloadMetadataConfig":{"properties":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.\n"}},"type":"object","required":["mode"]},"gcp:container/NodePoolNodeDrainConfig:NodePoolNodeDrainConfig":{"properties":{"respectPdbDuringNodePoolDeletion":{"type":"boolean","description":"Whether to respect PodDisruptionBudget policy during node pool deletion.\n"}},"type":"object"},"gcp:container/NodePoolPlacementPolicy:NodePoolPlacementPolicy":{"properties":{"policyName":{"type":"string","description":"If set, refers to the name of a custom resource policy supplied by the user.\nThe resource policy must be in the same project and region as the node pool.\nIf not found, InvalidArgument error is returned.\n","willReplaceOnChanges":true},"tpuTopology":{"type":"string","description":"The [TPU topology](https://cloud.google.com/kubernetes-engine/docs/concepts/plan-tpus#topology) like `\"2x4\"` or `\"2x2x2\"`.\n"},"type":{"type":"string","description":"The type of the policy. Supports a single value: COMPACT.\nSpecifying COMPACT placement policy type places node pool's nodes in a closer\nphysical proximity in order to reduce network latency between nodes.\n"}},"type":"object","required":["type"]},"gcp:container/NodePoolQueuedProvisioning:NodePoolQueuedProvisioning":{"properties":{"enabled":{"type":"boolean","description":"Makes nodes obtainable through the [ProvisioningRequest API](https://cloud.google.com/kubernetes-engine/docs/how-to/provisioningrequest) exclusively.\n","willReplaceOnChanges":true}},"type":"object","required":["enabled"]},"gcp:container/NodePoolUpgradeSettings:NodePoolUpgradeSettings":{"properties":{"blueGreenSettings":{"$ref":"#/types/gcp:container/NodePoolUpgradeSettingsBlueGreenSettings:NodePoolUpgradeSettingsBlueGreenSettings","description":"The settings to adjust [blue green upgrades](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pool-upgrade-strategies#blue-green-upgrade-strategy).\nStructure is documented below\n"},"maxSurge":{"type":"integer","description":"The number of additional nodes that can be added to the node pool during\nan upgrade. Increasing \u003cspan pulumi-lang-nodejs=\"`maxSurge`\" pulumi-lang-dotnet=\"`MaxSurge`\" pulumi-lang-go=\"`maxSurge`\" pulumi-lang-python=\"`max_surge`\" pulumi-lang-yaml=\"`maxSurge`\" pulumi-lang-java=\"`maxSurge`\"\u003e`max_surge`\u003c/span\u003e raises the number of nodes that can be upgraded simultaneously.\nCan be set to 0 or greater.\n"},"maxUnavailable":{"type":"integer","description":"The number of nodes that can be simultaneously unavailable during\nan upgrade. Increasing \u003cspan pulumi-lang-nodejs=\"`maxUnavailable`\" pulumi-lang-dotnet=\"`MaxUnavailable`\" pulumi-lang-go=\"`maxUnavailable`\" pulumi-lang-python=\"`max_unavailable`\" pulumi-lang-yaml=\"`maxUnavailable`\" pulumi-lang-java=\"`maxUnavailable`\"\u003e`max_unavailable`\u003c/span\u003e raises the number of nodes that can be upgraded in\nparallel. Can be set to 0 or greater.\n\n\u003cspan pulumi-lang-nodejs=\"`maxSurge`\" pulumi-lang-dotnet=\"`MaxSurge`\" pulumi-lang-go=\"`maxSurge`\" pulumi-lang-python=\"`max_surge`\" pulumi-lang-yaml=\"`maxSurge`\" pulumi-lang-java=\"`maxSurge`\"\u003e`max_surge`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`maxUnavailable`\" pulumi-lang-dotnet=\"`MaxUnavailable`\" pulumi-lang-go=\"`maxUnavailable`\" pulumi-lang-python=\"`max_unavailable`\" pulumi-lang-yaml=\"`maxUnavailable`\" pulumi-lang-java=\"`maxUnavailable`\"\u003e`max_unavailable`\u003c/span\u003e must not be negative and at least one of them must be greater than zero.\n"},"strategy":{"type":"string","description":"The upgrade strategy to be used for upgrading the nodes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["blueGreenSettings","maxSurge","maxUnavailable"]}}},"gcp:container/NodePoolUpgradeSettingsBlueGreenSettings:NodePoolUpgradeSettingsBlueGreenSettings":{"properties":{"autoscaledRolloutPolicy":{"$ref":"#/types/gcp:container/NodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy:NodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy","description":") Autoscaled rollout policy for blue-green upgrade.\n"},"nodePoolSoakDuration":{"type":"string","description":"Time needed after draining the entire blue pool.\nAfter this period, the blue pool will be cleaned up.\n"},"standardRolloutPolicy":{"$ref":"#/types/gcp:container/NodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy:NodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy","description":"Specifies the standard policy settings for blue-green upgrades.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodePoolSoakDuration"]}}},"gcp:container/NodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy:NodePoolUpgradeSettingsBlueGreenSettingsAutoscaledRolloutPolicy":{"properties":{"waitForDrainDuration":{"type":"string","description":"Time in seconds to wait after cordoning the blue pool before draining the nodes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["waitForDrainDuration"]}}},"gcp:container/NodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy:NodePoolUpgradeSettingsBlueGreenSettingsStandardRolloutPolicy":{"properties":{"batchNodeCount":{"type":"integer","description":"Number of blue nodes to drain in a batch.\n"},"batchPercentage":{"type":"number","description":"Percentage of the blue pool nodes to drain in a batch.\n"},"batchSoakDuration":{"type":"string","description":"Soak time after each batch gets drained.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["batchNodeCount","batchPercentage","batchSoakDuration"]}}},"gcp:container/getClusterAddonsConfig:getClusterAddonsConfig":{"properties":{"cloudrunConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigCloudrunConfig:getClusterAddonsConfigCloudrunConfig"},"description":"The status of the CloudRun addon. It is disabled by default. Set disabled = false to enable.\n"},"configConnectorConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigConfigConnectorConfig:getClusterAddonsConfigConfigConnectorConfig"},"description":"The of the Config Connector addon.\n"},"dnsCacheConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigDnsCacheConfig:getClusterAddonsConfigDnsCacheConfig"},"description":"The status of the NodeLocal DNSCache addon. It is disabled by default. Set enabled = true to enable.\n"},"gcePersistentDiskCsiDriverConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigGcePersistentDiskCsiDriverConfig:getClusterAddonsConfigGcePersistentDiskCsiDriverConfig"},"description":"Whether this cluster should enable the Google Compute Engine Persistent Disk Container Storage Interface (CSI) Driver. Set enabled = true to enable. The Compute Engine persistent disk CSI Driver is enabled by default on newly created clusters for the following versions: Linux clusters: GKE version 1.18.10-gke.2100 or later, or 1.19.3-gke.2100 or later.\n"},"gcpFilestoreCsiDriverConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigGcpFilestoreCsiDriverConfig:getClusterAddonsConfigGcpFilestoreCsiDriverConfig"},"description":"The status of the Filestore CSI driver addon, which allows the usage of filestore instance as volumes. Defaults to disabled for Standard clusters; set enabled = true to enable. It is enabled by default for Autopilot clusters; set enabled = true to enable it explicitly.\n"},"gcsFuseCsiDriverConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigGcsFuseCsiDriverConfig:getClusterAddonsConfigGcsFuseCsiDriverConfig"},"description":"The status of the GCS Fuse CSI driver addon, which allows the usage of gcs bucket as volumes. Defaults to disabled; set enabled = true to enable.\n"},"gkeBackupAgentConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigGkeBackupAgentConfig:getClusterAddonsConfigGkeBackupAgentConfig"},"description":"The status of the Backup for GKE Agent addon. It is disabled by default. Set enabled = true to enable.\n"},"horizontalPodAutoscalings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigHorizontalPodAutoscaling:getClusterAddonsConfigHorizontalPodAutoscaling"},"description":"The status of the Horizontal Pod Autoscaling addon, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. It ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service. It is enabled by default; set disabled = true to disable.\n"},"httpLoadBalancings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigHttpLoadBalancing:getClusterAddonsConfigHttpLoadBalancing"},"description":"The status of the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. It is enabled by default; set disabled = true to disable.\n"},"istioConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigIstioConfig:getClusterAddonsConfigIstioConfig"},"description":"The status of the Istio addon.\n"},"kalmConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigKalmConfig:getClusterAddonsConfigKalmConfig"},"description":"Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set enabled = true to enable.\n"},"lustreCsiDriverConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigLustreCsiDriverConfig:getClusterAddonsConfigLustreCsiDriverConfig"},"description":"Configuration for the Lustre CSI driver. Defaults to disabled; set enabled = true to enable.\n"},"networkPolicyConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigNetworkPolicyConfig:getClusterAddonsConfigNetworkPolicyConfig"},"description":"Whether we should enable the network policy addon for the master. This must be enabled in order to enable network policy for the nodes. To enable this, you must also define a\u003cspan pulumi-lang-nodejs=\" networkPolicy \" pulumi-lang-dotnet=\" NetworkPolicy \" pulumi-lang-go=\" networkPolicy \" pulumi-lang-python=\" network_policy \" pulumi-lang-yaml=\" networkPolicy \" pulumi-lang-java=\" networkPolicy \"\u003e network_policy \u003c/span\u003eblock, otherwise nothing will happen. It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set disabled = false to enable.\n"},"parallelstoreCsiDriverConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigParallelstoreCsiDriverConfig:getClusterAddonsConfigParallelstoreCsiDriverConfig"},"description":"The status of the Parallelstore CSI driver addon, which allows the usage of Parallelstore instances as volumes. Defaults to disabled; set enabled = true to enable.\n"},"podSnapshotConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigPodSnapshotConfig:getClusterAddonsConfigPodSnapshotConfig"},"description":"Configuration for the Pod Snapshot feature.\n"},"rayOperatorConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigRayOperatorConfig:getClusterAddonsConfigRayOperatorConfig"},"description":"The status of the Ray Operator addon, which enabled management of Ray AI/ML jobs on GKE. Defaults to disabled; set enabled = true to enable.\n"},"sliceControllerConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigSliceControllerConfig:getClusterAddonsConfigSliceControllerConfig"},"description":"The status of the Slice Controller addon. It is disabled by default; set enabled = true to enable.\n"},"statefulHaConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigStatefulHaConfig:getClusterAddonsConfigStatefulHaConfig"},"description":"The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable.\n"}},"type":"object","required":["cloudrunConfigs","configConnectorConfigs","dnsCacheConfigs","gcePersistentDiskCsiDriverConfigs","gcpFilestoreCsiDriverConfigs","gcsFuseCsiDriverConfigs","gkeBackupAgentConfigs","horizontalPodAutoscalings","httpLoadBalancings","istioConfigs","kalmConfigs","lustreCsiDriverConfigs","networkPolicyConfigs","parallelstoreCsiDriverConfigs","podSnapshotConfigs","rayOperatorConfigs","sliceControllerConfigs","statefulHaConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigCloudrunConfig:getClusterAddonsConfigCloudrunConfig":{"properties":{"disabled":{"type":"boolean"},"loadBalancerType":{"type":"string"}},"type":"object","required":["disabled","loadBalancerType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigConfigConnectorConfig:getClusterAddonsConfigConfigConnectorConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigDnsCacheConfig:getClusterAddonsConfigDnsCacheConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigGcePersistentDiskCsiDriverConfig:getClusterAddonsConfigGcePersistentDiskCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigGcpFilestoreCsiDriverConfig:getClusterAddonsConfigGcpFilestoreCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigGcsFuseCsiDriverConfig:getClusterAddonsConfigGcsFuseCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigGkeBackupAgentConfig:getClusterAddonsConfigGkeBackupAgentConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigHorizontalPodAutoscaling:getClusterAddonsConfigHorizontalPodAutoscaling":{"properties":{"disabled":{"type":"boolean"}},"type":"object","required":["disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigHttpLoadBalancing:getClusterAddonsConfigHttpLoadBalancing":{"properties":{"disabled":{"type":"boolean"}},"type":"object","required":["disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigIstioConfig:getClusterAddonsConfigIstioConfig":{"properties":{"auth":{"type":"string","description":"The authentication type between services in Istio. Available options include AUTH_MUTUAL_TLS.\n"},"disabled":{"type":"boolean","description":"The status of the Istio addon, which makes it easy to set up Istio for services in a cluster. It is disabled by default. Set disabled = false to enable.\n"}},"type":"object","required":["auth","disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigKalmConfig:getClusterAddonsConfigKalmConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigLustreCsiDriverConfig:getClusterAddonsConfigLustreCsiDriverConfig":{"properties":{"enableLegacyLustrePort":{"type":"boolean","description":"If set to true, the Lustre CSI driver will initialize LNet (the virtual network layer for Lustre kernel module) using port 6988.\n\t\t\t\t\t\t\t\t\t\tThis flag is required to workaround a port conflict with the gke-metadata-server on GKE nodes.\n"},"enabled":{"type":"boolean","description":"Whether the Lustre CSI driver is enabled for this cluster.\n"}},"type":"object","required":["enableLegacyLustrePort","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigNetworkPolicyConfig:getClusterAddonsConfigNetworkPolicyConfig":{"properties":{"disabled":{"type":"boolean"}},"type":"object","required":["disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigParallelstoreCsiDriverConfig:getClusterAddonsConfigParallelstoreCsiDriverConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigPodSnapshotConfig:getClusterAddonsConfigPodSnapshotConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether the Pod Snapshot feature is enabled for this cluster.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigRayOperatorConfig:getClusterAddonsConfigRayOperatorConfig":{"properties":{"enabled":{"type":"boolean"},"rayClusterLoggingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig:getClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig"},"description":"The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable.\n"},"rayClusterMonitoringConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig:getClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig"},"description":"The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable.\n"}},"type":"object","required":["enabled","rayClusterLoggingConfigs","rayClusterMonitoringConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig:getClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig:getClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigSliceControllerConfig:getClusterAddonsConfigSliceControllerConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAddonsConfigStatefulHaConfig:getClusterAddonsConfigStatefulHaConfig":{"properties":{"enabled":{"type":"boolean"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAnonymousAuthenticationConfig:getClusterAnonymousAuthenticationConfig":{"properties":{"mode":{"type":"string","description":"Setting this to LIMITED will restrict authentication of anonymous users to health check endpoints only.\n Accepted values are:\n* ENABLED: Authentication of anonymous users is enabled for all endpoints.\n* LIMITED: Anonymous access is only allowed for health check endpoints.\n"}},"type":"object","required":["mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterAuthenticatorGroupsConfig:getClusterAuthenticatorGroupsConfig":{"properties":{"securityGroup":{"type":"string","description":"The name of the RBAC security group for use with Google security groups in Kubernetes RBAC. Group name must be in format gke-security-groups@yourdomain.com.\n"}},"type":"object","required":["securityGroup"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterBinaryAuthorization:getClusterBinaryAuthorization":{"properties":{"enabled":{"type":"boolean","description":"Enable Binary Authorization for this cluster.\n"},"evaluationMode":{"type":"string","description":"Mode of operation for Binary Authorization policy evaluation.\n"}},"type":"object","required":["enabled","evaluationMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscaling:getClusterClusterAutoscaling":{"properties":{"autoProvisioningDefaults":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefault:getClusterClusterAutoscalingAutoProvisioningDefault"},"description":"Contains defaults for a node pool created by NAP.\n"},"autoProvisioningLocations":{"type":"array","items":{"type":"string"},"description":"The list of Google Compute Engine zones in which the NodePool's nodes can be created by NAP.\n"},"autoscalingProfile":{"type":"string","description":"Configuration options for the Autoscaling profile feature, which lets you choose whether the cluster autoscaler should optimize for resource utilization or resource availability when deciding to remove nodes from a cluster. Can be BALANCED or OPTIMIZE_UTILIZATION. Defaults to BALANCED.\n"},"defaultComputeClassEnabled":{"type":"boolean","description":"Specifies whether default compute class behaviour is enabled. If enabled, cluster autoscaler will use Compute Class with name default for all the workloads, if not overriden.\n"},"enabled":{"type":"boolean","description":"Whether node auto-provisioning is enabled. Resource limits for cpu and memory must be defined to enable node auto-provisioning.\n"},"resourceLimits":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingResourceLimit:getClusterClusterAutoscalingResourceLimit"},"description":"Global constraints for machine resources in the cluster. Configuring the cpu and memory types is required if node auto-provisioning is enabled. These limits will apply to node pool autoscaling in addition to node auto-provisioning.\n"}},"type":"object","required":["autoProvisioningDefaults","autoProvisioningLocations","autoscalingProfile","defaultComputeClassEnabled","enabled","resourceLimits"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefault:getClusterClusterAutoscalingAutoProvisioningDefault":{"properties":{"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.\n"},"diskSize":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node.\n"},"imageType":{"type":"string","description":"The default image type used by NAP once a new node pool is being created.\n"},"managements":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultManagement:getClusterClusterAutoscalingAutoProvisioningDefaultManagement"},"description":"NodeManagement configuration for this NodePool.\n"},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform. Applicable values are the friendly names of CPU platforms, such as Intel Haswell.\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"Scopes that are used by NAP when creating node pools.\n"},"serviceAccount":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.\n"},"shieldedInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultShieldedInstanceConfig:getClusterClusterAutoscalingAutoProvisioningDefaultShieldedInstanceConfig"},"description":"Shielded Instance options.\n"},"upgradeSettings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSetting:getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSetting"},"description":"Specifies the upgrade settings for NAP created node pools\n"}},"type":"object","required":["bootDiskKmsKey","diskSize","diskType","imageType","managements","minCpuPlatform","oauthScopes","serviceAccount","shieldedInstanceConfigs","upgradeSettings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultManagement:getClusterClusterAutoscalingAutoProvisioningDefaultManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Specifies whether the node auto-repair is enabled for the node pool. If enabled, the nodes in this node pool will be monitored and, if they fail health checks too many times, an automatic repair action will be triggered.\n"},"autoUpgrade":{"type":"boolean","description":"Specifies whether node auto-upgrade is enabled for the node pool. If enabled, node auto-upgrade helps keep the nodes in your node pool up to date with the latest release version of Kubernetes.\n"},"upgradeOptions":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultManagementUpgradeOption:getClusterClusterAutoscalingAutoProvisioningDefaultManagementUpgradeOption"},"description":"Specifies the Auto Upgrade knobs for the node pool.\n"}},"type":"object","required":["autoRepair","autoUpgrade","upgradeOptions"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultManagementUpgradeOption:getClusterClusterAutoscalingAutoProvisioningDefaultManagementUpgradeOption":{"properties":{"autoUpgradeStartTime":{"type":"string","description":"This field is set when upgrades are about to commence with the approximate start time for the upgrades, in RFC3339 text format.\n"},"description":{"type":"string","description":"This field is set when upgrades are about to commence with the description of the upgrade.\n"}},"type":"object","required":["autoUpgradeStartTime","description"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultShieldedInstanceConfig:getClusterClusterAutoscalingAutoProvisioningDefaultShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines whether the instance has integrity monitoring enabled.\n"},"enableSecureBoot":{"type":"boolean","description":"Defines whether the instance has Secure Boot enabled.\n"}},"type":"object","required":["enableIntegrityMonitoring","enableSecureBoot"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSetting:getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSetting":{"properties":{"blueGreenSettings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSetting:getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSetting"},"description":"Settings for blue-green upgrade strategy.\n"},"maxSurge":{"type":"integer","description":"The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be simultaneously unavailable during the upgrade process.\n"},"strategy":{"type":"string","description":"Update strategy of the node pool.\n"}},"type":"object","required":["blueGreenSettings","maxSurge","maxUnavailable","strategy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSetting:getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSetting":{"properties":{"nodePoolSoakDuration":{"type":"string","description":"Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"standardRolloutPolicies":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSettingStandardRolloutPolicy:getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSettingStandardRolloutPolicy"},"description":"Standard policy for the blue-green upgrade.\n"}},"type":"object","required":["nodePoolSoakDuration","standardRolloutPolicies"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSettingStandardRolloutPolicy:getClusterClusterAutoscalingAutoProvisioningDefaultUpgradeSettingBlueGreenSettingStandardRolloutPolicy":{"properties":{"batchNodeCount":{"type":"integer","description":"Number of blue nodes to drain in a batch.\n"},"batchPercentage":{"type":"number","description":"Percentage of the bool pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].\n"},"batchSoakDuration":{"type":"string","description":"Soak time after each batch gets drained.\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"}},"type":"object","required":["batchNodeCount","batchPercentage","batchSoakDuration"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterAutoscalingResourceLimit:getClusterClusterAutoscalingResourceLimit":{"properties":{"maximum":{"type":"integer","description":"Maximum amount of the resource in the cluster.\n"},"minimum":{"type":"integer","description":"Minimum amount of the resource in the cluster.\n"},"resourceType":{"type":"string","description":"The type of the resource. For example, cpu and memory. See the guide to using Node Auto-Provisioning for a list of types.\n"}},"type":"object","required":["maximum","minimum","resourceType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterClusterTelemetry:getClusterClusterTelemetry":{"properties":{"type":{"type":"string","description":"Type of the integration.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterConfidentialNode:getClusterConfidentialNode":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used by the confidential node.\n"},"enabled":{"type":"boolean","description":"Whether Confidential Nodes feature is enabled for all nodes in this cluster.\n"}},"type":"object","required":["confidentialInstanceType","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterControlPlaneEndpointsConfig:getClusterControlPlaneEndpointsConfig":{"properties":{"dnsEndpointConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterControlPlaneEndpointsConfigDnsEndpointConfig:getClusterControlPlaneEndpointsConfigDnsEndpointConfig"},"description":"DNS endpoint configuration.\n"},"ipEndpointsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterControlPlaneEndpointsConfigIpEndpointsConfig:getClusterControlPlaneEndpointsConfigIpEndpointsConfig"},"description":"IP endpoint configuration.\n"}},"type":"object","required":["dnsEndpointConfigs","ipEndpointsConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterControlPlaneEndpointsConfigDnsEndpointConfig:getClusterControlPlaneEndpointsConfigDnsEndpointConfig":{"properties":{"allowExternalTraffic":{"type":"boolean","description":"Controls whether user traffic is allowed over this endpoint. Note that GCP-managed services may still use the endpoint even if this is false.\n"},"enableK8sCertsViaDns":{"type":"boolean","description":"Controls whether the k8s certs auth is allowed via dns.\n"},"enableK8sTokensViaDns":{"type":"boolean","description":"Controls whether the k8s token auth is allowed via dns.\n"},"endpoint":{"type":"string","description":"The cluster's DNS endpoint.\n"}},"type":"object","required":["allowExternalTraffic","enableK8sCertsViaDns","enableK8sTokensViaDns","endpoint"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterControlPlaneEndpointsConfigIpEndpointsConfig:getClusterControlPlaneEndpointsConfigIpEndpointsConfig":{"properties":{"enabled":{"type":"boolean","description":"Controls whether to allow direct IP access.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterCostManagementConfig:getClusterCostManagementConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable GKE cost allocation. When you enable GKE cost allocation, the cluster name and namespace of your GKE workloads appear in the labels field of the billing export to BigQuery. Defaults to false.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterDatabaseEncryption:getClusterDatabaseEncryption":{"properties":{"keyName":{"type":"string","description":"The key to use to encrypt/decrypt secrets.\n"},"state":{"type":"string","description":"ENCRYPTED or DECRYPTED.\n"}},"type":"object","required":["keyName","state"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterDefaultSnatStatus:getClusterDefaultSnatStatus":{"properties":{"disabled":{"type":"boolean","description":"When disabled is set to false, default IP masquerade rules will be applied to the nodes to prevent sNAT on cluster internal traffic.\n"}},"type":"object","required":["disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterDnsConfig:getClusterDnsConfig":{"properties":{"additiveVpcScopeDnsDomain":{"type":"string","description":"Enable additive VPC scope DNS in a GKE cluster.\n"},"clusterDns":{"type":"string","description":"Which in-cluster DNS provider should be used.\n"},"clusterDnsDomain":{"type":"string","description":"The suffix used for all cluster service records.\n"},"clusterDnsScope":{"type":"string","description":"The scope of access to cluster DNS records.\n"}},"type":"object","required":["additiveVpcScopeDnsDomain","clusterDns","clusterDnsDomain","clusterDnsScope"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterEnableK8sBetaApi:getClusterEnableK8sBetaApi":{"properties":{"enabledApis":{"type":"array","items":{"type":"string"},"description":"Enabled Kubernetes Beta APIs.\n"}},"type":"object","required":["enabledApis"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterEnterpriseConfig:getClusterEnterpriseConfig":{"properties":{"clusterTier":{"type":"string","description":"Indicates the effective cluster tier. Available options include STANDARD and ENTERPRISE.\n"},"desiredTier":{"type":"string","description":"Indicates the desired cluster tier. Available options include STANDARD and ENTERPRISE.\n"}},"type":"object","required":["clusterTier","desiredTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterFleet:getClusterFleet":{"properties":{"membership":{"type":"string","description":"Full resource name of the registered fleet membership of the cluster.\n"},"membershipId":{"type":"string","description":"Short name of the fleet membership, for example \"member-1\".\n"},"membershipLocation":{"type":"string","description":"Location of the fleet membership, for example \"us-central1\".\n"},"membershipType":{"type":"string","description":"The type of the cluster's fleet membership.\n"},"preRegistered":{"type":"boolean","description":"Whether the cluster has been registered via the fleet API.\n"},"project":{"type":"string","description":"The project in which the resource belongs. If it\nis not provided, the provider project is used.\n"}},"type":"object","required":["membership","membershipId","membershipLocation","membershipType","preRegistered","project"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterGatewayApiConfig:getClusterGatewayApiConfig":{"properties":{"channel":{"type":"string","description":"The Gateway API release channel to use for Gateway API.\n"}},"type":"object","required":["channel"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterGkeAutoUpgradeConfig:getClusterGkeAutoUpgradeConfig":{"properties":{"patchMode":{"type":"string","description":"The selected auto-upgrade patch type. Accepted values are:\n* ACCELERATED: Upgrades to the latest available patch version in a given minor and release channel.\n"}},"type":"object","required":["patchMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIdentityServiceConfig:getClusterIdentityServiceConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether to enable the Identity Service component.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIpAllocationPolicy:getClusterIpAllocationPolicy":{"properties":{"additionalIpRangesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterIpAllocationPolicyAdditionalIpRangesConfig:getClusterIpAllocationPolicyAdditionalIpRangesConfig"},"description":"AdditionalIPRangesConfig is the configuration for individual additional subnetworks attached to the cluster\n"},"additionalPodRangesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterIpAllocationPolicyAdditionalPodRangesConfig:getClusterIpAllocationPolicyAdditionalPodRangesConfig"},"description":"AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message.\n"},"autoIpamConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterIpAllocationPolicyAutoIpamConfig:getClusterIpAllocationPolicyAutoIpamConfig"},"description":"AutoIpamConfig contains all information related to Auto IPAM.\n"},"clusterIpv4CidrBlock":{"type":"string","description":"The IP address range for the cluster pod IPs. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.\n"},"clusterSecondaryRangeName":{"type":"string","description":"The name of the existing secondary range in the cluster's subnetwork to use for pod IP addresses. Alternatively,\u003cspan pulumi-lang-nodejs=\" clusterIpv4CidrBlock \" pulumi-lang-dotnet=\" ClusterIpv4CidrBlock \" pulumi-lang-go=\" clusterIpv4CidrBlock \" pulumi-lang-python=\" cluster_ipv4_cidr_block \" pulumi-lang-yaml=\" clusterIpv4CidrBlock \" pulumi-lang-java=\" clusterIpv4CidrBlock \"\u003e cluster_ipv4_cidr_block \u003c/span\u003ecan be used to automatically create a GKE-managed one.\n"},"networkTierConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterIpAllocationPolicyNetworkTierConfig:getClusterIpAllocationPolicyNetworkTierConfig"},"description":"Used to determine the default network tier for external IP addresses on cluster resources, such as node pools and load balancers.\n"},"podCidrOverprovisionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterIpAllocationPolicyPodCidrOverprovisionConfig:getClusterIpAllocationPolicyPodCidrOverprovisionConfig"},"description":"Configuration for cluster level pod cidr overprovision. Default is disabled=false.\n"},"servicesIpv4CidrBlock":{"type":"string","description":"The IP address range of the services IPs in this cluster. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.\n"},"servicesSecondaryRangeName":{"type":"string","description":"The name of the existing secondary range in the cluster's subnetwork to use for service ClusterIPs. Alternatively,\u003cspan pulumi-lang-nodejs=\" servicesIpv4CidrBlock \" pulumi-lang-dotnet=\" ServicesIpv4CidrBlock \" pulumi-lang-go=\" servicesIpv4CidrBlock \" pulumi-lang-python=\" services_ipv4_cidr_block \" pulumi-lang-yaml=\" servicesIpv4CidrBlock \" pulumi-lang-java=\" servicesIpv4CidrBlock \"\u003e services_ipv4_cidr_block \u003c/span\u003ecan be used to automatically create a GKE-managed one.\n"},"stackType":{"type":"string","description":"The IP Stack type of the cluster. Choose between IPV4 and IPV4_IPV6. Default type is IPV4 Only if not set\n"}},"type":"object","required":["additionalIpRangesConfigs","additionalPodRangesConfigs","autoIpamConfigs","clusterIpv4CidrBlock","clusterSecondaryRangeName","networkTierConfigs","podCidrOverprovisionConfigs","servicesIpv4CidrBlock","servicesSecondaryRangeName","stackType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIpAllocationPolicyAdditionalIpRangesConfig:getClusterIpAllocationPolicyAdditionalIpRangesConfig":{"properties":{"podIpv4RangeNames":{"type":"array","items":{"type":"string"},"description":"List of secondary ranges names within this subnetwork that can be used for pod IPs.\n"},"status":{"type":"string","description":"Status of the subnetwork, If in draining status, subnet will not be selected for new node pools.\n"},"subnetwork":{"type":"string","description":"Name of the subnetwork. This can be the full path of the subnetwork or just the name.\n"}},"type":"object","required":["podIpv4RangeNames","status","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIpAllocationPolicyAdditionalPodRangesConfig:getClusterIpAllocationPolicyAdditionalPodRangesConfig":{"properties":{"podRangeNames":{"type":"array","items":{"type":"string"},"description":"Name for pod secondary ipv4 range which has the actual range defined ahead.\n"}},"type":"object","required":["podRangeNames"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIpAllocationPolicyAutoIpamConfig:getClusterIpAllocationPolicyAutoIpamConfig":{"properties":{"enabled":{"type":"boolean","description":"The flag that enables Auto IPAM on this cluster.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIpAllocationPolicyNetworkTierConfig:getClusterIpAllocationPolicyNetworkTierConfig":{"properties":{"networkTier":{"type":"string","description":"Network tier configuration.\n"}},"type":"object","required":["networkTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterIpAllocationPolicyPodCidrOverprovisionConfig:getClusterIpAllocationPolicyPodCidrOverprovisionConfig":{"properties":{"disabled":{"type":"boolean"}},"type":"object","required":["disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterLoggingConfig:getClusterLoggingConfig":{"properties":{"enableComponents":{"type":"array","items":{"type":"string"},"description":"GKE components exposing logs. Valid values include SYSTEM_COMPONENTS, APISERVER, CONTROLLER_MANAGER, KCP_CONNECTION, KCP_SSHD, KCP_HPA, SCHEDULER, and WORKLOADS.\n"}},"type":"object","required":["enableComponents"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMaintenancePolicy:getClusterMaintenancePolicy":{"properties":{"dailyMaintenanceWindows":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMaintenancePolicyDailyMaintenanceWindow:getClusterMaintenancePolicyDailyMaintenanceWindow"},"description":"Time window specified for daily maintenance operations. Specify\u003cspan pulumi-lang-nodejs=\" startTime \" pulumi-lang-dotnet=\" StartTime \" pulumi-lang-go=\" startTime \" pulumi-lang-python=\" start_time \" pulumi-lang-yaml=\" startTime \" pulumi-lang-java=\" startTime \"\u003e start_time \u003c/span\u003ein RFC3339 format \"HH:MM”, where HH : [00-23] and MM : [00-59] GMT.\n"},"maintenanceExclusions":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMaintenancePolicyMaintenanceExclusion:getClusterMaintenancePolicyMaintenanceExclusion"},"description":"Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.\n"},"recurringWindows":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMaintenancePolicyRecurringWindow:getClusterMaintenancePolicyRecurringWindow"},"description":"Time window for recurring maintenance operations.\n"}},"type":"object","required":["dailyMaintenanceWindows","maintenanceExclusions","recurringWindows"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMaintenancePolicyDailyMaintenanceWindow:getClusterMaintenancePolicyDailyMaintenanceWindow":{"properties":{"duration":{"type":"string"},"startTime":{"type":"string"}},"type":"object","required":["duration","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMaintenancePolicyMaintenanceExclusion:getClusterMaintenancePolicyMaintenanceExclusion":{"properties":{"endTime":{"type":"string"},"exclusionName":{"type":"string"},"exclusionOptions":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMaintenancePolicyMaintenanceExclusionExclusionOption:getClusterMaintenancePolicyMaintenanceExclusionExclusionOption"},"description":"Maintenance exclusion related options.\n"},"startTime":{"type":"string"}},"type":"object","required":["endTime","exclusionName","exclusionOptions","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMaintenancePolicyMaintenanceExclusionExclusionOption:getClusterMaintenancePolicyMaintenanceExclusionExclusionOption":{"properties":{"endTimeBehavior":{"type":"string","description":"The behavior of the exclusion end time.\n"},"scope":{"type":"string","description":"The scope of automatic upgrades to restrict in the exclusion window.\n"}},"type":"object","required":["endTimeBehavior","scope"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMaintenancePolicyRecurringWindow:getClusterMaintenancePolicyRecurringWindow":{"properties":{"endTime":{"type":"string"},"recurrence":{"type":"string"},"startTime":{"type":"string"}},"type":"object","required":["endTime","recurrence","startTime"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterManagedOpentelemetryConfig:getClusterManagedOpentelemetryConfig":{"properties":{"scope":{"type":"string","description":"The scope of the Managed OpenTelemetry pipeline. Available options include SCOPE_UNSPECIFIED, NONE, and COLLECTION_AND_INSTRUMENTATION_COMPONENTS.\n"}},"type":"object","required":["scope"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMasterAuth:getClusterMasterAuth":{"properties":{"clientCertificate":{"type":"string","description":"Base64 encoded public certificate used by clients to authenticate to the cluster endpoint.\n"},"clientCertificateConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMasterAuthClientCertificateConfig:getClusterMasterAuthClientCertificateConfig"},"description":"Whether client certificate authorization is enabled for this cluster.\n"},"clientKey":{"type":"string","description":"Base64 encoded private key used by clients to authenticate to the cluster endpoint.\n"},"clusterCaCertificate":{"type":"string","description":"Base64 encoded public certificate that is the root of trust for the cluster.\n"}},"type":"object","required":["clientCertificate","clientCertificateConfigs","clientKey","clusterCaCertificate"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMasterAuthClientCertificateConfig:getClusterMasterAuthClientCertificateConfig":{"properties":{"issueClientCertificate":{"type":"boolean","description":"Whether client certificate authorization is enabled for this cluster.\n"}},"type":"object","required":["issueClientCertificate"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMasterAuthorizedNetworksConfig:getClusterMasterAuthorizedNetworksConfig":{"properties":{"cidrBlocks":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMasterAuthorizedNetworksConfigCidrBlock:getClusterMasterAuthorizedNetworksConfigCidrBlock"},"description":"External networks that can access the Kubernetes cluster master through HTTPS.\n"},"gcpPublicCidrsAccessEnabled":{"type":"boolean","description":"Whether Kubernetes master is accessible via Google Compute Engine Public IPs.\n"},"privateEndpointEnforcementEnabled":{"type":"boolean","description":"Whether authorized networks is enforced on the private endpoint or not. Defaults to false.\n"}},"type":"object","required":["cidrBlocks","gcpPublicCidrsAccessEnabled","privateEndpointEnforcementEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMasterAuthorizedNetworksConfigCidrBlock:getClusterMasterAuthorizedNetworksConfigCidrBlock":{"properties":{"cidrBlock":{"type":"string","description":"External network that can access Kubernetes master through HTTPS. Must be specified in CIDR notation.\n"},"displayName":{"type":"string","description":"Field for users to identify CIDR blocks.\n"}},"type":"object","required":["cidrBlock","displayName"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMeshCertificate:getClusterMeshCertificate":{"properties":{"enableCertificates":{"type":"boolean","description":"When enabled the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster.\n"}},"type":"object","required":["enableCertificates"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMonitoringConfig:getClusterMonitoringConfig":{"properties":{"advancedDatapathObservabilityConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMonitoringConfigAdvancedDatapathObservabilityConfig:getClusterMonitoringConfigAdvancedDatapathObservabilityConfig"},"description":"Configuration of Advanced Datapath Observability features.\n"},"enableComponents":{"type":"array","items":{"type":"string"},"description":"GKE components exposing metrics. Valid values include SYSTEM_COMPONENTS, APISERVER, SCHEDULER, CONTROLLER_MANAGER, STORAGE, HPA, POD, DAEMONSET, DEPLOYMENT, STATEFULSET, WORKLOADS, KUBELET, CADVISOR, DCGM and JOBSET.\n"},"managedPrometheuses":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMonitoringConfigManagedPrometheus:getClusterMonitoringConfigManagedPrometheus"},"description":"Configuration for Google Cloud Managed Services for Prometheus.\n"}},"type":"object","required":["advancedDatapathObservabilityConfigs","enableComponents","managedPrometheuses"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMonitoringConfigAdvancedDatapathObservabilityConfig:getClusterMonitoringConfigAdvancedDatapathObservabilityConfig":{"properties":{"enableMetrics":{"type":"boolean","description":"Whether or not the advanced datapath metrics are enabled.\n"},"enableRelay":{"type":"boolean","description":"Whether or not Relay is enabled.\n"}},"type":"object","required":["enableMetrics","enableRelay"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMonitoringConfigManagedPrometheus:getClusterMonitoringConfigManagedPrometheus":{"properties":{"autoMonitoringConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig:getClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig"},"description":"Configuration for GKE Workload Auto-Monitoring.\n"},"enabled":{"type":"boolean","description":"Whether or not the managed collection is enabled.\n"}},"type":"object","required":["autoMonitoringConfigs","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig:getClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig":{"properties":{"scope":{"type":"string","description":"The scope of auto-monitoring.\n"}},"type":"object","required":["scope"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNetworkPerformanceConfig:getClusterNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"Specifies the total network bandwidth tier for NodePools in the cluster.\n"}},"type":"object","required":["totalEgressBandwidthTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNetworkPolicy:getClusterNetworkPolicy":{"properties":{"enabled":{"type":"boolean","description":"Whether network policy is enabled on the cluster.\n"},"provider":{"type":"string","description":"The selected network policy provider.\n"}},"type":"object","required":["enabled","provider"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfig:getClusterNodeConfig":{"properties":{"advancedMachineFeatures":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigAdvancedMachineFeature:getClusterNodeConfigAdvancedMachineFeature"},"description":"Specifies options for controlling advanced machine features.\n"},"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.\n"},"bootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigBootDisk:getClusterNodeConfigBootDisk"},"description":"Boot disk configuration for node pools nodes.\n"},"confidentialNodes":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigConfidentialNode:getClusterNodeConfigConfidentialNode"},"description":"Configuration for the confidential nodes feature, which makes nodes run on confidential VMs.\n"},"containerdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfig:getClusterNodeConfigContainerdConfig"},"description":"Parameters for containerd configuration.\n"},"diskSizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd\n"},"effectiveTaints":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigEffectiveTaint:getClusterNodeConfigEffectiveTaint"},"description":"List of kubernetes taints applied to each node.\n"},"enableConfidentialStorage":{"type":"boolean","description":"If enabled boot disks are configured with confidential mode.\n"},"ephemeralStorageConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigEphemeralStorageConfig:getClusterNodeConfigEphemeralStorageConfig"},"description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.\n"},"ephemeralStorageLocalSsdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigEphemeralStorageLocalSsdConfig:getClusterNodeConfigEphemeralStorageLocalSsdConfig"},"description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.\n"},"fastSockets":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigFastSocket:getClusterNodeConfigFastSocket"},"description":"Enable or disable NCCL Fast Socket in the node pool.\n"},"flexStart":{"type":"boolean","description":"Enables Flex Start provisioning model for the node pool\n"},"gcfsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigGcfsConfig:getClusterNodeConfigGcfsConfig"},"description":"GCFS configuration for this node.\n"},"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigGuestAccelerator:getClusterNodeConfigGuestAccelerator"},"description":"List of the type and count of accelerator cards attached to the instance.\n"},"gvnics":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigGvnic:getClusterNodeConfigGvnic"},"description":"Enable or disable gvnic in the node pool.\n"},"hostMaintenancePolicies":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigHostMaintenancePolicy:getClusterNodeConfigHostMaintenancePolicy"},"description":"The maintenance policy for the hosts on which the GKE VMs run on.\n"},"imageType":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.\n"},"kubeletConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigKubeletConfig:getClusterNodeConfigKubeletConfig"},"description":"Node kubelet configs.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.\n"},"linuxNodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigLinuxNodeConfig:getClusterNodeConfigLinuxNodeConfig"},"description":"Parameters that can be configured on Linux nodes.\n"},"localNvmeSsdBlockConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigLocalNvmeSsdBlockConfig:getClusterNodeConfigLocalNvmeSsdBlockConfig"},"description":"Parameters for raw-block local NVMe SSDs.\n"},"localSsdCount":{"type":"integer","description":"The number of local SSD disks to be attached to the node.\n"},"localSsdEncryptionMode":{"type":"string","description":"LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.\n"},"loggingVariant":{"type":"string","description":"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type.\n"},"maxRunDuration":{"type":"string","description":"The runtime of each node in the node pool in seconds, terminated by 's'. Example: \"3600s\".\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key/value pairs assigned to instances in the cluster.\n"},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.\n"},"nodeGroup":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available on all of the node VMs.\n"},"preemptible":{"type":"boolean","description":"Whether the nodes are created as preemptible VM instances.\n"},"reservationAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigReservationAffinity:getClusterNodeConfigReservationAffinity"},"description":"The reservation affinity configuration for the node pool.\n"},"resourceLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The GCE resource labels (a map of key/value pairs) to be applied to the node pool.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"sandboxConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigSandboxConfig:getClusterNodeConfigSandboxConfig"},"description":"Sandbox configuration for this node.\n"},"secondaryBootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigSecondaryBootDisk:getClusterNodeConfigSecondaryBootDisk"},"description":"Secondary boot disks for preloading data or container images.\n"},"serviceAccount":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.\n"},"shieldedInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigShieldedInstanceConfig:getClusterNodeConfigShieldedInstanceConfig"},"description":"Shielded Instance options.\n"},"soleTenantConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigSoleTenantConfig:getClusterNodeConfigSoleTenantConfig"},"description":"Node affinity options for sole tenant node pools.\n"},"spot":{"type":"boolean","description":"Whether the nodes are created as spot VM instances.\n"},"storagePools":{"type":"array","items":{"type":"string"},"description":"The list of Storage Pools where boot disks are provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all nodes.\n"},"taints":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigTaint:getClusterNodeConfigTaint"},"description":"List of Kubernetes taints to be applied to each node.\n"},"windowsNodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigWindowsNodeConfig:getClusterNodeConfigWindowsNodeConfig"},"description":"Parameters that can be configured on Windows nodes.\n"},"workloadMetadataConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigWorkloadMetadataConfig:getClusterNodeConfigWorkloadMetadataConfig"},"description":"The workload metadata configuration for this node.\n"}},"type":"object","required":["advancedMachineFeatures","bootDisks","bootDiskKmsKey","confidentialNodes","containerdConfigs","diskSizeGb","diskType","effectiveTaints","enableConfidentialStorage","ephemeralStorageConfigs","ephemeralStorageLocalSsdConfigs","fastSockets","flexStart","gcfsConfigs","guestAccelerators","gvnics","hostMaintenancePolicies","imageType","kubeletConfigs","labels","linuxNodeConfigs","localNvmeSsdBlockConfigs","localSsdCount","localSsdEncryptionMode","loggingVariant","machineType","maxRunDuration","metadata","minCpuPlatform","nodeGroup","oauthScopes","preemptible","reservationAffinities","resourceLabels","resourceManagerTags","sandboxConfigs","secondaryBootDisks","serviceAccount","shieldedInstanceConfigs","soleTenantConfigs","spot","storagePools","tags","taints","windowsNodeConfigs","workloadMetadataConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigAdvancedMachineFeature:getClusterNodeConfigAdvancedMachineFeature":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether the node should have nested virtualization enabled.\n"},"performanceMonitoringUnit":{"type":"string","description":"Level of Performance Monitoring Unit (PMU) requested. If unset, no access to the PMU is assumed.\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"}},"type":"object","required":["enableNestedVirtualization","performanceMonitoringUnit","threadsPerCore"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigBootDisk:getClusterNodeConfigBootDisk":{"properties":{"diskType":{"type":"string","description":"Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd\n"},"provisionedIops":{"type":"integer","description":"Configured IOPs provisioning. Only valid with disk type hyperdisk-balanced.\n"},"provisionedThroughput":{"type":"integer","description":"Configured throughput provisioning. Only valid with disk type hyperdisk-balanced.\n"},"sizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"}},"type":"object","required":["diskType","provisionedIops","provisionedThroughput","sizeGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigConfidentialNode:getClusterNodeConfigConfidentialNode":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used by the confidential node.\n"},"enabled":{"type":"boolean","description":"Whether Confidential Nodes feature is enabled for all nodes in this pool.\n"}},"type":"object","required":["confidentialInstanceType","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfig:getClusterNodeConfigContainerdConfig":{"properties":{"privateRegistryAccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig:getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig"},"description":"Parameters for private container registries configuration.\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHost:getClusterNodeConfigContainerdConfigRegistryHost"},"description":"Configures containerd registry host configuration. Each\u003cspan pulumi-lang-nodejs=\" registryHosts \" pulumi-lang-dotnet=\" RegistryHosts \" pulumi-lang-go=\" registryHosts \" pulumi-lang-python=\" registry_hosts \" pulumi-lang-yaml=\" registryHosts \" pulumi-lang-java=\" registryHosts \"\u003e registry_hosts \u003c/span\u003eentry represents a hosts.toml file.\n"},"writableCgroups":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigWritableCgroup:getClusterNodeConfigContainerdConfigWritableCgroup"},"description":"Parameters for writable cgroups configuration.\n"}},"type":"object","required":["privateRegistryAccessConfigs","registryHosts","writableCgroups"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig:getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"Parameters for configuring CA certificate and domains.\n"},"enabled":{"type":"boolean","description":"Whether or not private registries are configured.\n"}},"type":"object","required":["certificateAuthorityDomainConfigs","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig"},"description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:getClusterNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHost:getClusterNodeConfigContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHost:getClusterNodeConfigContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["hosts","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHost:getClusterNodeConfigContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostCa:getClusterNodeConfigContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostClient:getClusterNodeConfigContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostHeader:getClusterNodeConfigContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["cas","capabilities","clients","dialTimeout","headers","host","overridePath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostCa:getClusterNodeConfigContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostClient:getClusterNodeConfigContainerdConfigRegistryHostHostClient":{"properties":{"certs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostClientCert:getClusterNodeConfigContainerdConfigRegistryHostHostClientCert"},"description":"Configures the client certificate.\n"},"keys":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostClientKey:getClusterNodeConfigContainerdConfigRegistryHostHostClientKey"},"description":"Configures the client private key.\n"}},"type":"object","required":["certs","keys"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostClientCert:getClusterNodeConfigContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostClientKey:getClusterNodeConfigContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigRegistryHostHostHeader:getClusterNodeConfigContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigContainerdConfigWritableCgroup:getClusterNodeConfigContainerdConfigWritableCgroup":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigEffectiveTaint:getClusterNodeConfigEffectiveTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigEphemeralStorageConfig:getClusterNodeConfigEphemeralStorageConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.\n"}},"type":"object","required":["localSsdCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigEphemeralStorageLocalSsdConfig:getClusterNodeConfigEphemeralStorageLocalSsdConfig":{"properties":{"dataCacheCount":{"type":"integer","description":"Number of local SSDs to be utilized for GKE Data Cache. Uses NVMe interfaces.\n"},"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.\n"}},"type":"object","required":["dataCacheCount","localSsdCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigFastSocket:getClusterNodeConfigFastSocket":{"properties":{"enabled":{"type":"boolean","description":"Whether or not NCCL Fast Socket is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigGcfsConfig:getClusterNodeConfigGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not GCFS is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigGuestAccelerator:getClusterNodeConfigGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the accelerator cards exposed to an instance.\n"},"gpuDriverInstallationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig:getClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig"},"description":"Configuration for auto installation of GPU driver.\n"},"gpuPartitionSize":{"type":"string","description":"Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning)\n"},"gpuSharingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigGuestAcceleratorGpuSharingConfig:getClusterNodeConfigGuestAcceleratorGpuSharingConfig"},"description":"Configuration for GPU sharing.\n"},"type":{"type":"string","description":"The accelerator type resource name.\n"}},"type":"object","required":["count","gpuDriverInstallationConfigs","gpuPartitionSize","gpuSharingConfigs","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig:getClusterNodeConfigGuestAcceleratorGpuDriverInstallationConfig":{"properties":{"gpuDriverVersion":{"type":"string","description":"Mode for how the GPU driver is installed.\n"}},"type":"object","required":["gpuDriverVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigGuestAcceleratorGpuSharingConfig:getClusterNodeConfigGuestAcceleratorGpuSharingConfig":{"properties":{"gpuSharingStrategy":{"type":"string","description":"The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig)\n"},"maxSharedClientsPerGpu":{"type":"integer","description":"The maximum number of containers that can share a GPU.\n"}},"type":"object","required":["gpuSharingStrategy","maxSharedClientsPerGpu"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigGvnic:getClusterNodeConfigGvnic":{"properties":{"enabled":{"type":"boolean","description":"Whether or not gvnic is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigHostMaintenancePolicy:getClusterNodeConfigHostMaintenancePolicy":{"properties":{"maintenanceInterval":{"type":"string","description":".\n"}},"type":"object","required":["maintenanceInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigKubeletConfig:getClusterNodeConfigKubeletConfig":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns which can be set on the Pods.\n"},"containerLogMaxFiles":{"type":"integer","description":"Defines the maximum number of container log files that can be present for a container.\n"},"containerLogMaxSize":{"type":"string","description":"Defines the maximum size of the container log file before it is rotated.\n"},"cpuCfsQuota":{"type":"boolean","description":"Enable CPU CFS quota enforcement for containers that specify CPU limits.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"Set the CPU CFS quota period value 'cpu.cfs_period_us'.\n"},"cpuManagerPolicy":{"type":"string","description":"Control the CPU management policy on the node.\n"},"evictionMaxPodGracePeriodSeconds":{"type":"integer","description":"Defines the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.\n"},"evictionMinimumReclaims":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigKubeletConfigEvictionMinimumReclaim:getClusterNodeConfigKubeletConfigEvictionMinimumReclaim"},"description":"Defines a map of signal names to percentage that defines minimum reclaims. It describes the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction.\n"},"evictionSoftGracePeriods":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigKubeletConfigEvictionSoftGracePeriod:getClusterNodeConfigKubeletConfigEvictionSoftGracePeriod"},"description":"Defines a map of signal names to durations that defines grace periods for soft eviction thresholds. Each soft eviction threshold must have a corresponding grace period.\n"},"evictionSofts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigKubeletConfigEvictionSoft:getClusterNodeConfigKubeletConfigEvictionSoft"},"description":"Defines a map of signal names to quantities or percentage that defines soft eviction thresholds.\n"},"imageGcHighThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage after which image garbage collection is always run.\n"},"imageGcLowThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to.\n"},"imageMaximumGcAge":{"type":"string","description":"Defines the maximum age an image can be unused before it is garbage collected.\n"},"imageMinimumGcAge":{"type":"string","description":"Defines the minimum age for an unused image before it is garbage collected.\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"maxParallelImagePulls":{"type":"integer","description":"Set the maximum number of image pulls in parallel.\n"},"memoryManagers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigKubeletConfigMemoryManager:getClusterNodeConfigKubeletConfigMemoryManager"},"description":"Configuration for the Memory Manager on the node. The memory manager optimizes memory and hugepages allocation for pods, especially those in the Guaranteed QoS class, by influencing NUMA affinity.\n"},"podPidsLimit":{"type":"integer","description":"Controls the maximum number of processes allowed to run in a pod.\n"},"singleProcessOomKill":{"type":"boolean","description":"Defines whether to enable single process OOM killer.\n"},"topologyManagers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigKubeletConfigTopologyManager:getClusterNodeConfigKubeletConfigTopologyManager"},"description":"Configuration for the Topology Manager on the node. The Topology Manager aligns CPU, memory, and device resources on a node to optimize performance, especially for NUMA-aware workloads, by ensuring resource co-location.\n"}},"type":"object","required":["allowedUnsafeSysctls","containerLogMaxFiles","containerLogMaxSize","cpuCfsQuota","cpuCfsQuotaPeriod","cpuManagerPolicy","evictionMaxPodGracePeriodSeconds","evictionMinimumReclaims","evictionSofts","evictionSoftGracePeriods","imageGcHighThresholdPercent","imageGcLowThresholdPercent","imageMaximumGcAge","imageMinimumGcAge","insecureKubeletReadonlyPortEnabled","maxParallelImagePulls","memoryManagers","podPidsLimit","singleProcessOomKill","topologyManagers"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigKubeletConfigEvictionMinimumReclaim:getClusterNodeConfigKubeletConfigEvictionMinimumReclaim":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.available.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.inodesFree.\n"},"memoryAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for memory.available.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.available.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.inodesFree.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for pid.available.\n"}},"type":"object","required":["imagefsAvailable","imagefsInodesFree","memoryAvailable","nodefsAvailable","nodefsInodesFree","pidAvailable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigKubeletConfigEvictionSoft:getClusterNodeConfigKubeletConfigEvictionSoft":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.available.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.inodesFree.\n"},"memoryAvailable":{"type":"string","description":"Defines quantity of soft eviction threshold for memory.available.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.available.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.inodesFree.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for pid.available.\n"}},"type":"object","required":["imagefsAvailable","imagefsInodesFree","memoryAvailable","nodefsAvailable","nodefsInodesFree","pidAvailable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigKubeletConfigEvictionSoftGracePeriod:getClusterNodeConfigKubeletConfigEvictionSoftGracePeriod":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines grace period for the imagefs.available soft eviction threshold\n"},"imagefsInodesFree":{"type":"string","description":"Defines grace period for the imagefs.inodesFree soft eviction threshold.\n"},"memoryAvailable":{"type":"string","description":"Defines grace period for the memory.available soft eviction threshold.\n"},"nodefsAvailable":{"type":"string","description":"Defines grace period for the nodefs.available soft eviction threshold.\n"},"nodefsInodesFree":{"type":"string","description":"Defines grace period for the nodefs.inodesFree soft eviction threshold.\n"},"pidAvailable":{"type":"string","description":"Defines grace period for the pid.available soft eviction threshold.\n"}},"type":"object","required":["imagefsAvailable","imagefsInodesFree","memoryAvailable","nodefsAvailable","nodefsInodesFree","pidAvailable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigKubeletConfigMemoryManager:getClusterNodeConfigKubeletConfigMemoryManager":{"properties":{"policy":{"type":"string","description":"The Memory Manager policy to use. This policy guides how memory and hugepages are allocated and managed for pods on the node, influencing NUMA affinity.\n"}},"type":"object","required":["policy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigKubeletConfigTopologyManager:getClusterNodeConfigKubeletConfigTopologyManager":{"properties":{"policy":{"type":"string","description":"The Topology Manager policy to use. This policy dictates how resource alignment is handled on the node.\n"},"scope":{"type":"string","description":"The Topology Manager scope, defining the granularity at which policy decisions are applied. Valid values are \"container\" (resources are aligned per container within a pod) or \"pod\" (resources are aligned for the entire pod).\n"}},"type":"object","required":["policy","scope"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigLinuxNodeConfig:getClusterNodeConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"cgroupMode specifies the cgroup mode to be used on the node.\n"},"hugepagesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigLinuxNodeConfigHugepagesConfig:getClusterNodeConfigLinuxNodeConfigHugepagesConfig"},"description":"Amounts for 2M and 1G hugepages.\n"},"nodeKernelModuleLoadings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading:getClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading"},"description":"The settings for kernel module loading.\n"},"sysctls":{"type":"object","additionalProperties":{"type":"string"},"description":"The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.\n"},"transparentHugepageDefrag":{"type":"string","description":"The Linux kernel transparent hugepage defrag setting.\n"},"transparentHugepageEnabled":{"type":"string","description":"The Linux kernel transparent hugepage setting.\n"}},"type":"object","required":["cgroupMode","hugepagesConfigs","nodeKernelModuleLoadings","sysctls","transparentHugepageDefrag","transparentHugepageEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigLinuxNodeConfigHugepagesConfig:getClusterNodeConfigLinuxNodeConfigHugepagesConfig":{"properties":{"hugepageSize1g":{"type":"integer","description":"Amount of 1G hugepages.\n"},"hugepageSize2m":{"type":"integer","description":"Amount of 2M hugepages.\n"}},"type":"object","required":["hugepageSize1g","hugepageSize2m"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading:getClusterNodeConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"The policy for kernel module loading.\n"}},"type":"object","required":["policy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigLocalNvmeSsdBlockConfig:getClusterNodeConfigLocalNvmeSsdBlockConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size.\n"}},"type":"object","required":["localSsdCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigReservationAffinity:getClusterNodeConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"Corresponds to the type of reservation consumption.\n"},"key":{"type":"string","description":"The label key of a reservation resource.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The label values of the reservation resource.\n"}},"type":"object","required":["consumeReservationType","key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigSandboxConfig:getClusterNodeConfigSandboxConfig":{"properties":{"sandboxType":{"type":"string","description":"Type of the sandbox to use for the node (e.g. 'gvisor')\n"}},"type":"object","required":["sandboxType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigSecondaryBootDisk:getClusterNodeConfigSecondaryBootDisk":{"properties":{"diskImage":{"type":"string","description":"Disk image to create the secondary boot disk from\n"},"mode":{"type":"string","description":"Mode for how the secondary boot disk is used.\n"}},"type":"object","required":["diskImage","mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigShieldedInstanceConfig:getClusterNodeConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines whether the instance has integrity monitoring enabled.\n"},"enableSecureBoot":{"type":"boolean","description":"Defines whether the instance has Secure Boot enabled.\n"}},"type":"object","required":["enableIntegrityMonitoring","enableSecureBoot"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigSoleTenantConfig:getClusterNodeConfigSoleTenantConfig":{"properties":{"minNodeCpus":{"type":"integer","description":"Specifies the minimum number of vCPUs that each sole tenant node must have to use CPU overcommit. If not specified, the CPU overcommit feature is disabled.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodeConfigSoleTenantConfigNodeAffinity:getClusterNodeConfigSoleTenantConfigNodeAffinity"},"description":".\n"}},"type":"object","required":["minNodeCpus","nodeAffinities"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigSoleTenantConfigNodeAffinity:getClusterNodeConfigSoleTenantConfigNodeAffinity":{"properties":{"key":{"type":"string","description":".\n"},"operator":{"type":"string","description":".\n"},"values":{"type":"array","items":{"type":"string"},"description":".\n"}},"type":"object","required":["key","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigTaint:getClusterNodeConfigTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigWindowsNodeConfig:getClusterNodeConfigWindowsNodeConfig":{"properties":{"osversion":{"type":"string","description":"The OS Version of the windows nodepool.Values are OS_VERSION_UNSPECIFIED,OS_VERSION_LTSC2019 and OS_VERSION_LTSC2022\n"}},"type":"object","required":["osversion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodeConfigWorkloadMetadataConfig:getClusterNodeConfigWorkloadMetadataConfig":{"properties":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.\n"}},"type":"object","required":["mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePool:getClusterNodePool":{"properties":{"autoscalings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolAutoscaling:getClusterNodePoolAutoscaling"},"description":"Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage.\n"},"initialNodeCount":{"type":"integer","description":"The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource.\n"},"instanceGroupUrls":{"type":"array","items":{"type":"string"},"description":"The resource URLs of the managed instance groups associated with this node pool.\n"},"managedInstanceGroupUrls":{"type":"array","items":{"type":"string"},"description":"List of instance group URLs which have been assigned to this node pool.\n"},"managements":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolManagement:getClusterNodePoolManagement"},"description":"Node management configuration, wherein auto-repair and auto-upgrade is configured.\n"},"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods per node in this node pool. Note that this does not work on node pools which are \"route-based\" - that is, node pools belonging to clusters that do not have IP Aliasing enabled.\n"},"name":{"type":"string","description":"The name of the cluster.\n"},"namePrefix":{"type":"string","description":"Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.\n"},"networkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNetworkConfig:getClusterNodePoolNetworkConfig"},"description":"Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults.\n"},"nodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfig:getClusterNodePoolNodeConfig"},"description":"The configuration of the nodepool\n"},"nodeCount":{"type":"integer","description":"The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.\n"},"nodeDrainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeDrainConfig:getClusterNodePoolNodeDrainConfig"},"description":"Node drain configuration for this NodePool.\n"},"nodeLocations":{"type":"array","items":{"type":"string"},"description":"The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level\u003cspan pulumi-lang-nodejs=\" nodeLocations \" pulumi-lang-dotnet=\" NodeLocations \" pulumi-lang-go=\" nodeLocations \" pulumi-lang-python=\" node_locations \" pulumi-lang-yaml=\" nodeLocations \" pulumi-lang-java=\" nodeLocations \"\u003e node_locations \u003c/span\u003ewill be used.\n"},"placementPolicies":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolPlacementPolicy:getClusterNodePoolPlacementPolicy"},"description":"Specifies the node placement policy\n"},"queuedProvisionings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolQueuedProvisioning:getClusterNodePoolQueuedProvisioning"},"description":"Specifies the configuration of queued provisioning\n"},"upgradeSettings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolUpgradeSetting:getClusterNodePoolUpgradeSetting"},"description":"Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of\u003cspan pulumi-lang-nodejs=\" maxSurge \" pulumi-lang-dotnet=\" MaxSurge \" pulumi-lang-go=\" maxSurge \" pulumi-lang-python=\" max_surge \" pulumi-lang-yaml=\" maxSurge \" pulumi-lang-java=\" maxSurge \"\u003e max_surge \u003c/span\u003eand max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20.\n"},"version":{"type":"string","description":"The Kubernetes version for the nodes in this pool. Note that if this field and\u003cspan pulumi-lang-nodejs=\" autoUpgrade \" pulumi-lang-dotnet=\" AutoUpgrade \" pulumi-lang-go=\" autoUpgrade \" pulumi-lang-python=\" auto_upgrade \" pulumi-lang-yaml=\" autoUpgrade \" pulumi-lang-java=\" autoUpgrade \"\u003e auto_upgrade \u003c/span\u003eare both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as Terraform will see spurious diffs when fuzzy versions are used. See the\u003cspan pulumi-lang-nodejs=\" gcp.container.getEngineVersions \" pulumi-lang-dotnet=\" gcp.container.getEngineVersions \" pulumi-lang-go=\" container.getEngineVersions \" pulumi-lang-python=\" container_get_engine_versions \" pulumi-lang-yaml=\" gcp.container.getEngineVersions \" pulumi-lang-java=\" gcp.container.getEngineVersions \"\u003e gcp.container.getEngineVersions \u003c/span\u003edata source's\u003cspan pulumi-lang-nodejs=\" versionPrefix \" pulumi-lang-dotnet=\" VersionPrefix \" pulumi-lang-go=\" versionPrefix \" pulumi-lang-python=\" version_prefix \" pulumi-lang-yaml=\" versionPrefix \" pulumi-lang-java=\" versionPrefix \"\u003e version_prefix \u003c/span\u003efield to approximate fuzzy versions in a Terraform-compatible way.\n"}},"type":"object","required":["autoscalings","initialNodeCount","instanceGroupUrls","managedInstanceGroupUrls","managements","maxPodsPerNode","name","namePrefix","networkConfigs","nodeConfigs","nodeCount","nodeDrainConfigs","nodeLocations","placementPolicies","queuedProvisionings","upgradeSettings","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolAutoConfig:getClusterNodePoolAutoConfig":{"properties":{"linuxNodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolAutoConfigLinuxNodeConfig:getClusterNodePoolAutoConfigLinuxNodeConfig"},"description":"Linux node configuration options.\n"},"networkTags":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolAutoConfigNetworkTag:getClusterNodePoolAutoConfigNetworkTag"},"description":"Collection of Compute Engine network tags that can be applied to a node's underlying VM instance.\n"},"nodeKubeletConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolAutoConfigNodeKubeletConfig:getClusterNodePoolAutoConfigNodeKubeletConfig"},"description":"Node kubelet configs.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"}},"type":"object","required":["linuxNodeConfigs","networkTags","nodeKubeletConfigs","resourceManagerTags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolAutoConfigLinuxNodeConfig:getClusterNodePoolAutoConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"cgroupMode specifies the cgroup mode to be used on the node.\n"},"nodeKernelModuleLoadings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading:getClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading"},"description":"The settings for kernel module loading.\n"}},"type":"object","required":["cgroupMode","nodeKernelModuleLoadings"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading:getClusterNodePoolAutoConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"The policy for kernel module loading.\n"}},"type":"object","required":["policy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolAutoConfigNetworkTag:getClusterNodePoolAutoConfigNetworkTag":{"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"List of network tags applied to auto-provisioned node pools.\n"}},"type":"object","required":["tags"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolAutoConfigNodeKubeletConfig:getClusterNodePoolAutoConfigNodeKubeletConfig":{"properties":{"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"}},"type":"object","required":["insecureKubeletReadonlyPortEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolAutoscaling:getClusterNodePoolAutoscaling":{"properties":{"locationPolicy":{"type":"string","description":"Location policy specifies the algorithm used when scaling-up the node pool. \"BALANCED\" - Is a best effort policy that aims to balance the sizes of available zones. \"ANY\" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduces preemption risk for Spot VMs.\n"},"maxNodeCount":{"type":"integer","description":"Maximum number of nodes per zone in the node pool. Must be \u003e= min_node_count. Cannot be used with total limits.\n"},"minNodeCount":{"type":"integer","description":"Minimum number of nodes per zone in the node pool. Must be \u003e=0 and \u003c= max_node_count. Cannot be used with total limits.\n"},"totalMaxNodeCount":{"type":"integer","description":"Maximum number of all nodes in the node pool. Must be \u003e= total_min_node_count. Cannot be used with per zone limits.\n"},"totalMinNodeCount":{"type":"integer","description":"Minimum number of all nodes in the node pool. Must be \u003e=0 and \u003c= total_max_node_count. Cannot be used with per zone limits.\n"}},"type":"object","required":["locationPolicy","maxNodeCount","minNodeCount","totalMaxNodeCount","totalMinNodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefault:getClusterNodePoolDefault":{"properties":{"nodeConfigDefaults":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefault:getClusterNodePoolDefaultNodeConfigDefault"},"description":"Subset of NodeConfig message that has defaults.\n"}},"type":"object","required":["nodeConfigDefaults"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefault:getClusterNodePoolDefaultNodeConfigDefault":{"properties":{"containerdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfig"},"description":"Parameters for containerd configuration.\n"},"gcfsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultGcfsConfig:getClusterNodePoolDefaultNodeConfigDefaultGcfsConfig"},"description":"GCFS configuration for this node.\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"loggingVariant":{"type":"string","description":"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\n"}},"type":"object","required":["containerdConfigs","gcfsConfigs","insecureKubeletReadonlyPortEnabled","loggingVariant"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfig":{"properties":{"privateRegistryAccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfig"},"description":"Parameters for private container registries configuration.\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHost:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHost"},"description":"Configures containerd registry host configuration. Each\u003cspan pulumi-lang-nodejs=\" registryHosts \" pulumi-lang-dotnet=\" RegistryHosts \" pulumi-lang-go=\" registryHosts \" pulumi-lang-python=\" registry_hosts \" pulumi-lang-yaml=\" registryHosts \" pulumi-lang-java=\" registryHosts \"\u003e registry_hosts \u003c/span\u003eentry represents a hosts.toml file.\n"},"writableCgroups":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigWritableCgroup:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigWritableCgroup"},"description":"Parameters for writable cgroups configuration.\n"}},"type":"object","required":["privateRegistryAccessConfigs","registryHosts","writableCgroups"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"Parameters for configuring CA certificate and domains.\n"},"enabled":{"type":"boolean","description":"Whether or not private registries are configured.\n"}},"type":"object","required":["certificateAuthorityDomainConfigs","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig"},"description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHost:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHost:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["hosts","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHost:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostCa:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClient:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostHeader:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["cas","capabilities","clients","dialTimeout","headers","host","overridePath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostCa:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClient:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClient":{"properties":{"certs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientCert:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientCert"},"description":"Configures the client certificate.\n"},"keys":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientKey:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientKey"},"description":"Configures the client private key.\n"}},"type":"object","required":["certs","keys"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientCert:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientKey:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostHeader:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigWritableCgroup:getClusterNodePoolDefaultNodeConfigDefaultContainerdConfigWritableCgroup":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolDefaultNodeConfigDefaultGcfsConfig:getClusterNodePoolDefaultNodeConfigDefaultGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not GCFS is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolManagement:getClusterNodePoolManagement":{"properties":{"autoRepair":{"type":"boolean","description":"Whether the nodes will be automatically repaired. Enabled by default.\n"},"autoUpgrade":{"type":"boolean","description":"Whether the nodes will be automatically upgraded. Enabled by default.\n"}},"type":"object","required":["autoRepair","autoUpgrade"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNetworkConfig:getClusterNodePoolNetworkConfig":{"properties":{"acceleratorNetworkProfile":{"type":"string","description":"The accelerator network profile to use for this node pool.\n"},"additionalNodeNetworkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig:getClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig"},"description":"We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface\n"},"additionalPodNetworkConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNetworkConfigAdditionalPodNetworkConfig:getClusterNodePoolNetworkConfigAdditionalPodNetworkConfig"},"description":"We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node\n"},"createPodRange":{"type":"boolean","description":"Whether to create a new range for pod IPs in this node pool. Defaults are provided for\u003cspan pulumi-lang-nodejs=\" podRange \" pulumi-lang-dotnet=\" PodRange \" pulumi-lang-go=\" podRange \" pulumi-lang-python=\" pod_range \" pulumi-lang-yaml=\" podRange \" pulumi-lang-java=\" podRange \"\u003e pod_range \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" podIpv4CidrBlock \" pulumi-lang-dotnet=\" PodIpv4CidrBlock \" pulumi-lang-go=\" podIpv4CidrBlock \" pulumi-lang-python=\" pod_ipv4_cidr_block \" pulumi-lang-yaml=\" podIpv4CidrBlock \" pulumi-lang-java=\" podIpv4CidrBlock \"\u003e pod_ipv4_cidr_block \u003c/span\u003eif they are not specified.\n"},"enablePrivateNodes":{"type":"boolean","description":"Whether nodes have internal IP addresses only.\n"},"networkPerformanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNetworkConfigNetworkPerformanceConfig:getClusterNodePoolNetworkConfigNetworkPerformanceConfig"},"description":"Network bandwidth tier configuration.\n"},"podCidrOverprovisionConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNetworkConfigPodCidrOverprovisionConfig:getClusterNodePoolNetworkConfigPodCidrOverprovisionConfig"},"description":"Configuration for node-pool level pod cidr overprovision. If not set, the cluster level setting will be inherited\n"},"podIpv4CidrBlock":{"type":"string","description":"The IP address range for pod IPs in this node pool. Only applicable if\u003cspan pulumi-lang-nodejs=\" createPodRange \" pulumi-lang-dotnet=\" CreatePodRange \" pulumi-lang-go=\" createPodRange \" pulumi-lang-python=\" create_pod_range \" pulumi-lang-yaml=\" createPodRange \" pulumi-lang-java=\" createPodRange \"\u003e create_pod_range \u003c/span\u003eis true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. /14) to have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 10.96.0.0/14) to pick a specific range to use.\n"},"podRange":{"type":"string","description":"The ID of the secondary range for pod IPs. If\u003cspan pulumi-lang-nodejs=\" createPodRange \" pulumi-lang-dotnet=\" CreatePodRange \" pulumi-lang-go=\" createPodRange \" pulumi-lang-python=\" create_pod_range \" pulumi-lang-yaml=\" createPodRange \" pulumi-lang-java=\" createPodRange \"\u003e create_pod_range \u003c/span\u003eis true, this ID is used for the new range. If\u003cspan pulumi-lang-nodejs=\" createPodRange \" pulumi-lang-dotnet=\" CreatePodRange \" pulumi-lang-go=\" createPodRange \" pulumi-lang-python=\" create_pod_range \" pulumi-lang-yaml=\" createPodRange \" pulumi-lang-java=\" createPodRange \"\u003e create_pod_range \u003c/span\u003eis false, uses an existing secondary range with this ID.\n"},"subnetwork":{"type":"string","description":"The subnetwork path for the node pool. Format: projects/{project}/regions/{region}/subnetworks/{subnetwork} . If the cluster is associated with multiple subnetworks, the subnetwork for the node pool is picked based on the IP utilization during node pool creation and is immutable.\n"}},"type":"object","required":["acceleratorNetworkProfile","additionalNodeNetworkConfigs","additionalPodNetworkConfigs","createPodRange","enablePrivateNodes","networkPerformanceConfigs","podCidrOverprovisionConfigs","podIpv4CidrBlock","podRange","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig:getClusterNodePoolNetworkConfigAdditionalNodeNetworkConfig":{"properties":{"network":{"type":"string","description":"Name of the VPC where the additional interface belongs.\n"},"subnetwork":{"type":"string","description":"Name of the subnetwork where the additional interface belongs.\n"}},"type":"object","required":["network","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNetworkConfigAdditionalPodNetworkConfig:getClusterNodePoolNetworkConfigAdditionalPodNetworkConfig":{"properties":{"maxPodsPerNode":{"type":"integer","description":"The maximum number of pods per node which use this pod network.\n"},"secondaryPodRange":{"type":"string","description":"The name of the secondary range on the subnet which provides IP address for this pod range.\n"},"subnetwork":{"type":"string","description":"Name of the subnetwork where the additional pod network belongs.\n"}},"type":"object","required":["maxPodsPerNode","secondaryPodRange","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNetworkConfigNetworkPerformanceConfig:getClusterNodePoolNetworkConfigNetworkPerformanceConfig":{"properties":{"totalEgressBandwidthTier":{"type":"string","description":"Specifies the total network bandwidth tier for the NodePool. [Valid values](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.Tier) include: \"TIER_1\" and \"TIER_UNSPECIFIED\".\n"}},"type":"object","required":["totalEgressBandwidthTier"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNetworkConfigPodCidrOverprovisionConfig:getClusterNodePoolNetworkConfigPodCidrOverprovisionConfig":{"properties":{"disabled":{"type":"boolean"}},"type":"object","required":["disabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfig:getClusterNodePoolNodeConfig":{"properties":{"advancedMachineFeatures":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigAdvancedMachineFeature:getClusterNodePoolNodeConfigAdvancedMachineFeature"},"description":"Specifies options for controlling advanced machine features.\n"},"bootDiskKmsKey":{"type":"string","description":"The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool.\n"},"bootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigBootDisk:getClusterNodePoolNodeConfigBootDisk"},"description":"Boot disk configuration for node pools nodes.\n"},"confidentialNodes":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigConfidentialNode:getClusterNodePoolNodeConfigConfidentialNode"},"description":"Configuration for the confidential nodes feature, which makes nodes run on confidential VMs.\n"},"containerdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfig:getClusterNodePoolNodeConfigContainerdConfig"},"description":"Parameters for containerd configuration.\n"},"diskSizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"},"diskType":{"type":"string","description":"Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd\n"},"effectiveTaints":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigEffectiveTaint:getClusterNodePoolNodeConfigEffectiveTaint"},"description":"List of kubernetes taints applied to each node.\n"},"enableConfidentialStorage":{"type":"boolean","description":"If enabled boot disks are configured with confidential mode.\n"},"ephemeralStorageConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigEphemeralStorageConfig:getClusterNodePoolNodeConfigEphemeralStorageConfig"},"description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.\n"},"ephemeralStorageLocalSsdConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig:getClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig"},"description":"Parameters for the ephemeral storage filesystem. If unspecified, ephemeral storage is backed by the boot disk.\n"},"fastSockets":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigFastSocket:getClusterNodePoolNodeConfigFastSocket"},"description":"Enable or disable NCCL Fast Socket in the node pool.\n"},"flexStart":{"type":"boolean","description":"Enables Flex Start provisioning model for the node pool\n"},"gcfsConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigGcfsConfig:getClusterNodePoolNodeConfigGcfsConfig"},"description":"GCFS configuration for this node.\n"},"guestAccelerators":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigGuestAccelerator:getClusterNodePoolNodeConfigGuestAccelerator"},"description":"List of the type and count of accelerator cards attached to the instance.\n"},"gvnics":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigGvnic:getClusterNodePoolNodeConfigGvnic"},"description":"Enable or disable gvnic in the node pool.\n"},"hostMaintenancePolicies":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigHostMaintenancePolicy:getClusterNodePoolNodeConfigHostMaintenancePolicy"},"description":"The maintenance policy for the hosts on which the GKE VMs run on.\n"},"imageType":{"type":"string","description":"The image type to use for this node. Note that for a given image type, the latest version of it will be used.\n"},"kubeletConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigKubeletConfig:getClusterNodePoolNodeConfigKubeletConfig"},"description":"Node kubelet configs.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The map of Kubernetes labels (key/value pairs) to be applied to each node. These will added in addition to any default label(s) that Kubernetes may apply to the node.\n"},"linuxNodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigLinuxNodeConfig:getClusterNodePoolNodeConfigLinuxNodeConfig"},"description":"Parameters that can be configured on Linux nodes.\n"},"localNvmeSsdBlockConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig:getClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig"},"description":"Parameters for raw-block local NVMe SSDs.\n"},"localSsdCount":{"type":"integer","description":"The number of local SSD disks to be attached to the node.\n"},"localSsdEncryptionMode":{"type":"string","description":"LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.\n"},"loggingVariant":{"type":"string","description":"Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type.\n"},"maxRunDuration":{"type":"string","description":"The runtime of each node in the node pool in seconds, terminated by 's'. Example: \"3600s\".\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The metadata key/value pairs assigned to instances in the cluster.\n"},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.\n"},"nodeGroup":{"type":"string","description":"Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.\n"},"oauthScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes to be made available on all of the node VMs.\n"},"preemptible":{"type":"boolean","description":"Whether the nodes are created as preemptible VM instances.\n"},"reservationAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigReservationAffinity:getClusterNodePoolNodeConfigReservationAffinity"},"description":"The reservation affinity configuration for the node pool.\n"},"resourceLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The GCE resource labels (a map of key/value pairs) to be applied to the node pool.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT \u0026 PATCH) when empty.\n"},"sandboxConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigSandboxConfig:getClusterNodePoolNodeConfigSandboxConfig"},"description":"Sandbox configuration for this node.\n"},"secondaryBootDisks":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigSecondaryBootDisk:getClusterNodePoolNodeConfigSecondaryBootDisk"},"description":"Secondary boot disks for preloading data or container images.\n"},"serviceAccount":{"type":"string","description":"The Google Cloud Platform Service Account to be used by the node VMs.\n"},"shieldedInstanceConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigShieldedInstanceConfig:getClusterNodePoolNodeConfigShieldedInstanceConfig"},"description":"Shielded Instance options.\n"},"soleTenantConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigSoleTenantConfig:getClusterNodePoolNodeConfigSoleTenantConfig"},"description":"Node affinity options for sole tenant node pools.\n"},"spot":{"type":"boolean","description":"Whether the nodes are created as spot VM instances.\n"},"storagePools":{"type":"array","items":{"type":"string"},"description":"The list of Storage Pools where boot disks are provisioned.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to all nodes.\n"},"taints":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigTaint:getClusterNodePoolNodeConfigTaint"},"description":"List of Kubernetes taints to be applied to each node.\n"},"windowsNodeConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigWindowsNodeConfig:getClusterNodePoolNodeConfigWindowsNodeConfig"},"description":"Parameters that can be configured on Windows nodes.\n"},"workloadMetadataConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigWorkloadMetadataConfig:getClusterNodePoolNodeConfigWorkloadMetadataConfig"},"description":"The workload metadata configuration for this node.\n"}},"type":"object","required":["advancedMachineFeatures","bootDisks","bootDiskKmsKey","confidentialNodes","containerdConfigs","diskSizeGb","diskType","effectiveTaints","enableConfidentialStorage","ephemeralStorageConfigs","ephemeralStorageLocalSsdConfigs","fastSockets","flexStart","gcfsConfigs","guestAccelerators","gvnics","hostMaintenancePolicies","imageType","kubeletConfigs","labels","linuxNodeConfigs","localNvmeSsdBlockConfigs","localSsdCount","localSsdEncryptionMode","loggingVariant","machineType","maxRunDuration","metadata","minCpuPlatform","nodeGroup","oauthScopes","preemptible","reservationAffinities","resourceLabels","resourceManagerTags","sandboxConfigs","secondaryBootDisks","serviceAccount","shieldedInstanceConfigs","soleTenantConfigs","spot","storagePools","tags","taints","windowsNodeConfigs","workloadMetadataConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigAdvancedMachineFeature:getClusterNodePoolNodeConfigAdvancedMachineFeature":{"properties":{"enableNestedVirtualization":{"type":"boolean","description":"Whether the node should have nested virtualization enabled.\n"},"performanceMonitoringUnit":{"type":"string","description":"Level of Performance Monitoring Unit (PMU) requested. If unset, no access to the PMU is assumed.\n"},"threadsPerCore":{"type":"integer","description":"The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.\n"}},"type":"object","required":["enableNestedVirtualization","performanceMonitoringUnit","threadsPerCore"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigBootDisk:getClusterNodePoolNodeConfigBootDisk":{"properties":{"diskType":{"type":"string","description":"Type of the disk attached to each node. Such as pd-standard, pd-balanced or pd-ssd\n"},"provisionedIops":{"type":"integer","description":"Configured IOPs provisioning. Only valid with disk type hyperdisk-balanced.\n"},"provisionedThroughput":{"type":"integer","description":"Configured throughput provisioning. Only valid with disk type hyperdisk-balanced.\n"},"sizeGb":{"type":"integer","description":"Size of the disk attached to each node, specified in GB. The smallest allowed disk size is 10GB.\n"}},"type":"object","required":["diskType","provisionedIops","provisionedThroughput","sizeGb"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigConfidentialNode:getClusterNodePoolNodeConfigConfidentialNode":{"properties":{"confidentialInstanceType":{"type":"string","description":"Defines the type of technology used by the confidential node.\n"},"enabled":{"type":"boolean","description":"Whether Confidential Nodes feature is enabled for all nodes in this pool.\n"}},"type":"object","required":["confidentialInstanceType","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfig:getClusterNodePoolNodeConfigContainerdConfig":{"properties":{"privateRegistryAccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig:getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig"},"description":"Parameters for private container registries configuration.\n"},"registryHosts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHost:getClusterNodePoolNodeConfigContainerdConfigRegistryHost"},"description":"Configures containerd registry host configuration. Each\u003cspan pulumi-lang-nodejs=\" registryHosts \" pulumi-lang-dotnet=\" RegistryHosts \" pulumi-lang-go=\" registryHosts \" pulumi-lang-python=\" registry_hosts \" pulumi-lang-yaml=\" registryHosts \" pulumi-lang-java=\" registryHosts \"\u003e registry_hosts \u003c/span\u003eentry represents a hosts.toml file.\n"},"writableCgroups":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigWritableCgroup:getClusterNodePoolNodeConfigContainerdConfigWritableCgroup"},"description":"Parameters for writable cgroups configuration.\n"}},"type":"object","required":["privateRegistryAccessConfigs","registryHosts","writableCgroups"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig:getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfig":{"properties":{"certificateAuthorityDomainConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig"},"description":"Parameters for configuring CA certificate and domains.\n"},"enabled":{"type":"boolean","description":"Whether or not private registries are configured.\n"}},"type":"object","required":["certificateAuthorityDomainConfigs","enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig:getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfig":{"properties":{"fqdns":{"type":"array","items":{"type":"string"},"description":"List of fully-qualified-domain-names. IPv4s and port specification are supported.\n"},"gcpSecretManagerCertificateConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig"},"description":"Parameters for configuring a certificate hosted in GCP SecretManager.\n"}},"type":"object","required":["fqdns","gcpSecretManagerCertificateConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig:getClusterNodePoolNodeConfigContainerdConfigPrivateRegistryAccessConfigCertificateAuthorityDomainConfigGcpSecretManagerCertificateConfig":{"properties":{"secretUri":{"type":"string","description":"URI for the secret that hosts a certificate. Must be in the format 'projects/PROJECT_NUM/secrets/SECRET_NAME/versions/VERSION_OR_LATEST'.\n"}},"type":"object","required":["secretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHost:getClusterNodePoolNodeConfigContainerdConfigRegistryHost":{"properties":{"hosts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHost:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHost"},"description":"Configures a list of host-specific configurations for the server.\n"},"server":{"type":"string","description":"Defines the host name of the registry server.\n"}},"type":"object","required":["hosts","server"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHost:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHost":{"properties":{"capabilities":{"type":"array","items":{"type":"string"},"description":"Represent the capabilities of the registry host, specifying what operations a host is capable of performing.\n"},"cas":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa"},"description":"Configures the registry host certificate.\n"},"clients":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient"},"description":"Configures the registry host client certificate and key.\n"},"dialTimeout":{"type":"string","description":"Specifies the maximum duration allowed for a connection attempt to complete.\n"},"headers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader"},"description":"Configures the registry host headers.\n"},"host":{"type":"string","description":"Configures the registry host/mirror.\n"},"overridePath":{"type":"boolean","description":"Indicate the host's API root endpoint is defined in the URL path rather than by the API specification.\n"}},"type":"object","required":["cas","capabilities","clients","dialTimeout","headers","host","overridePath"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostCa":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the certificate.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClient":{"properties":{"certs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert"},"description":"Configures the client certificate.\n"},"keys":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey"},"description":"Configures the client private key.\n"}},"type":"object","required":["certs","keys"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientCert":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the client certificate.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostClientKey":{"properties":{"gcpSecretManagerSecretUri":{"type":"string","description":"URI for the Secret Manager secret that hosts the private key.\n"}},"type":"object","required":["gcpSecretManagerSecretUri"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader:getClusterNodePoolNodeConfigContainerdConfigRegistryHostHostHeader":{"properties":{"key":{"type":"string","description":"Configures the header key.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Configures the header value.\n"}},"type":"object","required":["key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigContainerdConfigWritableCgroup:getClusterNodePoolNodeConfigContainerdConfigWritableCgroup":{"properties":{"enabled":{"type":"boolean","description":"Whether writable cgroups are enabled.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigEffectiveTaint:getClusterNodePoolNodeConfigEffectiveTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigEphemeralStorageConfig:getClusterNodePoolNodeConfigEphemeralStorageConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.\n"}},"type":"object","required":["localSsdCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig:getClusterNodePoolNodeConfigEphemeralStorageLocalSsdConfig":{"properties":{"dataCacheCount":{"type":"integer","description":"Number of local SSDs to be utilized for GKE Data Cache. Uses NVMe interfaces.\n"},"localSsdCount":{"type":"integer","description":"Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. Each local SSD must be 375 or 3000 GB in size, and all local SSDs must share the same size.\n"}},"type":"object","required":["dataCacheCount","localSsdCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigFastSocket:getClusterNodePoolNodeConfigFastSocket":{"properties":{"enabled":{"type":"boolean","description":"Whether or not NCCL Fast Socket is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigGcfsConfig:getClusterNodePoolNodeConfigGcfsConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether or not GCFS is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigGuestAccelerator:getClusterNodePoolNodeConfigGuestAccelerator":{"properties":{"count":{"type":"integer","description":"The number of the accelerator cards exposed to an instance.\n"},"gpuDriverInstallationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig:getClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig"},"description":"Configuration for auto installation of GPU driver.\n"},"gpuPartitionSize":{"type":"string","description":"Size of partitions to create on the GPU. Valid values are described in the NVIDIA mig user guide (https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning)\n"},"gpuSharingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig:getClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig"},"description":"Configuration for GPU sharing.\n"},"type":{"type":"string","description":"The accelerator type resource name.\n"}},"type":"object","required":["count","gpuDriverInstallationConfigs","gpuPartitionSize","gpuSharingConfigs","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig:getClusterNodePoolNodeConfigGuestAcceleratorGpuDriverInstallationConfig":{"properties":{"gpuDriverVersion":{"type":"string","description":"Mode for how the GPU driver is installed.\n"}},"type":"object","required":["gpuDriverVersion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig:getClusterNodePoolNodeConfigGuestAcceleratorGpuSharingConfig":{"properties":{"gpuSharingStrategy":{"type":"string","description":"The type of GPU sharing strategy to enable on the GPU node. Possible values are described in the API package (https://pkg.go.dev/google.golang.org/api/container/v1#GPUSharingConfig)\n"},"maxSharedClientsPerGpu":{"type":"integer","description":"The maximum number of containers that can share a GPU.\n"}},"type":"object","required":["gpuSharingStrategy","maxSharedClientsPerGpu"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigGvnic:getClusterNodePoolNodeConfigGvnic":{"properties":{"enabled":{"type":"boolean","description":"Whether or not gvnic is enabled\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigHostMaintenancePolicy:getClusterNodePoolNodeConfigHostMaintenancePolicy":{"properties":{"maintenanceInterval":{"type":"string","description":".\n"}},"type":"object","required":["maintenanceInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigKubeletConfig:getClusterNodePoolNodeConfigKubeletConfig":{"properties":{"allowedUnsafeSysctls":{"type":"array","items":{"type":"string"},"description":"Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns which can be set on the Pods.\n"},"containerLogMaxFiles":{"type":"integer","description":"Defines the maximum number of container log files that can be present for a container.\n"},"containerLogMaxSize":{"type":"string","description":"Defines the maximum size of the container log file before it is rotated.\n"},"cpuCfsQuota":{"type":"boolean","description":"Enable CPU CFS quota enforcement for containers that specify CPU limits.\n"},"cpuCfsQuotaPeriod":{"type":"string","description":"Set the CPU CFS quota period value 'cpu.cfs_period_us'.\n"},"cpuManagerPolicy":{"type":"string","description":"Control the CPU management policy on the node.\n"},"evictionMaxPodGracePeriodSeconds":{"type":"integer","description":"Defines the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.\n"},"evictionMinimumReclaims":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim:getClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim"},"description":"Defines a map of signal names to percentage that defines minimum reclaims. It describes the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction.\n"},"evictionSoftGracePeriods":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod:getClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod"},"description":"Defines a map of signal names to durations that defines grace periods for soft eviction thresholds. Each soft eviction threshold must have a corresponding grace period.\n"},"evictionSofts":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigKubeletConfigEvictionSoft:getClusterNodePoolNodeConfigKubeletConfigEvictionSoft"},"description":"Defines a map of signal names to quantities or percentage that defines soft eviction thresholds.\n"},"imageGcHighThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage after which image garbage collection is always run.\n"},"imageGcLowThresholdPercent":{"type":"integer","description":"Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to.\n"},"imageMaximumGcAge":{"type":"string","description":"Defines the maximum age an image can be unused before it is garbage collected.\n"},"imageMinimumGcAge":{"type":"string","description":"Defines the minimum age for an unused image before it is garbage collected.\n"},"insecureKubeletReadonlyPortEnabled":{"type":"string","description":"Controls whether the kubelet read-only port is enabled. It is strongly recommended to set this to `FALSE`. Possible values: `TRUE`, `FALSE`.\n"},"maxParallelImagePulls":{"type":"integer","description":"Set the maximum number of image pulls in parallel.\n"},"memoryManagers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigKubeletConfigMemoryManager:getClusterNodePoolNodeConfigKubeletConfigMemoryManager"},"description":"Configuration for the Memory Manager on the node. The memory manager optimizes memory and hugepages allocation for pods, especially those in the Guaranteed QoS class, by influencing NUMA affinity.\n"},"podPidsLimit":{"type":"integer","description":"Controls the maximum number of processes allowed to run in a pod.\n"},"singleProcessOomKill":{"type":"boolean","description":"Defines whether to enable single process OOM killer.\n"},"topologyManagers":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigKubeletConfigTopologyManager:getClusterNodePoolNodeConfigKubeletConfigTopologyManager"},"description":"Configuration for the Topology Manager on the node. The Topology Manager aligns CPU, memory, and device resources on a node to optimize performance, especially for NUMA-aware workloads, by ensuring resource co-location.\n"}},"type":"object","required":["allowedUnsafeSysctls","containerLogMaxFiles","containerLogMaxSize","cpuCfsQuota","cpuCfsQuotaPeriod","cpuManagerPolicy","evictionMaxPodGracePeriodSeconds","evictionMinimumReclaims","evictionSofts","evictionSoftGracePeriods","imageGcHighThresholdPercent","imageGcLowThresholdPercent","imageMaximumGcAge","imageMinimumGcAge","insecureKubeletReadonlyPortEnabled","maxParallelImagePulls","memoryManagers","podPidsLimit","singleProcessOomKill","topologyManagers"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim:getClusterNodePoolNodeConfigKubeletConfigEvictionMinimumReclaim":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.available.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for imagefs.inodesFree.\n"},"memoryAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for memory.available.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.available.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of minimum reclaim for nodefs.inodesFree.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of minimum reclaim for pid.available.\n"}},"type":"object","required":["imagefsAvailable","imagefsInodesFree","memoryAvailable","nodefsAvailable","nodefsInodesFree","pidAvailable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigKubeletConfigEvictionSoft:getClusterNodePoolNodeConfigKubeletConfigEvictionSoft":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.available.\n"},"imagefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for imagefs.inodesFree.\n"},"memoryAvailable":{"type":"string","description":"Defines quantity of soft eviction threshold for memory.available.\n"},"nodefsAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.available.\n"},"nodefsInodesFree":{"type":"string","description":"Defines percentage of soft eviction threshold for nodefs.inodesFree.\n"},"pidAvailable":{"type":"string","description":"Defines percentage of soft eviction threshold for pid.available.\n"}},"type":"object","required":["imagefsAvailable","imagefsInodesFree","memoryAvailable","nodefsAvailable","nodefsInodesFree","pidAvailable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod:getClusterNodePoolNodeConfigKubeletConfigEvictionSoftGracePeriod":{"properties":{"imagefsAvailable":{"type":"string","description":"Defines grace period for the imagefs.available soft eviction threshold\n"},"imagefsInodesFree":{"type":"string","description":"Defines grace period for the imagefs.inodesFree soft eviction threshold.\n"},"memoryAvailable":{"type":"string","description":"Defines grace period for the memory.available soft eviction threshold.\n"},"nodefsAvailable":{"type":"string","description":"Defines grace period for the nodefs.available soft eviction threshold.\n"},"nodefsInodesFree":{"type":"string","description":"Defines grace period for the nodefs.inodesFree soft eviction threshold.\n"},"pidAvailable":{"type":"string","description":"Defines grace period for the pid.available soft eviction threshold.\n"}},"type":"object","required":["imagefsAvailable","imagefsInodesFree","memoryAvailable","nodefsAvailable","nodefsInodesFree","pidAvailable"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigKubeletConfigMemoryManager:getClusterNodePoolNodeConfigKubeletConfigMemoryManager":{"properties":{"policy":{"type":"string","description":"The Memory Manager policy to use. This policy guides how memory and hugepages are allocated and managed for pods on the node, influencing NUMA affinity.\n"}},"type":"object","required":["policy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigKubeletConfigTopologyManager:getClusterNodePoolNodeConfigKubeletConfigTopologyManager":{"properties":{"policy":{"type":"string","description":"The Topology Manager policy to use. This policy dictates how resource alignment is handled on the node.\n"},"scope":{"type":"string","description":"The Topology Manager scope, defining the granularity at which policy decisions are applied. Valid values are \"container\" (resources are aligned per container within a pod) or \"pod\" (resources are aligned for the entire pod).\n"}},"type":"object","required":["policy","scope"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigLinuxNodeConfig:getClusterNodePoolNodeConfigLinuxNodeConfig":{"properties":{"cgroupMode":{"type":"string","description":"cgroupMode specifies the cgroup mode to be used on the node.\n"},"hugepagesConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig:getClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig"},"description":"Amounts for 2M and 1G hugepages.\n"},"nodeKernelModuleLoadings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading:getClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading"},"description":"The settings for kernel module loading.\n"},"sysctls":{"type":"object","additionalProperties":{"type":"string"},"description":"The Linux kernel parameters to be applied to the nodes and all pods running on the nodes.\n"},"transparentHugepageDefrag":{"type":"string","description":"The Linux kernel transparent hugepage defrag setting.\n"},"transparentHugepageEnabled":{"type":"string","description":"The Linux kernel transparent hugepage setting.\n"}},"type":"object","required":["cgroupMode","hugepagesConfigs","nodeKernelModuleLoadings","sysctls","transparentHugepageDefrag","transparentHugepageEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig:getClusterNodePoolNodeConfigLinuxNodeConfigHugepagesConfig":{"properties":{"hugepageSize1g":{"type":"integer","description":"Amount of 1G hugepages.\n"},"hugepageSize2m":{"type":"integer","description":"Amount of 2M hugepages.\n"}},"type":"object","required":["hugepageSize1g","hugepageSize2m"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading:getClusterNodePoolNodeConfigLinuxNodeConfigNodeKernelModuleLoading":{"properties":{"policy":{"type":"string","description":"The policy for kernel module loading.\n"}},"type":"object","required":["policy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig:getClusterNodePoolNodeConfigLocalNvmeSsdBlockConfig":{"properties":{"localSsdCount":{"type":"integer","description":"Number of raw-block local NVMe SSD disks to be attached to the node. Each local SSD is 375 GB in size.\n"}},"type":"object","required":["localSsdCount"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigReservationAffinity:getClusterNodePoolNodeConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"Corresponds to the type of reservation consumption.\n"},"key":{"type":"string","description":"The label key of a reservation resource.\n"},"values":{"type":"array","items":{"type":"string"},"description":"The label values of the reservation resource.\n"}},"type":"object","required":["consumeReservationType","key","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigSandboxConfig:getClusterNodePoolNodeConfigSandboxConfig":{"properties":{"sandboxType":{"type":"string","description":"Type of the sandbox to use for the node (e.g. 'gvisor')\n"}},"type":"object","required":["sandboxType"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigSecondaryBootDisk:getClusterNodePoolNodeConfigSecondaryBootDisk":{"properties":{"diskImage":{"type":"string","description":"Disk image to create the secondary boot disk from\n"},"mode":{"type":"string","description":"Mode for how the secondary boot disk is used.\n"}},"type":"object","required":["diskImage","mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigShieldedInstanceConfig:getClusterNodePoolNodeConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines whether the instance has integrity monitoring enabled.\n"},"enableSecureBoot":{"type":"boolean","description":"Defines whether the instance has Secure Boot enabled.\n"}},"type":"object","required":["enableIntegrityMonitoring","enableSecureBoot"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigSoleTenantConfig:getClusterNodePoolNodeConfigSoleTenantConfig":{"properties":{"minNodeCpus":{"type":"integer","description":"Specifies the minimum number of vCPUs that each sole tenant node must have to use CPU overcommit. If not specified, the CPU overcommit feature is disabled.\n"},"nodeAffinities":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity:getClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity"},"description":".\n"}},"type":"object","required":["minNodeCpus","nodeAffinities"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity:getClusterNodePoolNodeConfigSoleTenantConfigNodeAffinity":{"properties":{"key":{"type":"string","description":".\n"},"operator":{"type":"string","description":".\n"},"values":{"type":"array","items":{"type":"string"},"description":".\n"}},"type":"object","required":["key","operator","values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigTaint:getClusterNodePoolNodeConfigTaint":{"properties":{"effect":{"type":"string","description":"Effect for taint.\n"},"key":{"type":"string","description":"Key for taint.\n"},"value":{"type":"string","description":"Value for taint.\n"}},"type":"object","required":["effect","key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigWindowsNodeConfig:getClusterNodePoolNodeConfigWindowsNodeConfig":{"properties":{"osversion":{"type":"string","description":"The OS Version of the windows nodepool.Values are OS_VERSION_UNSPECIFIED,OS_VERSION_LTSC2019 and OS_VERSION_LTSC2022\n"}},"type":"object","required":["osversion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeConfigWorkloadMetadataConfig:getClusterNodePoolNodeConfigWorkloadMetadataConfig":{"properties":{"mode":{"type":"string","description":"Mode is the configuration for how to expose metadata to workloads running on the node.\n"}},"type":"object","required":["mode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolNodeDrainConfig:getClusterNodePoolNodeDrainConfig":{"properties":{"respectPdbDuringNodePoolDeletion":{"type":"boolean","description":"Whether to respect PodDisruptionBudget policy during node pool deletion.\n"}},"type":"object","required":["respectPdbDuringNodePoolDeletion"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolPlacementPolicy:getClusterNodePoolPlacementPolicy":{"properties":{"policyName":{"type":"string","description":"If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.\n"},"tpuTopology":{"type":"string","description":"The TPU topology like \"2x4\" or \"2x2x2\". https://cloud.google.com/kubernetes-engine/docs/concepts/plan-tpus#topology\n"},"type":{"type":"string","description":"Type defines the type of placement policy\n"}},"type":"object","required":["policyName","tpuTopology","type"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolQueuedProvisioning:getClusterNodePoolQueuedProvisioning":{"properties":{"enabled":{"type":"boolean","description":"Whether nodes in this node pool are obtainable solely through the ProvisioningRequest API\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolUpgradeSetting:getClusterNodePoolUpgradeSetting":{"properties":{"blueGreenSettings":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolUpgradeSettingBlueGreenSetting:getClusterNodePoolUpgradeSettingBlueGreenSetting"},"description":"Settings for BlueGreen node pool upgrade.\n"},"maxSurge":{"type":"integer","description":"The number of additional nodes that can be added to the node pool during an upgrade. Increasing\u003cspan pulumi-lang-nodejs=\" maxSurge \" pulumi-lang-dotnet=\" MaxSurge \" pulumi-lang-go=\" maxSurge \" pulumi-lang-python=\" max_surge \" pulumi-lang-yaml=\" maxSurge \" pulumi-lang-java=\" maxSurge \"\u003e max_surge \u003c/span\u003eraises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.\n"},"maxUnavailable":{"type":"integer","description":"The number of nodes that can be simultaneously unavailable during an upgrade. Increasing\u003cspan pulumi-lang-nodejs=\" maxUnavailable \" pulumi-lang-dotnet=\" MaxUnavailable \" pulumi-lang-go=\" maxUnavailable \" pulumi-lang-python=\" max_unavailable \" pulumi-lang-yaml=\" maxUnavailable \" pulumi-lang-java=\" maxUnavailable \"\u003e max_unavailable \u003c/span\u003eraises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.\n"},"strategy":{"type":"string","description":"Update strategy for the given nodepool.\n"}},"type":"object","required":["blueGreenSettings","maxSurge","maxUnavailable","strategy"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolUpgradeSettingBlueGreenSetting:getClusterNodePoolUpgradeSettingBlueGreenSetting":{"properties":{"autoscaledRolloutPolicies":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolUpgradeSettingBlueGreenSettingAutoscaledRolloutPolicy:getClusterNodePoolUpgradeSettingBlueGreenSettingAutoscaledRolloutPolicy"},"description":"Autoscaled rollout policy for blue-green upgrade.\n"},"nodePoolSoakDuration":{"type":"string","description":"Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.\n"},"standardRolloutPolicies":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNodePoolUpgradeSettingBlueGreenSettingStandardRolloutPolicy:getClusterNodePoolUpgradeSettingBlueGreenSettingStandardRolloutPolicy"},"description":"Standard rollout policy is the default policy for blue-green.\n"}},"type":"object","required":["autoscaledRolloutPolicies","nodePoolSoakDuration","standardRolloutPolicies"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolUpgradeSettingBlueGreenSettingAutoscaledRolloutPolicy:getClusterNodePoolUpgradeSettingBlueGreenSettingAutoscaledRolloutPolicy":{"properties":{"waitForDrainDuration":{"type":"string","description":"Time in seconds to wait after cordoning the blue pool before draining the nodes.\n"}},"type":"object","required":["waitForDrainDuration"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNodePoolUpgradeSettingBlueGreenSettingStandardRolloutPolicy:getClusterNodePoolUpgradeSettingBlueGreenSettingStandardRolloutPolicy":{"properties":{"batchNodeCount":{"type":"integer","description":"Number of blue nodes to drain in a batch.\n"},"batchPercentage":{"type":"number","description":"Percentage of the blue pool nodes to drain in a batch.\n"},"batchSoakDuration":{"type":"string","description":"Soak time after each batch gets drained.\n"}},"type":"object","required":["batchNodeCount","batchPercentage","batchSoakDuration"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNotificationConfig:getClusterNotificationConfig":{"properties":{"pubsubs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNotificationConfigPubsub:getClusterNotificationConfigPubsub"},"description":"Notification config for Cloud Pub/Sub\n"}},"type":"object","required":["pubsubs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNotificationConfigPubsub:getClusterNotificationConfigPubsub":{"properties":{"enabled":{"type":"boolean","description":"Whether or not the notification config is enabled\n"},"filters":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterNotificationConfigPubsubFilter:getClusterNotificationConfigPubsubFilter"},"description":"Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent\n"},"topic":{"type":"string","description":"The pubsub topic to push upgrade notifications to. Must be in the same project as the cluster. Must be in the format: projects/{project}/topics/{topic}.\n"}},"type":"object","required":["enabled","filters","topic"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterNotificationConfigPubsubFilter:getClusterNotificationConfigPubsubFilter":{"properties":{"eventTypes":{"type":"array","items":{"type":"string"},"description":"Can be used to filter what notifications are sent. Valid values include include UPGRADE_AVAILABLE_EVENT, UPGRADE_EVENT, SECURITY_BULLETIN_EVENT, and UPGRADE_INFO_EVENT\n"}},"type":"object","required":["eventTypes"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterPodAutoscaling:getClusterPodAutoscaling":{"properties":{"hpaProfile":{"type":"string","description":"HPA Profile is used to configure the Horizontal Pod Autoscaler (HPA) profile for the cluster.\n\t\t\t\t\t\t\t\tAvailable options include:\n\t\t\t\t\t\t\t\t- NONE: Customers explicitly opt-out of HPA profiles.\n\t\t\t\t\t\t\t\t- PERFORMANCE: PERFORMANCE is used when customers opt-in to the performance HPA profile. In this profile we support a higher number of HPAs per cluster and faster metrics collection for workload autoscaling.\n"}},"type":"object","required":["hpaProfile"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterPodSecurityPolicyConfig:getClusterPodSecurityPolicyConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the PodSecurityPolicy controller for this cluster. If enabled, pods must be valid under a PodSecurityPolicy to be created.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterPrivateClusterConfig:getClusterPrivateClusterConfig":{"properties":{"enablePrivateEndpoint":{"type":"boolean","description":"When true, the cluster's private endpoint is used as the cluster endpoint and access through the public endpoint is disabled. When false, either endpoint can be used.\n"},"enablePrivateNodes":{"type":"boolean","description":"Enables the private cluster feature, creating a private endpoint on the cluster. In a private cluster, nodes only have RFC 1918 private addresses and communicate with the master's private endpoint via private networking.\n"},"masterGlobalAccessConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterPrivateClusterConfigMasterGlobalAccessConfig:getClusterPrivateClusterConfigMasterGlobalAccessConfig"},"description":"Controls cluster master global access settings.\n"},"masterIpv4CidrBlock":{"type":"string","description":"The IP range in CIDR notation to use for the hosted master network. This range will be used for assigning private IP addresses to the cluster master(s) and the ILB VIP. This range must not overlap with any other ranges in use within the cluster's network, and it must be a /28 subnet. See Private Cluster Limitations for more details. This field only applies to private clusters, when\u003cspan pulumi-lang-nodejs=\" enablePrivateNodes \" pulumi-lang-dotnet=\" EnablePrivateNodes \" pulumi-lang-go=\" enablePrivateNodes \" pulumi-lang-python=\" enable_private_nodes \" pulumi-lang-yaml=\" enablePrivateNodes \" pulumi-lang-java=\" enablePrivateNodes \"\u003e enable_private_nodes \u003c/span\u003eis true.\n"},"peeringName":{"type":"string","description":"The name of the peering between this cluster and the Google owned VPC.\n"},"privateEndpoint":{"type":"string","description":"The internal IP address of this cluster's master endpoint.\n"},"privateEndpointSubnetwork":{"type":"string","description":"Subnetwork in cluster's network where master's endpoint will be provisioned.\n"},"publicEndpoint":{"type":"string","description":"The external IP address of this cluster's master endpoint.\n"}},"type":"object","required":["enablePrivateEndpoint","enablePrivateNodes","masterGlobalAccessConfigs","masterIpv4CidrBlock","peeringName","privateEndpoint","privateEndpointSubnetwork","publicEndpoint"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterPrivateClusterConfigMasterGlobalAccessConfig:getClusterPrivateClusterConfigMasterGlobalAccessConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether the cluster master is accessible globally or not.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterProtectConfig:getClusterProtectConfig":{"properties":{"workloadConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterProtectConfigWorkloadConfig:getClusterProtectConfigWorkloadConfig"},"description":"WorkloadConfig defines which actions are enabled for a cluster's workload configurations.\n"},"workloadVulnerabilityMode":{"type":"string","description":"Sets which mode to use for Protect workload vulnerability scanning feature. Accepted values are DISABLED, BASIC.\n"}},"type":"object","required":["workloadConfigs","workloadVulnerabilityMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterProtectConfigWorkloadConfig:getClusterProtectConfigWorkloadConfig":{"properties":{"auditMode":{"type":"string","description":"Sets which mode of auditing should be used for the cluster's workloads. Accepted values are DISABLED, BASIC.\n"}},"type":"object","required":["auditMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterRbacBindingConfig:getClusterRbacBindingConfig":{"properties":{"enableInsecureBindingSystemAuthenticated":{"type":"boolean","description":"Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.\n"},"enableInsecureBindingSystemUnauthenticated":{"type":"boolean","description":"Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:anonymous or system:unauthenticated.\n"}},"type":"object","required":["enableInsecureBindingSystemAuthenticated","enableInsecureBindingSystemUnauthenticated"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterReleaseChannel:getClusterReleaseChannel":{"properties":{"channel":{"type":"string","description":"The selected release channel. Accepted values are:\n* UNSPECIFIED: Not set.\n* RAPID: Weekly upgrade cadence; Early testers and developers who requires new features.\n* REGULAR: Multiple per month upgrade cadence; Production users who need features not yet offered in the Stable channel.\n* STABLE: Every few months upgrade cadence; Production users who need stability above all else, and for whom frequent upgrades are too risky.\n* EXTENDED: GKE provides extended support for Kubernetes minor versions through the Extended channel. With this channel, you can stay on a minor version for up to 24 months.\n"}},"type":"object","required":["channel"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterResourceUsageExportConfig:getClusterResourceUsageExportConfig":{"properties":{"bigqueryDestinations":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterResourceUsageExportConfigBigqueryDestination:getClusterResourceUsageExportConfigBigqueryDestination"},"description":"Parameters for using BigQuery as the destination of resource usage export.\n"},"enableNetworkEgressMetering":{"type":"boolean","description":"Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.\n"},"enableResourceConsumptionMetering":{"type":"boolean","description":"Whether to enable resource consumption metering on this cluster. When enabled, a table will be created in the resource export BigQuery dataset to store resource consumption data. The resulting table can be joined with the resource usage table or with BigQuery billing export. Defaults to true.\n"}},"type":"object","required":["bigqueryDestinations","enableNetworkEgressMetering","enableResourceConsumptionMetering"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterResourceUsageExportConfigBigqueryDestination:getClusterResourceUsageExportConfigBigqueryDestination":{"properties":{"datasetId":{"type":"string","description":"The ID of a BigQuery Dataset.\n"}},"type":"object","required":["datasetId"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterSecretManagerConfig:getClusterSecretManagerConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the Secret manager csi component.\n"},"rotationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterSecretManagerConfigRotationConfig:getClusterSecretManagerConfigRotationConfig"},"description":"Configuration for Secret Manager auto rotation.\n"}},"type":"object","required":["enabled","rotationConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterSecretManagerConfigRotationConfig:getClusterSecretManagerConfigRotationConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the Secret manager auto rotation.\n"},"rotationInterval":{"type":"string","description":"The interval between two consecutive rotations. Default rotation interval is 2 minutes\n"}},"type":"object","required":["enabled","rotationInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterSecretSyncConfig:getClusterSecretSyncConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the Sync as k8s secret add-on.\n"},"rotationConfigs":{"type":"array","items":{"$ref":"#/types/gcp:container/getClusterSecretSyncConfigRotationConfig:getClusterSecretSyncConfigRotationConfig"},"description":"Configuration for Secret Sync auto rotation.\n"}},"type":"object","required":["enabled","rotationConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterSecretSyncConfigRotationConfig:getClusterSecretSyncConfigRotationConfig":{"properties":{"enabled":{"type":"boolean","description":"Enable the Secret sync auto rotation.\n"},"rotationInterval":{"type":"string","description":"The interval between two consecutive rotations. Default rotation interval is 2 minutes\n"}},"type":"object","required":["enabled","rotationInterval"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterSecurityPostureConfig:getClusterSecurityPostureConfig":{"properties":{"mode":{"type":"string","description":"Sets the mode of the Kubernetes security posture API's off-cluster features. Available options include DISABLED, BASIC, and ENTERPRISE.\n"},"vulnerabilityMode":{"type":"string","description":"Sets the mode of the Kubernetes security posture API's workload vulnerability scanning. Available options include VULNERABILITY_DISABLED, VULNERABILITY_BASIC and VULNERABILITY_ENTERPRISE.\n"}},"type":"object","required":["mode","vulnerabilityMode"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterServiceExternalIpsConfig:getClusterServiceExternalIpsConfig":{"properties":{"enabled":{"type":"boolean","description":"When enabled, services with external ips specified will be allowed.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterTpuConfig:getClusterTpuConfig":{"properties":{"enabled":{"type":"boolean","description":"Whether Cloud TPU integration is enabled or not\n"},"ipv4CidrBlock":{"type":"string","description":"IPv4 CIDR block reserved for Cloud TPU in the VPC.\n"},"useServiceNetworking":{"type":"boolean","description":"Whether to use service networking for Cloud TPU or not\n"}},"type":"object","required":["enabled","ipv4CidrBlock","useServiceNetworking"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterUserManagedKeysConfig:getClusterUserManagedKeysConfig":{"properties":{"aggregationCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the aggreation CA in this cluster.\n"},"clusterCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the cluster CA in this cluster.\n"},"controlPlaneDiskEncryptionKey":{"type":"string","description":"The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.\n"},"etcdApiCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the etcd API CA in this cluster.\n"},"etcdPeerCa":{"type":"string","description":"The Certificate Authority Service caPool to use for the etcd peer CA in this cluster.\n"},"gkeopsEtcdBackupEncryptionKey":{"type":"string","description":"Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.\n"},"serviceAccountSigningKeys":{"type":"array","items":{"type":"string"},"description":"The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster.\n"},"serviceAccountVerificationKeys":{"type":"array","items":{"type":"string"},"description":"The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster.\n"}},"type":"object","required":["aggregationCa","clusterCa","controlPlaneDiskEncryptionKey","etcdApiCa","etcdPeerCa","gkeopsEtcdBackupEncryptionKey","serviceAccountSigningKeys","serviceAccountVerificationKeys"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterVerticalPodAutoscaling:getClusterVerticalPodAutoscaling":{"properties":{"enabled":{"type":"boolean","description":"Enables vertical pod autoscaling.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterWorkloadAltsConfig:getClusterWorkloadAltsConfig":{"properties":{"enableAlts":{"type":"boolean","description":"Whether the alts handshaker should be enabled or not for direct-path. Requires Workload Identity (workloadPool must be non-empty).\n"}},"type":"object","required":["enableAlts"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:container/getClusterWorkloadIdentityConfig:getClusterWorkloadIdentityConfig":{"properties":{"workloadPool":{"type":"string","description":"The workload pool to attach all Kubernetes service accounts to.\n"}},"type":"object","required":["workloadPool"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:containeranalysis/NoteAttestationAuthority:NoteAttestationAuthority":{"properties":{"hint":{"$ref":"#/types/gcp:containeranalysis/NoteAttestationAuthorityHint:NoteAttestationAuthorityHint","description":"This submessage provides human-readable hints about the purpose of\nthe AttestationAuthority. Because the name of a Note acts as its\nresource reference, it is important to disambiguate the canonical\nname of the Note (which might be a UUID for security purposes)\nfrom \"readable\" names more suitable for debug output. Note that\nthese hints should NOT be used to look up AttestationAuthorities\nin security sensitive contexts, such as when looking up\nAttestations to verify.\nStructure is documented below.\n"}},"type":"object","required":["hint"]},"gcp:containeranalysis/NoteAttestationAuthorityHint:NoteAttestationAuthorityHint":{"properties":{"humanReadableName":{"type":"string","description":"The human readable name of this Attestation Authority, for\nexample \"qa\".\n"}},"type":"object","required":["humanReadableName"]},"gcp:containeranalysis/NoteIamBindingCondition:NoteIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:containeranalysis/NoteIamMemberCondition:NoteIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:containeranalysis/NoteRelatedUrl:NoteRelatedUrl":{"properties":{"label":{"type":"string","description":"Label to describe usage of the URL\n"},"url":{"type":"string","description":"Specific URL associated with the resource.\n"}},"type":"object","required":["url"]},"gcp:containeranalysis/OccurenceAttestation:OccurenceAttestation":{"properties":{"serializedPayload":{"type":"string","description":"The serialized payload that is verified by one or\nmore signatures. A base64-encoded string.\n"},"signatures":{"type":"array","items":{"$ref":"#/types/gcp:containeranalysis/OccurenceAttestationSignature:OccurenceAttestationSignature"},"description":"One or more signatures over serializedPayload.\nVerifier implementations should consider this attestation\nmessage verified if at least one signature verifies\nserializedPayload. See Signature in common.proto for more\ndetails on signature structure and verification.\nStructure is documented below.\n"}},"type":"object","required":["serializedPayload","signatures"]},"gcp:containeranalysis/OccurenceAttestationSignature:OccurenceAttestationSignature":{"properties":{"publicKeyId":{"type":"string","description":"The identifier for the public key that verifies this\nsignature. MUST be an RFC3986 conformant\nURI. * When possible, the key id should be an\nimmutable reference, such as a cryptographic digest.\nExamples of valid values:\n* OpenPGP V4 public key fingerprint. See https://www.iana.org/assignments/uri-schemes/prov/openpgp4fpr\nfor more details on this scheme.\n* `openpgp4fpr:74FAF3B861BDA0870C7B6DEF607E48D2A663AEEA`\n* RFC6920 digest-named SubjectPublicKeyInfo (digest of the DER serialization):\n* \"ni:///sha-256;cD9o9Cq6LG3jD0iKXqEi_vdjJGecm_iXkbqVoScViaU\"\n"},"signature":{"type":"string","description":"The content of the signature, an opaque bytestring.\nThe payload that this signature verifies MUST be\nunambiguously provided with the Signature during\nverification. A wrapper message might provide the\npayload explicitly. Alternatively, a message might\nhave a canonical serialization that can always be\nunambiguously computed to derive the payload.\n"}},"type":"object","required":["publicKeyId"]},"gcp:databasemigrationservice/ConnectionProfileAlloydb:ConnectionProfileAlloydb":{"properties":{"clusterId":{"type":"string","description":"Required. The AlloyDB cluster ID that this connection profile is associated with.\n"},"settings":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileAlloydbSettings:ConnectionProfileAlloydbSettings","description":"Immutable. Metadata used to create the destination AlloyDB cluster.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["clusterId"]},"gcp:databasemigrationservice/ConnectionProfileAlloydbSettings:ConnectionProfileAlloydbSettings":{"properties":{"initialUser":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileAlloydbSettingsInitialUser:ConnectionProfileAlloydbSettingsInitialUser","description":"Required. Input only. Initial user to setup during cluster creation.\nStructure is documented below.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels for the AlloyDB cluster created by DMS.\n"},"primaryInstanceSettings":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileAlloydbSettingsPrimaryInstanceSettings:ConnectionProfileAlloydbSettingsPrimaryInstanceSettings","description":"Settings for the cluster's primary instance\nStructure is documented below.\n"},"vpcNetwork":{"type":"string","description":"Required. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster.\nIt is specified in the form: 'projects/{project_number}/global/networks/{network_id}'. This is required to create a cluster.\n"}},"type":"object","required":["initialUser","vpcNetwork"]},"gcp:databasemigrationservice/ConnectionProfileAlloydbSettingsInitialUser:ConnectionProfileAlloydbSettingsInitialUser":{"properties":{"password":{"type":"string","description":"The initial password for the user.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"passwordSet":{"type":"boolean","description":"(Output)\nOutput only. Indicates if the initialUser.password field has been set.\n"},"user":{"type":"string","description":"The database username.\n"}},"type":"object","required":["password","user"],"language":{"nodejs":{"requiredOutputs":["password","passwordSet","user"]}}},"gcp:databasemigrationservice/ConnectionProfileAlloydbSettingsPrimaryInstanceSettings:ConnectionProfileAlloydbSettingsPrimaryInstanceSettings":{"properties":{"databaseFlags":{"type":"object","additionalProperties":{"type":"string"},"description":"Database flags to pass to AlloyDB when DMS is creating the AlloyDB cluster and instances. See the AlloyDB documentation for how these can be used.\n"},"id":{"type":"string","description":"The database username.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Labels for the AlloyDB primary instance created by DMS.\n"},"machineConfig":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileAlloydbSettingsPrimaryInstanceSettingsMachineConfig:ConnectionProfileAlloydbSettingsPrimaryInstanceSettingsMachineConfig","description":"Configuration for the machines that host the underlying database engine.\nStructure is documented below.\n","willReplaceOnChanges":true},"privateIp":{"type":"string","description":"(Output)\nOutput only. The private IP address for the Instance. This is the connection endpoint for an end-user application.\n"}},"type":"object","required":["id","machineConfig"],"language":{"nodejs":{"requiredOutputs":["id","machineConfig","privateIp"]}}},"gcp:databasemigrationservice/ConnectionProfileAlloydbSettingsPrimaryInstanceSettingsMachineConfig:ConnectionProfileAlloydbSettingsPrimaryInstanceSettingsMachineConfig":{"properties":{"cpuCount":{"type":"integer","description":"The number of CPU's in the VM instance.\n"}},"type":"object","required":["cpuCount"]},"gcp:databasemigrationservice/ConnectionProfileCloudsql:ConnectionProfileCloudsql":{"properties":{"cloudSqlId":{"type":"string","description":"(Output)\nOutput only. The Cloud SQL instance ID that this connection profile is associated with.\n"},"privateIp":{"type":"string","description":"(Output)\nOutput only. The Cloud SQL database instance's private IP.\n"},"publicIp":{"type":"string","description":"(Output)\nOutput only. The Cloud SQL database instance's public IP.\n"},"settings":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileCloudsqlSettings:ConnectionProfileCloudsqlSettings","description":"Immutable. Metadata used to create the destination Cloud SQL database.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudSqlId","privateIp","publicIp"]}}},"gcp:databasemigrationservice/ConnectionProfileCloudsqlSettings:ConnectionProfileCloudsqlSettings":{"properties":{"activationPolicy":{"type":"string","description":"The activation policy specifies when the instance is activated; it is applicable only when the instance state is 'RUNNABLE'.\nPossible values are: `ALWAYS`, `NEVER`.\n"},"autoStorageIncrease":{"type":"boolean","description":"If you enable this setting, Cloud SQL checks your available storage every 30 seconds. If the available storage falls below a threshold size, Cloud SQL automatically adds additional storage capacity.\nIf the available storage repeatedly falls below the threshold size, Cloud SQL continues to add storage until it reaches the maximum of 30 TB.\n"},"cmekKeyName":{"type":"string","description":"The KMS key name used for the csql instance.\n"},"collation":{"type":"string","description":"The Cloud SQL default instance level collation.\n"},"dataDiskSizeGb":{"type":"string","description":"The storage capacity available to the database, in GB. The minimum (and default) size is 10GB.\n"},"dataDiskType":{"type":"string","description":"The type of storage.\nPossible values are: `PD_SSD`, `PD_HDD`.\n"},"databaseFlags":{"type":"object","additionalProperties":{"type":"string"},"description":"The database flags passed to the Cloud SQL instance at startup.\n"},"databaseVersion":{"type":"string","description":"The database engine type and version.\nCurrently supported values located at https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.connectionProfiles#sqldatabaseversion\n"},"edition":{"type":"string","description":"The edition of the given Cloud SQL instance.\nPossible values are: `ENTERPRISE`, `ENTERPRISE_PLUS`.\n"},"ipConfig":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileCloudsqlSettingsIpConfig:ConnectionProfileCloudsqlSettingsIpConfig","description":"The settings for IP Management. This allows to enable or disable the instance IP and manage which external networks can connect to the instance. The IPv4 address cannot be disabled.\nStructure is documented below.\n"},"rootPassword":{"type":"string","description":"Input only. Initial root password.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"rootPasswordSet":{"type":"boolean","description":"(Output)\nOutput only. Indicates If this connection profile root password is stored.\n"},"sourceId":{"type":"string","description":"The Database Migration Service source connection profile ID, in the format: projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID\n"},"storageAutoResizeLimit":{"type":"string","description":"The maximum size to which storage capacity can be automatically increased. The default value is 0, which specifies that there is no limit.\n"},"tier":{"type":"string","description":"The tier (or machine type) for this instance, for example: db-n1-standard-1 (MySQL instances) or db-custom-1-3840 (PostgreSQL instances).\nFor more information, see https://cloud.google.com/sql/docs/mysql/instance-settings\n"},"userLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"The resource labels for a Cloud SQL instance to use to annotate any related underlying resources such as Compute Engine VMs.\n"},"zone":{"type":"string","description":"The Google Cloud Platform zone where your Cloud SQL datdabse instance is located.\n"}},"type":"object","required":["sourceId"],"language":{"nodejs":{"requiredOutputs":["rootPasswordSet","sourceId"]}}},"gcp:databasemigrationservice/ConnectionProfileCloudsqlSettingsIpConfig:ConnectionProfileCloudsqlSettingsIpConfig":{"properties":{"authorizedNetworks":{"type":"array","items":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileCloudsqlSettingsIpConfigAuthorizedNetwork:ConnectionProfileCloudsqlSettingsIpConfigAuthorizedNetwork"},"description":"The list of external networks that are allowed to connect to the instance using the IP.\nStructure is documented below.\n"},"enableIpv4":{"type":"boolean","description":"Whether the instance should be assigned an IPv4 address or not.\n"},"privateNetwork":{"type":"string","description":"The resource link for the VPC network from which the Cloud SQL instance is accessible for private IP. For example, projects/myProject/global/networks/default.\nThis setting can be updated, but it cannot be removed after it is set.\n"},"requireSsl":{"type":"boolean","description":"Whether SSL connections over IP should be enforced or not.\n"}},"type":"object"},"gcp:databasemigrationservice/ConnectionProfileCloudsqlSettingsIpConfigAuthorizedNetwork:ConnectionProfileCloudsqlSettingsIpConfigAuthorizedNetwork":{"properties":{"expireTime":{"type":"string","description":"The time when this access control entry expires in RFC 3339 format.\n"},"label":{"type":"string","description":"A label to identify this entry.\n"},"ttl":{"type":"string","description":"Input only. The time-to-leave of this access control entry.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The allowlisted value for the access control list.\n"}},"type":"object","required":["value"]},"gcp:databasemigrationservice/ConnectionProfileError:ConnectionProfileError":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of google.rpc.Code.\n"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"(Output)\nA list of messages that carry the error details.\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","details","message"]}}},"gcp:databasemigrationservice/ConnectionProfileMysql:ConnectionProfileMysql":{"properties":{"cloudSqlId":{"type":"string","description":"If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.\n"},"host":{"type":"string","description":"The IP or hostname of the source MySQL database.\n"},"password":{"type":"string","description":"Input only. The password for the user that Database Migration Service will be using to connect to the database.\nThis field is not returned on request, and the value is encrypted when stored in Database Migration Service.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"passwordSet":{"type":"boolean","description":"(Output)\nOutput only. Indicates If this connection profile password is stored.\n"},"port":{"type":"integer","description":"The network port of the source MySQL database.\n"},"ssl":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileMysqlSsl:ConnectionProfileMysqlSsl","description":"SSL configuration for the destination to connect to the source database.\nStructure is documented below.\n"},"username":{"type":"string","description":"The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["passwordSet"]}}},"gcp:databasemigrationservice/ConnectionProfileMysqlSsl:ConnectionProfileMysqlSsl":{"properties":{"caCertificate":{"type":"string","description":"Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate.\nThe replica will use this certificate to verify it's connecting to the right host.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientCertificate":{"type":"string","description":"Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.\nIf this field is used then the 'clientKey' field is mandatory\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientKey":{"type":"string","description":"Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate.\nIf this field is used then the 'clientCertificate' field is mandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"type":{"type":"string","description":"(Output)\nThe current connection profile state.\n"}},"type":"object"},"gcp:databasemigrationservice/ConnectionProfileOracle:ConnectionProfileOracle":{"properties":{"databaseService":{"type":"string","description":"Required. Database service for the Oracle connection.\n"},"forwardSshConnectivity":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileOracleForwardSshConnectivity:ConnectionProfileOracleForwardSshConnectivity","description":"SSL configuration for the destination to connect to the source database.\nStructure is documented below.\n"},"host":{"type":"string","description":"Required. The IP or hostname of the source Oracle database.\n"},"password":{"type":"string","description":"Required. Input only. The password for the user that Database Migration Service will be using to connect to the database.\nThis field is not returned on request, and the value is encrypted when stored in Database Migration Service.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"passwordSet":{"type":"boolean","description":"(Output)\nOutput only. Indicates If this connection profile password is stored.\n"},"port":{"type":"integer","description":"Required. The network port of the source Oracle database.\n"},"privateConnectivity":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileOraclePrivateConnectivity:ConnectionProfileOraclePrivateConnectivity","description":"Configuration for using a private network to communicate with the source database\nStructure is documented below.\n"},"ssl":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileOracleSsl:ConnectionProfileOracleSsl","description":"SSL configuration for the destination to connect to the source database.\nStructure is documented below.\n"},"staticServiceIpConnectivity":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfileOracleStaticServiceIpConnectivity:ConnectionProfileOracleStaticServiceIpConnectivity","description":"This object has no nested fields.\nStatic IP address connectivity configured on service project.\n"},"username":{"type":"string","description":"Required. The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.\n"}},"type":"object","required":["databaseService","host","password","port","username"],"language":{"nodejs":{"requiredOutputs":["databaseService","host","password","passwordSet","port","username"]}}},"gcp:databasemigrationservice/ConnectionProfileOracleForwardSshConnectivity:ConnectionProfileOracleForwardSshConnectivity":{"properties":{"hostname":{"type":"string","description":"Required. Hostname for the SSH tunnel.\n"},"password":{"type":"string","description":"Input only. SSH password. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e can be configured.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"port":{"type":"integer","description":"Port for the SSH tunnel, default value is 22.\n"},"privateKey":{"type":"string","description":"Input only. SSH private key. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e can be configured.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"username":{"type":"string","description":"Required. Username for the SSH tunnel.\n"}},"type":"object","required":["hostname","port","username"]},"gcp:databasemigrationservice/ConnectionProfileOraclePrivateConnectivity:ConnectionProfileOraclePrivateConnectivity":{"properties":{"privateConnection":{"type":"string","description":"Required. The resource name (URI) of the private connection.\n"}},"type":"object","required":["privateConnection"]},"gcp:databasemigrationservice/ConnectionProfileOracleSsl:ConnectionProfileOracleSsl":{"properties":{"caCertificate":{"type":"string","description":"Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate.\nThe replica will use this certificate to verify it's connecting to the right host.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientCertificate":{"type":"string","description":"Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.\nIf this field is used then the 'clientKey' field is mandatory\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientKey":{"type":"string","description":"Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate.\nIf this field is used then the 'clientCertificate' field is mandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"type":{"type":"string","description":"(Output)\nThe current connection profile state.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["type"]}}},"gcp:databasemigrationservice/ConnectionProfileOracleStaticServiceIpConnectivity:ConnectionProfileOracleStaticServiceIpConnectivity":{"type":"object"},"gcp:databasemigrationservice/ConnectionProfilePostgresql:ConnectionProfilePostgresql":{"properties":{"alloydbClusterId":{"type":"string","description":"If the connected database is an AlloyDB instance, use this field to provide the AlloyDB cluster ID.\n"},"cloudSqlId":{"type":"string","description":"If the source is a Cloud SQL database, use this field to provide the Cloud SQL instance ID of the source.\n"},"host":{"type":"string","description":"The IP or hostname of the source MySQL database.\n"},"networkArchitecture":{"type":"string","description":"(Output)\nOutput only. If the source is a Cloud SQL database, this field indicates the network architecture it's associated with.\n"},"password":{"type":"string","description":"Input only. The password for the user that Database Migration Service will be using to connect to the database.\nThis field is not returned on request, and the value is encrypted when stored in Database Migration Service.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"passwordSet":{"type":"boolean","description":"(Output)\nOutput only. Indicates If this connection profile password is stored.\n"},"port":{"type":"integer","description":"The network port of the source MySQL database.\n"},"ssl":{"$ref":"#/types/gcp:databasemigrationservice/ConnectionProfilePostgresqlSsl:ConnectionProfilePostgresqlSsl","description":"SSL configuration for the destination to connect to the source database.\nStructure is documented below.\n"},"username":{"type":"string","description":"The username that Database Migration Service will use to connect to the database. The value is encrypted when stored in Database Migration Service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["networkArchitecture","passwordSet"]}}},"gcp:databasemigrationservice/ConnectionProfilePostgresqlSsl:ConnectionProfilePostgresqlSsl":{"properties":{"caCertificate":{"type":"string","description":"Input only. The x509 PEM-encoded certificate of the CA that signed the source database server's certificate.\nThe replica will use this certificate to verify it's connecting to the right host.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientCertificate":{"type":"string","description":"Input only. The x509 PEM-encoded certificate that will be used by the replica to authenticate against the source database server.\nIf this field is used then the 'clientKey' field is mandatory\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientKey":{"type":"string","description":"Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key associated with the Client Certificate.\nIf this field is used then the 'clientCertificate' field is mandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"type":{"type":"string","description":"(Output)\nThe current connection profile state.\n"}},"type":"object"},"gcp:databasemigrationservice/MigrationJobDumpFlags:MigrationJobDumpFlags":{"properties":{"dumpFlags":{"type":"array","items":{"$ref":"#/types/gcp:databasemigrationservice/MigrationJobDumpFlagsDumpFlag:MigrationJobDumpFlagsDumpFlag"},"description":"A list of dump flags\nStructure is documented below.\n"}},"type":"object"},"gcp:databasemigrationservice/MigrationJobDumpFlagsDumpFlag:MigrationJobDumpFlagsDumpFlag":{"properties":{"name":{"type":"string","description":"The name of the flag\n"},"value":{"type":"string","description":"The vale of the flag\n"}},"type":"object"},"gcp:databasemigrationservice/MigrationJobError:MigrationJobError":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of google.rpc.Code.\n"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"(Output)\nA list of messages that carry the error details.\n"},"message":{"type":"string","description":"(Output)\nHuman readable message indicating details about the current status.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","details","message"]}}},"gcp:databasemigrationservice/MigrationJobPerformanceConfig:MigrationJobPerformanceConfig":{"properties":{"dumpParallelLevel":{"type":"string","description":"Initial dump parallelism level.\nPossible values are: `MIN`, `OPTIMAL`, `MAX`.\n"}},"type":"object"},"gcp:databasemigrationservice/MigrationJobReverseSshConnectivity:MigrationJobReverseSshConnectivity":{"properties":{"vm":{"type":"string","description":"The name of the virtual machine (Compute Engine) used as the bastion server\nfor the SSH tunnel.\n"},"vmIp":{"type":"string","description":"The IP of the virtual machine (Compute Engine) used as the bastion server\nfor the SSH tunnel.\n"},"vmPort":{"type":"integer","description":"The forwarding port of the virtual machine (Compute Engine) used as the\nbastion server for the SSH tunnel.\n"},"vpc":{"type":"string","description":"The name of the VPC to peer with the Cloud SQL private network.\n"}},"type":"object"},"gcp:databasemigrationservice/MigrationJobStaticIpConnectivity:MigrationJobStaticIpConnectivity":{"type":"object"},"gcp:databasemigrationservice/MigrationJobVpcPeeringConnectivity:MigrationJobVpcPeeringConnectivity":{"properties":{"vpc":{"type":"string","description":"The name of the VPC network to peer with the Cloud SQL private network.\n"}},"type":"object"},"gcp:databasemigrationservice/PrivateConnectionError:PrivateConnectionError":{"properties":{"details":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of messages that carry the error details.\n"},"message":{"type":"string","description":"A message containing more information about the error that occurred.\n"}},"type":"object"},"gcp:databasemigrationservice/PrivateConnectionVpcPeeringConfig:PrivateConnectionVpcPeeringConfig":{"properties":{"subnet":{"type":"string","description":"A free subnet for peering. (CIDR of /29)\n","willReplaceOnChanges":true},"vpcName":{"type":"string","description":"Fully qualified name of the VPC that Database Migration Service will peer to.\nFormat: projects/{project}/global/{networks}/{name}\n","willReplaceOnChanges":true}},"type":"object","required":["subnet","vpcName"]},"gcp:datacatalog/EntryBigqueryDateShardedSpec:EntryBigqueryDateShardedSpec":{"properties":{"dataset":{"type":"string","description":"(Output)\nThe Data Catalog resource name of the dataset entry the current table belongs to, for example,\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}\n"},"shardCount":{"type":"integer","description":"(Output)\nTotal number of shards.\n"},"tablePrefix":{"type":"string","description":"(Output)\nThe table name prefix of the shards. The name of any given shard is [tablePrefix]YYYYMMDD,\nfor example, for shard MyTable20180101, the tablePrefix is MyTable.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataset","shardCount","tablePrefix"]}}},"gcp:datacatalog/EntryBigqueryTableSpec:EntryBigqueryTableSpec":{"properties":{"tableSourceType":{"type":"string","description":"(Output)\nThe table source type.\n"},"tableSpecs":{"type":"array","items":{"$ref":"#/types/gcp:datacatalog/EntryBigqueryTableSpecTableSpec:EntryBigqueryTableSpecTableSpec"},"description":"(Output)\nSpec of a BigQuery table. This field should only be populated if tableSourceType is BIGQUERY_TABLE.\nStructure is documented below.\n"},"viewSpecs":{"type":"array","items":{"$ref":"#/types/gcp:datacatalog/EntryBigqueryTableSpecViewSpec:EntryBigqueryTableSpecViewSpec"},"description":"(Output)\nTable view specification. This field should only be populated if tableSourceType is BIGQUERY_VIEW.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["tableSourceType","tableSpecs","viewSpecs"]}}},"gcp:datacatalog/EntryBigqueryTableSpecTableSpec:EntryBigqueryTableSpecTableSpec":{"properties":{"groupedEntry":{"type":"string","description":"(Output)\nIf the table is a dated shard, i.e., with name pattern [prefix]YYYYMMDD, groupedEntry is the\nData Catalog resource name of the date sharded grouped entry, for example,\nprojects/{project_id}/locations/{location}/entrygroups/{entryGroupId}/entries/{entryId}.\nOtherwise, groupedEntry is empty.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["groupedEntry"]}}},"gcp:datacatalog/EntryBigqueryTableSpecViewSpec:EntryBigqueryTableSpecViewSpec":{"properties":{"viewQuery":{"type":"string","description":"(Output)\nThe query that defines the table view.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["viewQuery"]}}},"gcp:datacatalog/EntryGcsFilesetSpec:EntryGcsFilesetSpec":{"properties":{"filePatterns":{"type":"array","items":{"type":"string"},"description":"Patterns to identify a set of files in Google Cloud Storage.\nSee [Cloud Storage documentation](https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames)\nfor more information. Note that bucket wildcards are currently not supported. Examples of valid filePatterns:\n* gs://bucket_name/dir/*: matches all files within bucket_name/dir directory.\n* gs://bucket_name/dir/**: matches all files in bucket_name/dir spanning all subdirectories.\n* gs://bucket_name/file*: matches files prefixed by file in\u003cspan pulumi-lang-nodejs=\" bucketName\n\" pulumi-lang-dotnet=\" BucketName\n\" pulumi-lang-go=\" bucketName\n\" pulumi-lang-python=\" bucket_name\n\" pulumi-lang-yaml=\" bucketName\n\" pulumi-lang-java=\" bucketName\n\"\u003e bucket_name\n\u003c/span\u003e* gs://bucket_name/??.txt: matches files with two characters followed by .txt in\u003cspan pulumi-lang-nodejs=\" bucketName\n\" pulumi-lang-dotnet=\" BucketName\n\" pulumi-lang-go=\" bucketName\n\" pulumi-lang-python=\" bucket_name\n\" pulumi-lang-yaml=\" bucketName\n\" pulumi-lang-java=\" bucketName\n\"\u003e bucket_name\n\u003c/span\u003e* gs://bucket_name/[aeiou].txt: matches files that contain a single vowel character followed by .txt in\u003cspan pulumi-lang-nodejs=\" bucketName\n\" pulumi-lang-dotnet=\" BucketName\n\" pulumi-lang-go=\" bucketName\n\" pulumi-lang-python=\" bucket_name\n\" pulumi-lang-yaml=\" bucketName\n\" pulumi-lang-java=\" bucketName\n\"\u003e bucket_name\n\u003c/span\u003e* gs://bucket_name/[a-m].txt: matches files that contain a, b, ... or m followed by .txt in\u003cspan pulumi-lang-nodejs=\" bucketName\n\" pulumi-lang-dotnet=\" BucketName\n\" pulumi-lang-go=\" bucketName\n\" pulumi-lang-python=\" bucket_name\n\" pulumi-lang-yaml=\" bucketName\n\" pulumi-lang-java=\" bucketName\n\"\u003e bucket_name\n\u003c/span\u003e* gs://bucket_name/a/*/b: matches all files in\u003cspan pulumi-lang-nodejs=\" bucketName \" pulumi-lang-dotnet=\" BucketName \" pulumi-lang-go=\" bucketName \" pulumi-lang-python=\" bucket_name \" pulumi-lang-yaml=\" bucketName \" pulumi-lang-java=\" bucketName \"\u003e bucket_name \u003c/span\u003ethat match a/*/b pattern, such as a/c/b, a/d/b\n* gs://another_bucket/a.txt: matches gs://another_bucket/a.txt\n"},"sampleGcsFileSpecs":{"type":"array","items":{"$ref":"#/types/gcp:datacatalog/EntryGcsFilesetSpecSampleGcsFileSpec:EntryGcsFilesetSpecSampleGcsFileSpec"},"description":"(Output)\nSample files contained in this fileset, not all files contained in this fileset are represented here.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedGcsFilesetSpecSampleGcsFileSpecs\"\" pulumi-lang-dotnet=\"\"NestedGcsFilesetSpecSampleGcsFileSpecs\"\" pulumi-lang-go=\"\"nestedGcsFilesetSpecSampleGcsFileSpecs\"\" pulumi-lang-python=\"\"nested_gcs_fileset_spec_sample_gcs_file_specs\"\" pulumi-lang-yaml=\"\"nestedGcsFilesetSpecSampleGcsFileSpecs\"\" pulumi-lang-java=\"\"nestedGcsFilesetSpecSampleGcsFileSpecs\"\"\u003e\"nested_gcs_fileset_spec_sample_gcs_file_specs\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`sampleGcsFileSpecs`\" pulumi-lang-dotnet=\"`SampleGcsFileSpecs`\" pulumi-lang-go=\"`sampleGcsFileSpecs`\" pulumi-lang-python=\"`sample_gcs_file_specs`\" pulumi-lang-yaml=\"`sampleGcsFileSpecs`\" pulumi-lang-java=\"`sampleGcsFileSpecs`\"\u003e`sample_gcs_file_specs`\u003c/span\u003e block contains:\n"}},"type":"object","required":["filePatterns"],"language":{"nodejs":{"requiredOutputs":["filePatterns","sampleGcsFileSpecs"]}}},"gcp:datacatalog/EntryGcsFilesetSpecSampleGcsFileSpec:EntryGcsFilesetSpecSampleGcsFileSpec":{"properties":{"filePath":{"type":"string","description":"The full file path\n"},"sizeBytes":{"type":"integer","description":"The size of the file, in bytes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["filePath","sizeBytes"]}}},"gcp:datacatalog/EntryGroupIamBindingCondition:EntryGroupIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/EntryGroupIamMemberCondition:EntryGroupIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/PolicyTagIamBindingCondition:PolicyTagIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/PolicyTagIamMemberCondition:PolicyTagIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/TagField:TagField":{"properties":{"boolValue":{"type":"boolean","description":"Holds the value for a tag field with boolean type.\n"},"displayName":{"type":"string","description":"(Output)\nThe display name of this field\n"},"doubleValue":{"type":"number","description":"Holds the value for a tag field with double type.\n"},"enumValue":{"type":"string","description":"Holds the value for a tag field with enum type. This value must be one of the allowed values in the definition of this enum.\n"},"fieldName":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"order":{"type":"integer","description":"(Output)\nThe order of this field with respect to other fields in this tag. For example, a higher value can indicate\na more important field. The value can be negative. Multiple fields can have the same order, and field orders\nwithin a tag do not have to be sequential.\n"},"stringValue":{"type":"string","description":"Holds the value for a tag field with string type.\n"},"timestampValue":{"type":"string","description":"Holds the value for a tag field with timestamp type.\n"}},"type":"object","required":["fieldName"],"language":{"nodejs":{"requiredOutputs":["displayName","fieldName","order"]}}},"gcp:datacatalog/TagTemplateField:TagTemplateField":{"properties":{"description":{"type":"string","description":"A description for this field.\n"},"displayName":{"type":"string","description":"The display name for this field.\n"},"fieldId":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"isRequired":{"type":"boolean","description":"Whether this is a required field. Defaults to false.\n"},"name":{"type":"string","description":"(Output)\nThe resource name of the tag template field in URL format. Example: projects/{project_id}/locations/{location}/tagTemplates/{tagTemplateId}/fields/{field}\n"},"order":{"type":"integer","description":"The order of this field with respect to other fields in this tag template.\nA higher value indicates a more important field. The value can be negative.\nMultiple fields can have the same order, and field orders within a tag do not have to be sequential.\n"},"type":{"$ref":"#/types/gcp:datacatalog/TagTemplateFieldType:TagTemplateFieldType","description":"The type of value this tag field can contain.\nStructure is documented below.\n"}},"type":"object","required":["fieldId","type"],"language":{"nodejs":{"requiredOutputs":["description","displayName","fieldId","isRequired","name","order","type"]}}},"gcp:datacatalog/TagTemplateFieldType:TagTemplateFieldType":{"properties":{"enumType":{"$ref":"#/types/gcp:datacatalog/TagTemplateFieldTypeEnumType:TagTemplateFieldTypeEnumType","description":"Represents an enum type.\nExactly one of \u003cspan pulumi-lang-nodejs=\"`primitiveType`\" pulumi-lang-dotnet=\"`PrimitiveType`\" pulumi-lang-go=\"`primitiveType`\" pulumi-lang-python=\"`primitive_type`\" pulumi-lang-yaml=\"`primitiveType`\" pulumi-lang-java=\"`primitiveType`\"\u003e`primitive_type`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enumType`\" pulumi-lang-dotnet=\"`EnumType`\" pulumi-lang-go=\"`enumType`\" pulumi-lang-python=\"`enum_type`\" pulumi-lang-yaml=\"`enumType`\" pulumi-lang-java=\"`enumType`\"\u003e`enum_type`\u003c/span\u003e must be set\nStructure is documented below.\n"},"primitiveType":{"type":"string","description":"Represents primitive types - string, bool etc.\nExactly one of \u003cspan pulumi-lang-nodejs=\"`primitiveType`\" pulumi-lang-dotnet=\"`PrimitiveType`\" pulumi-lang-go=\"`primitiveType`\" pulumi-lang-python=\"`primitive_type`\" pulumi-lang-yaml=\"`primitiveType`\" pulumi-lang-java=\"`primitiveType`\"\u003e`primitive_type`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enumType`\" pulumi-lang-dotnet=\"`EnumType`\" pulumi-lang-go=\"`enumType`\" pulumi-lang-python=\"`enum_type`\" pulumi-lang-yaml=\"`enumType`\" pulumi-lang-java=\"`enumType`\"\u003e`enum_type`\u003c/span\u003e must be set\nPossible values are: `DOUBLE`, `STRING`, `BOOL`, `TIMESTAMP`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["primitiveType"]}}},"gcp:datacatalog/TagTemplateFieldTypeEnumType:TagTemplateFieldTypeEnumType":{"properties":{"allowedValues":{"type":"array","items":{"$ref":"#/types/gcp:datacatalog/TagTemplateFieldTypeEnumTypeAllowedValue:TagTemplateFieldTypeEnumTypeAllowedValue"},"description":"The set of allowed values for this enum. The display names of the\nvalues must be case-insensitively unique within this set. Currently,\nenum values can only be added to the list of allowed values. Deletion\nand renaming of enum values are not supported.\nCan have up to 500 allowed values.\nStructure is documented below.\n"}},"type":"object","required":["allowedValues"]},"gcp:datacatalog/TagTemplateFieldTypeEnumTypeAllowedValue:TagTemplateFieldTypeEnumTypeAllowedValue":{"properties":{"displayName":{"type":"string","description":"The display name of the enum value.\n"}},"type":"object","required":["displayName"]},"gcp:datacatalog/TagTemplateIamBindingCondition:TagTemplateIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/TagTemplateIamMemberCondition:TagTemplateIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/TaxonomyIamBindingCondition:TaxonomyIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:datacatalog/TaxonomyIamMemberCondition:TaxonomyIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataflow/PipelineScheduleInfo:PipelineScheduleInfo":{"properties":{"nextJobTime":{"type":"string","description":"(Output)\nWhen the next Scheduler job is going to run.\nA timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"},"schedule":{"type":"string","description":"Unix-cron format of the schedule. This information is retrieved from the linked Cloud Scheduler.\n"},"timeZone":{"type":"string","description":"Timezone ID. This matches the timezone IDs used by the Cloud Scheduler API. If empty, UTC time is assumed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nextJobTime"]}}},"gcp:dataflow/PipelineWorkload:PipelineWorkload":{"properties":{"dataflowFlexTemplateRequest":{"$ref":"#/types/gcp:dataflow/PipelineWorkloadDataflowFlexTemplateRequest:PipelineWorkloadDataflowFlexTemplateRequest","description":"Template information and additional parameters needed to launch a Dataflow job using the flex launch API.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#launchflextemplaterequest\nStructure is documented below.\n"},"dataflowLaunchTemplateRequest":{"$ref":"#/types/gcp:dataflow/PipelineWorkloadDataflowLaunchTemplateRequest:PipelineWorkloadDataflowLaunchTemplateRequest","description":"Template information and additional parameters needed to launch a Dataflow job using the standard launch API.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#launchtemplaterequest\nStructure is documented below.\n"}},"type":"object"},"gcp:dataflow/PipelineWorkloadDataflowFlexTemplateRequest:PipelineWorkloadDataflowFlexTemplateRequest":{"properties":{"launchParameter":{"$ref":"#/types/gcp:dataflow/PipelineWorkloadDataflowFlexTemplateRequestLaunchParameter:PipelineWorkloadDataflowFlexTemplateRequestLaunchParameter","description":"Parameter to launch a job from a Flex Template.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#launchflextemplateparameter\nStructure is documented below.\n"},"location":{"type":"string","description":"The regional endpoint to which to direct the request. For example, us-central1, us-west1.\n"},"projectId":{"type":"string","description":"The ID of the Cloud Platform project that the job belongs to.\n"},"validateOnly":{"type":"boolean","description":"If true, the request is validated but not actually executed. Defaults to false.\n"}},"type":"object","required":["launchParameter","location","projectId"]},"gcp:dataflow/PipelineWorkloadDataflowFlexTemplateRequestLaunchParameter:PipelineWorkloadDataflowFlexTemplateRequestLaunchParameter":{"properties":{"containerSpecGcsPath":{"type":"string","description":"Cloud Storage path to a file with a JSON-serialized ContainerSpec as content.\n"},"environment":{"$ref":"#/types/gcp:dataflow/PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironment:PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironment","description":"The runtime environment for the Flex Template job.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#FlexTemplateRuntimeEnvironment\nStructure is documented below.\n"},"jobName":{"type":"string","description":"The job name to use for the created job. For an update job request, the job name should be the same as the existing running job.\n"},"launchOptions":{"type":"object","additionalProperties":{"type":"string"},"description":"Launch options for this Flex Template job. This is a common set of options across languages and templates. This should not be used to pass job parameters.\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"'The parameters for the Flex Template. Example: {\"numWorkers\":\"5\"}'\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"transformNameMappings":{"type":"object","additionalProperties":{"type":"string"},"description":"'Use this to pass transform name mappings for streaming update jobs. Example: {\"oldTransformName\":\"newTransformName\",...}'\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"update":{"type":"boolean","description":"Set this to true if you are sending a request to update a running streaming job. When set, the job name should be the same as the running job.\n"}},"type":"object","required":["jobName"]},"gcp:dataflow/PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironment:PipelineWorkloadDataflowFlexTemplateRequestLaunchParameterEnvironment":{"properties":{"additionalExperiments":{"type":"array","items":{"type":"string"},"description":"Additional experiment flags for the job.\n"},"additionalUserLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. An object containing a list of key/value pairs.\n'Example: { \"name\": \"wrench\", \"mass\": \"1kg\", \"count\": \"3\" }.'\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"enableStreamingEngine":{"type":"boolean","description":"Whether to enable Streaming Engine for the job.\n"},"flexrsGoal":{"type":"string","description":"Set FlexRS goal for the job. https://cloud.google.com/dataflow/docs/guides/flexrs\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#FlexResourceSchedulingGoal\nPossible values are: `FLEXRS_UNSPECIFIED`, `FLEXRS_SPEED_OPTIMIZED`, `FLEXRS_COST_OPTIMIZED`.\n"},"ipConfiguration":{"type":"string","description":"Configuration for VM IPs.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#WorkerIPAddressConfiguration\nPossible values are: `WORKER_IP_UNSPECIFIED`, `WORKER_IP_PUBLIC`, `WORKER_IP_PRIVATE`.\n"},"kmsKeyName":{"type":"string","description":"'Name for the Cloud KMS key for the job. The key format is: projects//locations//keyRings//cryptoKeys/'\n"},"machineType":{"type":"string","description":"The machine type to use for the job. Defaults to the value from the template if not specified.\n"},"maxWorkers":{"type":"integer","description":"The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.\n"},"network":{"type":"string","description":"Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".\n"},"numWorkers":{"type":"integer","description":"The initial number of Compute Engine instances for the job.\n"},"serviceAccountEmail":{"type":"string","description":"The email address of the service account to run the job as.\n"},"subnetwork":{"type":"string","description":"Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form \"https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK\" or \"regions/REGION/subnetworks/SUBNETWORK\". If the subnetwork is located in a Shared VPC network, you must use the complete URL.\n"},"tempLocation":{"type":"string","description":"The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with gs://.\n"},"workerRegion":{"type":"string","description":"The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with workerZone. If neither workerRegion nor workerZone is specified, default to the control plane's region.\n"},"workerZone":{"type":"string","description":"The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with workerRegion. If neither workerRegion nor workerZone is specified, a zone in the control plane's region is chosen based on available capacity. If both workerZone and zone are set, workerZone takes precedence.\n"},"zone":{"type":"string","description":"The Compute Engine availability zone for launching worker instances to run your pipeline. In the future, workerZone will take precedence.\n"}},"type":"object"},"gcp:dataflow/PipelineWorkloadDataflowLaunchTemplateRequest:PipelineWorkloadDataflowLaunchTemplateRequest":{"properties":{"gcsPath":{"type":"string","description":"A Cloud Storage path to the template from which to create the job. Must be a valid Cloud Storage URL, beginning with 'gs://'.\n"},"launchParameters":{"$ref":"#/types/gcp:dataflow/PipelineWorkloadDataflowLaunchTemplateRequestLaunchParameters:PipelineWorkloadDataflowLaunchTemplateRequestLaunchParameters","description":"The parameters of the template to launch. This should be part of the body of the POST request.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#launchtemplateparameters\nStructure is documented below.\n"},"location":{"type":"string","description":"The regional endpoint to which to direct the request.\n"},"projectId":{"type":"string","description":"The ID of the Cloud Platform project that the job belongs to.\n"},"validateOnly":{"type":"boolean","description":"(Optional)\n"}},"type":"object","required":["projectId"]},"gcp:dataflow/PipelineWorkloadDataflowLaunchTemplateRequestLaunchParameters:PipelineWorkloadDataflowLaunchTemplateRequestLaunchParameters":{"properties":{"environment":{"$ref":"#/types/gcp:dataflow/PipelineWorkloadDataflowLaunchTemplateRequestLaunchParametersEnvironment:PipelineWorkloadDataflowLaunchTemplateRequestLaunchParametersEnvironment","description":"The runtime environment for the job.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#RuntimeEnvironment\nStructure is documented below.\n"},"jobName":{"type":"string","description":"The job name to use for the created job.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"The runtime parameters to pass to the job.\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"transformNameMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of transform name prefixes of the job to be replaced to the corresponding name prefixes of the new job. Only applicable when updating a pipeline.\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"update":{"type":"boolean","description":"If set, replace the existing pipeline with the name specified by jobName with this pipeline, preserving state.\n"}},"type":"object","required":["jobName"]},"gcp:dataflow/PipelineWorkloadDataflowLaunchTemplateRequestLaunchParametersEnvironment:PipelineWorkloadDataflowLaunchTemplateRequestLaunchParametersEnvironment":{"properties":{"additionalExperiments":{"type":"array","items":{"type":"string"},"description":"Additional experiment flags for the job.\n"},"additionalUserLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional user labels to be specified for the job. Keys and values should follow the restrictions specified in the labeling restrictions page. An object containing a list of key/value pairs.\n'Example: { \"name\": \"wrench\", \"mass\": \"1kg\", \"count\": \"3\" }.'\n'An object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.'\n"},"bypassTempDirValidation":{"type":"boolean","description":"Whether to bypass the safety checks for the job's temporary directory. Use with caution.\n"},"enableStreamingEngine":{"type":"boolean","description":"Whether to enable Streaming Engine for the job.\n"},"ipConfiguration":{"type":"string","description":"Configuration for VM IPs.\nhttps://cloud.google.com/dataflow/docs/reference/data-pipelines/rest/v1/projects.locations.pipelines#WorkerIPAddressConfiguration\nPossible values are: `WORKER_IP_UNSPECIFIED`, `WORKER_IP_PUBLIC`, `WORKER_IP_PRIVATE`.\n"},"kmsKeyName":{"type":"string","description":"'Name for the Cloud KMS key for the job. The key format is: projects//locations//keyRings//cryptoKeys/'\n"},"machineType":{"type":"string","description":"The machine type to use for the job. Defaults to the value from the template if not specified.\n"},"maxWorkers":{"type":"integer","description":"The maximum number of Compute Engine instances to be made available to your pipeline during execution, from 1 to 1000.\n"},"network":{"type":"string","description":"Network to which VMs will be assigned. If empty or unspecified, the service will use the network \"default\".\n"},"numWorkers":{"type":"integer","description":"The initial number of Compute Engine instances for the job.\n"},"serviceAccountEmail":{"type":"string","description":"The email address of the service account to run the job as.\n"},"subnetwork":{"type":"string","description":"Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form \"https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK\" or \"regions/REGION/subnetworks/SUBNETWORK\". If the subnetwork is located in a Shared VPC network, you must use the complete URL.\n"},"tempLocation":{"type":"string","description":"The Cloud Storage path to use for temporary files. Must be a valid Cloud Storage URL, beginning with gs://.\n"},"workerRegion":{"type":"string","description":"The Compute Engine region (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1\". Mutually exclusive with workerZone. If neither workerRegion nor workerZone is specified, default to the control plane's region.\n"},"workerZone":{"type":"string","description":"The Compute Engine zone (https://cloud.google.com/compute/docs/regions-zones/regions-zones) in which worker processing should occur, e.g. \"us-west1-a\". Mutually exclusive with workerRegion. If neither workerRegion nor workerZone is specified, a zone in the control plane's region is chosen based on available capacity. If both workerZone and zone are set, workerZone takes precedence.\n"},"zone":{"type":"string","description":"The Compute Engine availability zone for launching worker instances to run your pipeline. In the future, workerZone will take precedence.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["network"]}}},"gcp:dataform/RepositoryGitRemoteSettings:RepositoryGitRemoteSettings":{"properties":{"authenticationTokenSecretVersion":{"type":"string","description":"The name of the Secret Manager secret version to use as an authentication token for Git operations. This secret is for assigning with HTTPS only(for SSH use \u003cspan pulumi-lang-nodejs=\"`sshAuthenticationConfig`\" pulumi-lang-dotnet=\"`SshAuthenticationConfig`\" pulumi-lang-go=\"`sshAuthenticationConfig`\" pulumi-lang-python=\"`ssh_authentication_config`\" pulumi-lang-yaml=\"`sshAuthenticationConfig`\" pulumi-lang-java=\"`sshAuthenticationConfig`\"\u003e`ssh_authentication_config`\u003c/span\u003e). Must be in the format projects/*/secrets/*/versions/*.\n"},"defaultBranch":{"type":"string","description":"The Git remote's default branch name.\n"},"sshAuthenticationConfig":{"$ref":"#/types/gcp:dataform/RepositoryGitRemoteSettingsSshAuthenticationConfig:RepositoryGitRemoteSettingsSshAuthenticationConfig","description":"Authentication fields for remote uris using SSH protocol.\nStructure is documented below.\n"},"tokenStatus":{"type":"string","description":"(Output)\nIndicates the status of the Git access token. https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories#TokenStatus\n"},"url":{"type":"string","description":"The Git remote's URL.\n"}},"type":"object","required":["defaultBranch","url"],"language":{"nodejs":{"requiredOutputs":["defaultBranch","tokenStatus","url"]}}},"gcp:dataform/RepositoryGitRemoteSettingsSshAuthenticationConfig:RepositoryGitRemoteSettingsSshAuthenticationConfig":{"properties":{"hostPublicKey":{"type":"string","description":"Content of a public SSH key to verify an identity of a remote Git host.\n"},"userPrivateKeySecretVersion":{"type":"string","description":"The name of the Secret Manager secret version to use as a ssh private key for Git operations. Must be in the format projects/*/secrets/*/versions/*.\n"}},"type":"object","required":["hostPublicKey","userPrivateKeySecretVersion"]},"gcp:dataform/RepositoryIamBindingCondition:RepositoryIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataform/RepositoryIamMemberCondition:RepositoryIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataform/RepositoryReleaseConfigCodeCompilationConfig:RepositoryReleaseConfigCodeCompilationConfig":{"properties":{"assertionSchema":{"type":"string","description":"Optional. The default schema (BigQuery dataset ID) for assertions.\n"},"databaseSuffix":{"type":"string","description":"Optional. The suffix that should be appended to all database (Google Cloud project ID) names.\n"},"defaultDatabase":{"type":"string","description":"Optional. The default database (Google Cloud project ID).\n"},"defaultLocation":{"type":"string","description":"Optional. The default BigQuery location to use. Defaults to \"US\".\nSee the BigQuery docs for a full list of locations: https://cloud.google.com/bigquery/docs/locations.\n"},"defaultSchema":{"type":"string","description":"Optional. The default schema (BigQuery dataset ID).\n"},"schemaSuffix":{"type":"string","description":"Optional. The suffix that should be appended to all schema (BigQuery dataset ID) names.\n"},"tablePrefix":{"type":"string","description":"Optional. The prefix that should be prepended to all table names.\n"},"vars":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. User-defined variables that are made available to project code during compilation.\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n"}},"type":"object"},"gcp:dataform/RepositoryReleaseConfigRecentScheduledReleaseRecord:RepositoryReleaseConfigRecentScheduledReleaseRecord":{"properties":{"compilationResult":{"type":"string","description":"(Output)\nThe name of the created compilation result, if one was successfully created. Must be in the format projects/*/locations/*/repositories/*/compilationResults/*.\n"},"errorStatuses":{"type":"array","items":{"$ref":"#/types/gcp:dataform/RepositoryReleaseConfigRecentScheduledReleaseRecordErrorStatus:RepositoryReleaseConfigRecentScheduledReleaseRecordErrorStatus"},"description":"(Output)\nThe error status encountered upon this attempt to create the compilation result, if the attempt was unsuccessful.\nStructure is documented below.\n"},"releaseTime":{"type":"string","description":"(Output)\nThe timestamp of this release attempt.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["compilationResult","errorStatuses","releaseTime"]}}},"gcp:dataform/RepositoryReleaseConfigRecentScheduledReleaseRecordErrorStatus:RepositoryReleaseConfigRecentScheduledReleaseRecordErrorStatus":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of google.rpc.Code.\n"},"message":{"type":"string","description":"(Output)\nA developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"gcp:dataform/RepositoryWorkflowConfigInvocationConfig:RepositoryWorkflowConfigInvocationConfig":{"properties":{"fullyRefreshIncrementalTablesEnabled":{"type":"boolean","description":"Optional. When set to true, any incremental tables will be fully refreshed.\n"},"includedTags":{"type":"array","items":{"type":"string"},"description":"Optional. The set of tags to include.\n"},"includedTargets":{"type":"array","items":{"$ref":"#/types/gcp:dataform/RepositoryWorkflowConfigInvocationConfigIncludedTarget:RepositoryWorkflowConfigInvocationConfigIncludedTarget"},"description":"Optional. The set of action identifiers to include.\nStructure is documented below.\n"},"serviceAccount":{"type":"string","description":"Optional. The service account to run workflow invocations under.\n"},"transitiveDependenciesIncluded":{"type":"boolean","description":"Optional. When set to true, transitive dependencies of included actions will be executed.\n"},"transitiveDependentsIncluded":{"type":"boolean","description":"Optional. When set to true, transitive dependents of included actions will be executed.\n"}},"type":"object"},"gcp:dataform/RepositoryWorkflowConfigInvocationConfigIncludedTarget:RepositoryWorkflowConfigInvocationConfigIncludedTarget":{"properties":{"database":{"type":"string","description":"The action's database (Google Cloud project ID).\n"},"name":{"type":"string","description":"The action's name, within database and schema.\n"},"schema":{"type":"string","description":"The action's schema (BigQuery dataset ID), within database.\n"}},"type":"object"},"gcp:dataform/RepositoryWorkflowConfigRecentScheduledExecutionRecord:RepositoryWorkflowConfigRecentScheduledExecutionRecord":{"properties":{"errorStatuses":{"type":"array","items":{"$ref":"#/types/gcp:dataform/RepositoryWorkflowConfigRecentScheduledExecutionRecordErrorStatus:RepositoryWorkflowConfigRecentScheduledExecutionRecordErrorStatus"},"description":"(Output)\nThe error status encountered upon this attempt to create the workflow invocation, if the attempt was unsuccessful.\nStructure is documented below.\n"},"executionTime":{"type":"string","description":"(Output)\nThe timestamp of this workflow attempt.\n"},"workflowInvocation":{"type":"string","description":"(Output)\nThe name of the created workflow invocation, if one was successfully created. In the format projects/*/locations/*/repositories/*/workflowInvocations/*.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["errorStatuses","executionTime","workflowInvocation"]}}},"gcp:dataform/RepositoryWorkflowConfigRecentScheduledExecutionRecordErrorStatus:RepositoryWorkflowConfigRecentScheduledExecutionRecordErrorStatus":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of google.rpc.Code.\n"},"message":{"type":"string","description":"(Output)\nA developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"gcp:dataform/RepositoryWorkspaceCompilationOverrides:RepositoryWorkspaceCompilationOverrides":{"properties":{"defaultDatabase":{"type":"string","description":"The default database (Google Cloud project ID).\n"},"schemaSuffix":{"type":"string","description":"The suffix that should be appended to all schema (BigQuery dataset ID) names.\n"},"tablePrefix":{"type":"string","description":"The prefix that should be prepended to all table names.\n"}},"type":"object"},"gcp:datafusion/InstanceAccelerator:InstanceAccelerator":{"properties":{"acceleratorType":{"type":"string","description":"The type of an accelator for a CDF instance.\nPossible values are: `CDC`, `HEALTHCARE`, `CCAI_INSIGHTS`.\n"},"state":{"type":"string","description":"The type of an accelator for a CDF instance.\nPossible values are: `ENABLED`, `DISABLED`.\n"}},"type":"object","required":["acceleratorType","state"]},"gcp:datafusion/InstanceCryptoKeyConfig:InstanceCryptoKeyConfig":{"properties":{"keyReference":{"type":"string","description":"The name of the key which is used to encrypt/decrypt customer data. For key in Cloud KMS, the key should be in the format of projects/*/locations/*/keyRings/*/cryptoKeys/*.\n","willReplaceOnChanges":true}},"type":"object","required":["keyReference"]},"gcp:datafusion/InstanceEventPublishConfig:InstanceEventPublishConfig":{"properties":{"enabled":{"type":"boolean","description":"Option to enable Event Publishing.\n"},"topic":{"type":"string","description":"The resource name of the Pub/Sub topic. Format: projects/{projectId}/topics/{topic_id}\n","willReplaceOnChanges":true}},"type":"object","required":["enabled","topic"]},"gcp:datafusion/InstanceNetworkConfig:InstanceNetworkConfig":{"properties":{"connectionType":{"type":"string","description":"Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and\nthe corresponding tenant project from a predefined list of available connection modes.\nIf this field is unspecified for a private instance, VPC peering is used.\nPossible values are: `VPC_PEERING`, `PRIVATE_SERVICE_CONNECT_INTERFACES`.\n","willReplaceOnChanges":true},"ipAllocation":{"type":"string","description":"The IP range in CIDR notation to use for the managed Data Fusion instance\nnodes. This range must not overlap with any other ranges used in the Data Fusion instance network.\n","willReplaceOnChanges":true},"network":{"type":"string","description":"Name of the network in the project with which the tenant project\nwill be peered for executing pipelines. In case of shared VPC where the network resides in another host\nproject the network should specified in the form of projects/{host-project-id}/global/networks/{network}\n","willReplaceOnChanges":true},"privateServiceConnectConfig":{"$ref":"#/types/gcp:datafusion/InstanceNetworkConfigPrivateServiceConnectConfig:InstanceNetworkConfigPrivateServiceConnectConfig","description":"Optional. Configuration for Private Service Connect.\nThis is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:datafusion/InstanceNetworkConfigPrivateServiceConnectConfig:InstanceNetworkConfigPrivateServiceConnectConfig":{"properties":{"effectiveUnreachableCidrBlock":{"type":"string","description":"(Output)\nOutput only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.\nThe size of this block is /25. The format of this field is governed by RFC 4632.\n"},"networkAttachment":{"type":"string","description":"Optional. The reference to the network attachment used to establish private connectivity.\nIt will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.\nThis is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES.\n","willReplaceOnChanges":true},"unreachableCidrBlock":{"type":"string","description":"Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC.\nThe size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment.\nThis range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses.\nIf this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["effectiveUnreachableCidrBlock"]}}},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfig:PreventionDeidentifyTemplateDeidentifyConfig":{"properties":{"imageTransformations":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformations:PreventionDeidentifyTemplateDeidentifyConfigImageTransformations","description":"Treat the dataset as an image and redact.\nStructure is documented below.\n"},"infoTypeTransformations":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformations:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformations","description":"Treat the dataset as free-form text and apply the same free text transformation everywhere\nStructure is documented below.\n"},"recordTransformations":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformations:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformations","description":"Treat the dataset as structured. Transformations can be applied to specific locations within structured datasets, such as transforming a column within a table.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformations:PreventionDeidentifyTemplateDeidentifyConfigImageTransformations":{"properties":{"transforms":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransform:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransform"},"description":"For determination of how redaction of images should occur.\nStructure is documented below.\n"}},"type":"object","required":["transforms"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransform:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransform":{"properties":{"allInfoTypes":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllInfoTypes:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllInfoTypes","description":"Apply transformation to all findings not specified in other ImageTransformation's selectedInfoTypes.\n"},"allText":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllText:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllText","description":"Apply transformation to all text that doesn't match an infoType.\n"},"redactionColor":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformRedactionColor:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformRedactionColor","description":"The color to use when redacting content from an image. If not specified, the default is black.\nStructure is documented below.\n"},"selectedInfoTypes":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypes:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypes","description":"Apply transformation to the selected infoTypes.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllInfoTypes:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllInfoTypes":{"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllText:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformAllText":{"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformRedactionColor:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformRedactionColor":{"properties":{"blue":{"type":"number","description":"The amount of blue in the color as a value in the interval [0, 1].\n"},"green":{"type":"number","description":"The amount of green in the color as a value in the interval [0, 1].\n"},"red":{"type":"number","description":"The amount of red in the color as a value in the interval [0, 1].\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypes:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypes":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoType:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoType"},"description":"InfoTypes to apply the transformation to. Leaving this empty will apply the transformation to apply to\nall findings that correspond to infoTypes that were requested in InspectConfig.\nStructure is documented below.\n"}},"type":"object","required":["infoTypes"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoType:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigImageTransformationsTransformSelectedInfoTypesInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformations:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformations":{"properties":{"transformations":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformation:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformation"},"description":"Transformation for each infoType. Cannot specify more than one for a given infoType.\nStructure is documented below.\n"}},"type":"object","required":["transformations"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformation:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformation":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoType:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoType"},"description":"InfoTypes to apply the transformation to. Leaving this empty will apply the transformation to apply to\nall findings that correspond to infoTypes that were requested in InspectConfig.\nStructure is documented below.\n"},"primitiveTransformation":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformation:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformation","description":"Apply the transformation to the entire field.\nThe \u003cspan pulumi-lang-nodejs=\"`primitiveTransformation`\" pulumi-lang-dotnet=\"`PrimitiveTransformation`\" pulumi-lang-go=\"`primitiveTransformation`\" pulumi-lang-python=\"`primitive_transformation`\" pulumi-lang-yaml=\"`primitiveTransformation`\" pulumi-lang-java=\"`primitiveTransformation`\"\u003e`primitive_transformation`\u003c/span\u003e block must only contain one argument, corresponding to the type of transformation.\nStructure is documented below.\n"}},"type":"object","required":["primitiveTransformation"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoType:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformation:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformation":{"properties":{"bucketingConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig","description":"Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 \u003e LOW 31-65 \u003e MEDIUM 66-100 \u003e HIGH\nThis can be used on data of type: number, long, string, timestamp.\nIf the provided value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing.\nSee https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.\nStructure is documented below.\n"},"characterMaskConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig","description":"Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we'll attempt to preserve the original data's type. (This allows you to take a long like 123 and modify it to a string like **3).\nStructure is documented below.\n"},"cryptoDeterministicConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig","description":"Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC [https://tools.ietf.org/html/rfc5297](https://tools.ietf.org/html/rfc5297).\nStructure is documented below.\n"},"cryptoHashConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig","description":"Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes.\nOutputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).\nCurrently, only string and integer values can be hashed.\nSee https://cloud.google.com/dlp/docs/pseudonymization to learn more.\nStructure is documented below.\n"},"cryptoReplaceFfxFpeConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig","description":"Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `content.reidentify` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See [https://cloud.google.com/dlp/docs/pseudonymization](https://cloud.google.com/dlp/docs/pseudonymization) to learn more.\nNote: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.\nStructure is documented below.\n"},"dateShiftConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig","description":"Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more.\nStructure is documented below.\n"},"fixedSizeBucketingConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig","description":"Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies.\nThe transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10 and\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 20, all values that are within this bucket will be replaced with \"10-20\".\nThis can be used on data of type: double, long.\nIf the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing.\nSee https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.\nStructure is documented below.\n"},"redactConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig","description":"Redact a given value. For example, if used with an InfoTypeTransformation transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the output would be 'My phone number is '.\n"},"replaceConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig","description":"Replace each input value with a given value.\nStructure is documented below.\n"},"replaceDictionaryConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig","description":"Replace with a value randomly drawn (with replacement) from a dictionary.\nStructure is documented below.\n"},"replaceWithInfoTypeConfig":{"type":"boolean","description":"Replace each matching finding with the name of the info type.\n"},"timePartConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig","description":"For use with Date, Timestamp, and TimeOfDay, extract or preserve a portion of the value.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig":{"properties":{"buckets":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket"},"description":"Set of buckets. Ranges must be non-overlapping.\nBucket is represented as a range, along with replacement values.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket":{"properties":{"max":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax","description":"Upper bound of the range, exclusive; type must match min.\nThe \u003cspan pulumi-lang-nodejs=\"`max`\" pulumi-lang-dotnet=\"`Max`\" pulumi-lang-go=\"`max`\" pulumi-lang-python=\"`max`\" pulumi-lang-yaml=\"`max`\" pulumi-lang-java=\"`max`\"\u003e`max`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`bucketingConfig`\" pulumi-lang-dotnet=\"`BucketingConfig`\" pulumi-lang-go=\"`bucketingConfig`\" pulumi-lang-python=\"`bucketing_config`\" pulumi-lang-yaml=\"`bucketingConfig`\" pulumi-lang-java=\"`bucketingConfig`\"\u003e`bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"min":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin","description":"Lower bound of the range, inclusive. Type should be the same as max if used.\nThe \u003cspan pulumi-lang-nodejs=\"`min`\" pulumi-lang-dotnet=\"`Min`\" pulumi-lang-go=\"`min`\" pulumi-lang-python=\"`min`\" pulumi-lang-yaml=\"`min`\" pulumi-lang-java=\"`min`\"\u003e`min`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`bucketingConfig`\" pulumi-lang-dotnet=\"`BucketingConfig`\" pulumi-lang-go=\"`bucketingConfig`\" pulumi-lang-python=\"`bucketing_config`\" pulumi-lang-yaml=\"`bucketingConfig`\" pulumi-lang-java=\"`bucketingConfig`\"\u003e`bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"replacementValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue","description":"Replacement value for this bucket.\nThe \u003cspan pulumi-lang-nodejs=\"`replacementValue`\" pulumi-lang-dotnet=\"`ReplacementValue`\" pulumi-lang-go=\"`replacementValue`\" pulumi-lang-python=\"`replacement_value`\" pulumi-lang-yaml=\"`replacementValue`\" pulumi-lang-java=\"`replacementValue`\"\u003e`replacement_value`\u003c/span\u003e block must only contain one argument.\nStructure is documented below.\n"}},"type":"object","required":["replacementValue"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax":{"properties":{"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin":{"properties":{"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue":{"properties":{"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig":{"properties":{"charactersToIgnores":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore"},"description":"Characters to skip when doing de-identification of a value. These will be left alone and skipped.\nStructure is documented below.\n"},"maskingCharacter":{"type":"string","description":"Character to use to mask the sensitive values—for example, * for an alphabetic string such as a name, or 0 for a numeric string\nsuch as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to * for\nstrings, and 0 for digits.\n"},"numberToMask":{"type":"integer","description":"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\nIf\u003cspan pulumi-lang-nodejs=\" numberToMask \" pulumi-lang-dotnet=\" NumberToMask \" pulumi-lang-go=\" numberToMask \" pulumi-lang-python=\" number_to_mask \" pulumi-lang-yaml=\" numberToMask \" pulumi-lang-java=\" numberToMask \"\u003e number_to_mask \u003c/span\u003eis negative, this denotes inverse masking. Cloud DLP masks all but a number of characters. For example, suppose you have the following values:\n"},"reverseOrder":{"type":"boolean","description":"Mask characters in reverse order. For example, if\u003cspan pulumi-lang-nodejs=\" maskingCharacter \" pulumi-lang-dotnet=\" MaskingCharacter \" pulumi-lang-go=\" maskingCharacter \" pulumi-lang-python=\" masking_character \" pulumi-lang-yaml=\" maskingCharacter \" pulumi-lang-java=\" maskingCharacter \"\u003e masking_character \u003c/span\u003eis 0,\u003cspan pulumi-lang-nodejs=\" numberToMask \" pulumi-lang-dotnet=\" NumberToMask \" pulumi-lang-go=\" numberToMask \" pulumi-lang-python=\" number_to_mask \" pulumi-lang-yaml=\" numberToMask \" pulumi-lang-java=\" numberToMask \"\u003e number_to_mask \u003c/span\u003eis 14, and\u003cspan pulumi-lang-nodejs=\" reverseOrder \" pulumi-lang-dotnet=\" ReverseOrder \" pulumi-lang-go=\" reverseOrder \" pulumi-lang-python=\" reverse_order \" pulumi-lang-yaml=\" reverseOrder \" pulumi-lang-java=\" reverseOrder \"\u003e reverse_order \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, then the\ninput string `1234-5678-9012-3456` is masked as `00000000000000-3456`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore":{"properties":{"charactersToSkip":{"type":"string","description":"Characters to not transform when masking. Only one of this or \u003cspan pulumi-lang-nodejs=\"`commonCharactersToIgnore`\" pulumi-lang-dotnet=\"`CommonCharactersToIgnore`\" pulumi-lang-go=\"`commonCharactersToIgnore`\" pulumi-lang-python=\"`common_characters_to_ignore`\" pulumi-lang-yaml=\"`commonCharactersToIgnore`\" pulumi-lang-java=\"`commonCharactersToIgnore`\"\u003e`common_characters_to_ignore`\u003c/span\u003e must be specified.\n"},"commonCharactersToIgnore":{"type":"string","description":"Common characters to not transform when masking. Useful to avoid removing punctuation. Only one of this or \u003cspan pulumi-lang-nodejs=\"`charactersToSkip`\" pulumi-lang-dotnet=\"`CharactersToSkip`\" pulumi-lang-go=\"`charactersToSkip`\" pulumi-lang-python=\"`characters_to_skip`\" pulumi-lang-yaml=\"`charactersToSkip`\" pulumi-lang-java=\"`charactersToSkip`\"\u003e`characters_to_skip`\u003c/span\u003e must be specified.\nPossible values are: `NUMERIC`, `ALPHA_UPPER_CASE`, `ALPHA_LOWER_CASE`, `PUNCTUATION`, `WHITESPACE`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig":{"properties":{"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext","description":"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.\nIf the context is not set, plaintext would be used as is for encryption. If the context is set but:\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\nplaintext would be used as is for encryption.\nNote that case (1) is expected when an InfoTypeTransformation is applied to both structured and unstructured ContentItems.\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey","description":"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\nStructure is documented below.\n"},"surrogateInfoType":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType","description":"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}\nFor example, if the name of custom info type is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\nThis annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.\nNote: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.\nIn order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either\n*   reverse a surrogate that does not correspond to an actual identifier\n*   be unable to parse the surrogate and result in an error\nTherefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional version name for this InfoType.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig":{"properties":{"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey","description":"The key used by the encryption function.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig":{"properties":{"commonAlphabet":{"type":"string","description":"Common alphabets. Only one of this, \u003cspan pulumi-lang-nodejs=\"`customAlphabet`\" pulumi-lang-dotnet=\"`CustomAlphabet`\" pulumi-lang-go=\"`customAlphabet`\" pulumi-lang-python=\"`custom_alphabet`\" pulumi-lang-yaml=\"`customAlphabet`\" pulumi-lang-java=\"`customAlphabet`\"\u003e`custom_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`radix`\" pulumi-lang-dotnet=\"`Radix`\" pulumi-lang-go=\"`radix`\" pulumi-lang-python=\"`radix`\" pulumi-lang-yaml=\"`radix`\" pulumi-lang-java=\"`radix`\"\u003e`radix`\u003c/span\u003e must be specified.\nPossible values are: `NUMERIC`, `HEXADECIMAL`, `UPPER_CASE_ALPHA_NUMERIC`, `ALPHA_NUMERIC`.\n"},"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext","description":"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used.\nIf the context is set but:\n1.  there is no record present when transforming a given value or\n2.  the field is not present when transforming a given value,\na default tweak will be used.\nNote that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string.\nThe tweak is constructed as a sequence of bytes in big endian byte order such that:\n*   a 64 bit integer is encoded followed by a single byte of value 1\n*   a string is encoded in UTF-8 format followed by a single byte of value 2\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey","description":"The key used by the encryption algorithm.\nStructure is documented below.\n"},"customAlphabet":{"type":"string","description":"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range \\[2, 95\\]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is:\n``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\u0026*()_-+={[}]|:;\"'\u003c,\u003e.?/``. Only one of this, \u003cspan pulumi-lang-nodejs=\"`commonAlphabet`\" pulumi-lang-dotnet=\"`CommonAlphabet`\" pulumi-lang-go=\"`commonAlphabet`\" pulumi-lang-python=\"`common_alphabet`\" pulumi-lang-yaml=\"`commonAlphabet`\" pulumi-lang-java=\"`commonAlphabet`\"\u003e`common_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`radix`\" pulumi-lang-dotnet=\"`Radix`\" pulumi-lang-go=\"`radix`\" pulumi-lang-python=\"`radix`\" pulumi-lang-yaml=\"`radix`\" pulumi-lang-java=\"`radix`\"\u003e`radix`\u003c/span\u003e must be specified.\n"},"radix":{"type":"integer","description":"The native way to select the alphabet. Must be in the range \\[2, 95\\]. Only one of this, \u003cspan pulumi-lang-nodejs=\"`customAlphabet`\" pulumi-lang-dotnet=\"`CustomAlphabet`\" pulumi-lang-go=\"`customAlphabet`\" pulumi-lang-python=\"`custom_alphabet`\" pulumi-lang-yaml=\"`customAlphabet`\" pulumi-lang-java=\"`customAlphabet`\"\u003e`custom_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`commonAlphabet`\" pulumi-lang-dotnet=\"`CommonAlphabet`\" pulumi-lang-go=\"`commonAlphabet`\" pulumi-lang-python=\"`common_alphabet`\" pulumi-lang-yaml=\"`commonAlphabet`\" pulumi-lang-java=\"`commonAlphabet`\"\u003e`common_alphabet`\u003c/span\u003e must be specified.\n"},"surrogateInfoType":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType","description":"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info\\_type\\_name(surrogate\\_character\\_count):surrogate\nFor example, if the name of custom infoType is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\nThis annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text.\nIn order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional version name for this InfoType.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig":{"properties":{"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext","description":"Points to the field that contains the context, for example, an entity id.\nIf set, must also set cryptoKey. If set, shift will be consistent for the given context.\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey","description":"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and cryptoKey. If set, must also set context. Can only be applied to table items.\nStructure is documented below.\n"},"lowerBoundDays":{"type":"integer","description":"For example, -5 means shift date to at most 5 days back in the past.\n"},"upperBoundDays":{"type":"integer","description":"Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction.\nFor example, 3 means shift date to at most 3 days into the future.\n"}},"type":"object","required":["lowerBoundDays","upperBoundDays"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig":{"properties":{"bucketSize":{"type":"number","description":"Size of each bucket (except for minimum and maximum buckets).\nSo if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10,\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 89, and bucketSize = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.\nPrecision up to 2 decimals works.\n"},"lowerBound":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound","description":"Lower bound value of buckets.\nAll values less than\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003eare grouped together into a single bucket; for example if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10, then all values less than 10 are replaced with the value \"-10\".\nThe \u003cspan pulumi-lang-nodejs=\"`lowerBound`\" pulumi-lang-dotnet=\"`LowerBound`\" pulumi-lang-go=\"`lowerBound`\" pulumi-lang-python=\"`lower_bound`\" pulumi-lang-yaml=\"`lowerBound`\" pulumi-lang-java=\"`lowerBound`\"\u003e`lower_bound`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`fixedSizeBucketingConfig`\" pulumi-lang-dotnet=\"`FixedSizeBucketingConfig`\" pulumi-lang-go=\"`fixedSizeBucketingConfig`\" pulumi-lang-python=\"`fixed_size_bucketing_config`\" pulumi-lang-yaml=\"`fixedSizeBucketingConfig`\" pulumi-lang-java=\"`fixedSizeBucketingConfig`\"\u003e`fixed_size_bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"upperBound":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound","description":"Upper bound value of buckets.\nAll values greater than\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003eare grouped together into a single bucket; for example if\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 89, then all values greater than 89 are replaced with the value \"89+\".\nThe \u003cspan pulumi-lang-nodejs=\"`upperBound`\" pulumi-lang-dotnet=\"`UpperBound`\" pulumi-lang-go=\"`upperBound`\" pulumi-lang-python=\"`upper_bound`\" pulumi-lang-yaml=\"`upperBound`\" pulumi-lang-java=\"`upperBound`\"\u003e`upper_bound`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`fixedSizeBucketingConfig`\" pulumi-lang-dotnet=\"`FixedSizeBucketingConfig`\" pulumi-lang-go=\"`fixedSizeBucketingConfig`\" pulumi-lang-python=\"`fixed_size_bucketing_config`\" pulumi-lang-yaml=\"`fixedSizeBucketingConfig`\" pulumi-lang-java=\"`fixedSizeBucketingConfig`\"\u003e`fixed_size_bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"}},"type":"object","required":["bucketSize","lowerBound","upperBound"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound":{"properties":{"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound":{"properties":{"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig":{"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig":{"properties":{"newValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue","description":"Replace each input value with a given value.\nThe \u003cspan pulumi-lang-nodejs=\"`newValue`\" pulumi-lang-dotnet=\"`NewValue`\" pulumi-lang-go=\"`newValue`\" pulumi-lang-python=\"`new_value`\" pulumi-lang-yaml=\"`newValue`\" pulumi-lang-java=\"`newValue`\"\u003e`new_value`\u003c/span\u003e block must only contain one argument. For example when replacing the contents of a string-type field, only \u003cspan pulumi-lang-nodejs=\"`stringValue`\" pulumi-lang-dotnet=\"`StringValue`\" pulumi-lang-go=\"`stringValue`\" pulumi-lang-python=\"`string_value`\" pulumi-lang-yaml=\"`stringValue`\" pulumi-lang-java=\"`stringValue`\"\u003e`string_value`\u003c/span\u003e should be set.\nStructure is documented below.\n"}},"type":"object","required":["newValue"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"integer","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig":{"properties":{"wordList":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList","description":"A list of words to select from for random replacement. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries.\nStructure is documented below.\n"}},"type":"object","required":["wordList"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one phrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig:PreventionDeidentifyTemplateDeidentifyConfigInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig":{"properties":{"partToExtract":{"type":"string","description":"The part of the time to keep.\nPossible values are: `YEAR`, `MONTH`, `DAY_OF_MONTH`, `DAY_OF_WEEK`, `WEEK_OF_YEAR`, `HOUR_OF_DAY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformations:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformations":{"properties":{"fieldTransformations":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformation"},"description":"Transform the record by applying various field transformations.\nStructure is documented below.\n"},"recordSuppressions":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppression:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppression"},"description":"Configuration defining which records get suppressed entirely. Records that match any suppression rule are omitted from the output.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformation":{"properties":{"condition":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationCondition","description":"Only apply the transformation if the condition evaluates to true for the given RecordCondition. The conditions are allowed to reference fields that are not used in the actual transformation.\nExample Use Cases:\n- Apply a different bucket transformation to an age column if the zip code column for the same record is within a specific range.\n- Redact a field if the date of birth field is greater than 85.\nStructure is documented below.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationField:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationField"},"description":"Input field(s) to apply the transformation to. When you have columns that reference their position within a list, omit the index from the FieldId.\nFieldId name matching ignores the index. For example, instead of \"contact.nums[0].type\", use \"contact.nums.type\".\nStructure is documented below.\n"},"infoTypeTransformations":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformations:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformations","description":"Treat the contents of the field as free text, and selectively transform content that matches an InfoType.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`primitiveTransformation`\" pulumi-lang-dotnet=\"`PrimitiveTransformation`\" pulumi-lang-go=\"`primitiveTransformation`\" pulumi-lang-python=\"`primitive_transformation`\" pulumi-lang-yaml=\"`primitiveTransformation`\" pulumi-lang-java=\"`primitiveTransformation`\"\u003e`primitive_transformation`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`infoTypeTransformations`\" pulumi-lang-dotnet=\"`InfoTypeTransformations`\" pulumi-lang-go=\"`infoTypeTransformations`\" pulumi-lang-python=\"`info_type_transformations`\" pulumi-lang-yaml=\"`infoTypeTransformations`\" pulumi-lang-java=\"`infoTypeTransformations`\"\u003e`info_type_transformations`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"primitiveTransformation":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformation","description":"Apply the transformation to the entire field.\nThe \u003cspan pulumi-lang-nodejs=\"`primitiveTransformation`\" pulumi-lang-dotnet=\"`PrimitiveTransformation`\" pulumi-lang-go=\"`primitiveTransformation`\" pulumi-lang-python=\"`primitive_transformation`\" pulumi-lang-yaml=\"`primitiveTransformation`\" pulumi-lang-java=\"`primitiveTransformation`\"\u003e`primitive_transformation`\u003c/span\u003e block must only contain one argument, corresponding to the type of transformation.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`primitiveTransformation`\" pulumi-lang-dotnet=\"`PrimitiveTransformation`\" pulumi-lang-go=\"`primitiveTransformation`\" pulumi-lang-python=\"`primitive_transformation`\" pulumi-lang-yaml=\"`primitiveTransformation`\" pulumi-lang-java=\"`primitiveTransformation`\"\u003e`primitive_transformation`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`infoTypeTransformations`\" pulumi-lang-dotnet=\"`InfoTypeTransformations`\" pulumi-lang-go=\"`infoTypeTransformations`\" pulumi-lang-python=\"`info_type_transformations`\" pulumi-lang-yaml=\"`infoTypeTransformations`\" pulumi-lang-java=\"`infoTypeTransformations`\"\u003e`info_type_transformations`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object","required":["fields"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationCondition":{"properties":{"expressions":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressions","description":"An expression, consisting of an operator and conditions.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressions":{"properties":{"conditions":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditions","description":"Conditions to apply to the expression.\nStructure is documented below.\n"},"logicalOperator":{"type":"string","description":"The operator to apply to the result of conditions. Default and currently only supported value is AND.\nDefault value is `AND`.\nPossible values are: `AND`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditions":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsCondition"},"description":"A collection of conditions.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsCondition":{"properties":{"field":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionField:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionField","description":"Field within the record this condition is evaluated against.\nStructure is documented below.\n"},"operator":{"type":"string","description":"Operator used to compare the field or infoType to the value.\nPossible values are: `EQUAL_TO`, `NOT_EQUAL_TO`, `GREATER_THAN`, `LESS_THAN`, `GREATER_THAN_OR_EQUALS`, `LESS_THAN_OR_EQUALS`, `EXISTS`.\n"},"value":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValue","description":"Value to compare against. [Mandatory, except for EXISTS tests.]\nStructure is documented below.\n"}},"type":"object","required":["field","operator"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionField:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionField":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValue":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationConditionExpressionsConditionsConditionValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationField:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationField":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformations:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformations":{"properties":{"transformations":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformation"},"description":"Transformation for each infoType. Cannot specify more than one for a given infoType.\nStructure is documented below.\n"}},"type":"object","required":["transformations"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformation":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoType"},"description":"InfoTypes to apply the transformation to. Leaving this empty will apply the transformation to apply to\nall findings that correspond to infoTypes that were requested in InspectConfig.\nStructure is documented below.\n"},"primitiveTransformation":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformation","description":"Apply the transformation to the entire field.\nThe \u003cspan pulumi-lang-nodejs=\"`primitiveTransformation`\" pulumi-lang-dotnet=\"`PrimitiveTransformation`\" pulumi-lang-go=\"`primitiveTransformation`\" pulumi-lang-python=\"`primitive_transformation`\" pulumi-lang-yaml=\"`primitiveTransformation`\" pulumi-lang-java=\"`primitiveTransformation`\"\u003e`primitive_transformation`\u003c/span\u003e block must only contain one argument, corresponding to the type of transformation.\nStructure is documented below.\n"}},"type":"object","required":["primitiveTransformation"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformation":{"properties":{"bucketingConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig","description":"Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 \u003e LOW 31-65 \u003e MEDIUM 66-100 \u003e HIGH\nThis can be used on data of type: number, long, string, timestamp.\nIf the provided value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing.\nSee https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.\nStructure is documented below.\n"},"characterMaskConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig","description":"Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we'll attempt to preserve the original data's type. (This allows you to take a long like 123 and modify it to a string like **3).\nStructure is documented below.\n"},"cryptoDeterministicConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig","description":"Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC [https://tools.ietf.org/html/rfc5297](https://tools.ietf.org/html/rfc5297).\nStructure is documented below.\n"},"cryptoHashConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig","description":"Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes.\nOutputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).\nCurrently, only string and integer values can be hashed.\nSee https://cloud.google.com/dlp/docs/pseudonymization to learn more.\nStructure is documented below.\n"},"cryptoReplaceFfxFpeConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig","description":"Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `content.reidentify` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See [https://cloud.google.com/dlp/docs/pseudonymization](https://cloud.google.com/dlp/docs/pseudonymization) to learn more.\nNote: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.\nStructure is documented below.\n"},"dateShiftConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig","description":"Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more.\nStructure is documented below.\n"},"fixedSizeBucketingConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig","description":"Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies.\nThe transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10 and\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 20, all values that are within this bucket will be replaced with \"10-20\".\nThis can be used on data of type: double, long.\nIf the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing.\nSee https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.\nStructure is documented below.\n"},"redactConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig","description":"Redact a given value. For example, if used with an InfoTypeTransformation transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the output would be 'My phone number is '.\n"},"replaceConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig","description":"Replace each input value with a given value.\nStructure is documented below.\n"},"replaceDictionaryConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig","description":"Replace with a value randomly drawn (with replacement) from a dictionary.\nStructure is documented below.\n"},"replaceWithInfoTypeConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceWithInfoTypeConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceWithInfoTypeConfig","description":"Replace each matching finding with the name of the info type.\n"},"timePartConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig","description":"For use with Date, Timestamp, and TimeOfDay, extract or preserve a portion of the value.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfig":{"properties":{"buckets":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket"},"description":"Set of buckets. Ranges must be non-overlapping.\nBucket is represented as a range, along with replacement values.\nStructure is documented below.\n"}},"type":"object","required":["buckets"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucket":{"properties":{"max":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax","description":"Upper bound of the range, exclusive; type must match min.\nThe \u003cspan pulumi-lang-nodejs=\"`max`\" pulumi-lang-dotnet=\"`Max`\" pulumi-lang-go=\"`max`\" pulumi-lang-python=\"`max`\" pulumi-lang-yaml=\"`max`\" pulumi-lang-java=\"`max`\"\u003e`max`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`bucketingConfig`\" pulumi-lang-dotnet=\"`BucketingConfig`\" pulumi-lang-go=\"`bucketingConfig`\" pulumi-lang-python=\"`bucketing_config`\" pulumi-lang-yaml=\"`bucketingConfig`\" pulumi-lang-java=\"`bucketingConfig`\"\u003e`bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"min":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin","description":"Lower bound of the range, inclusive. Type should be the same as max if used.\nThe \u003cspan pulumi-lang-nodejs=\"`min`\" pulumi-lang-dotnet=\"`Min`\" pulumi-lang-go=\"`min`\" pulumi-lang-python=\"`min`\" pulumi-lang-yaml=\"`min`\" pulumi-lang-java=\"`min`\"\u003e`min`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`bucketingConfig`\" pulumi-lang-dotnet=\"`BucketingConfig`\" pulumi-lang-go=\"`bucketingConfig`\" pulumi-lang-python=\"`bucketing_config`\" pulumi-lang-yaml=\"`bucketingConfig`\" pulumi-lang-java=\"`bucketingConfig`\"\u003e`bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"replacementValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue","description":"Replacement value for this bucket.\nThe \u003cspan pulumi-lang-nodejs=\"`replacementValue`\" pulumi-lang-dotnet=\"`ReplacementValue`\" pulumi-lang-go=\"`replacementValue`\" pulumi-lang-python=\"`replacement_value`\" pulumi-lang-yaml=\"`replacementValue`\" pulumi-lang-java=\"`replacementValue`\"\u003e`replacement_value`\u003c/span\u003e block must only contain one argument.\nStructure is documented below.\n"}},"type":"object","required":["replacementValue"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMax":{"properties":{"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMin":{"properties":{"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue":{"properties":{"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfig":{"properties":{"charactersToIgnores":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore"},"description":"Characters to skip when doing de-identification of a value. These will be left alone and skipped.\nStructure is documented below.\n"},"maskingCharacter":{"type":"string","description":"Character to use to mask the sensitive values—for example, * for an alphabetic string such as a name, or 0 for a numeric string\nsuch as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to * for\nstrings, and 0 for digits.\n"},"numberToMask":{"type":"integer","description":"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\nIf\u003cspan pulumi-lang-nodejs=\" numberToMask \" pulumi-lang-dotnet=\" NumberToMask \" pulumi-lang-go=\" numberToMask \" pulumi-lang-python=\" number_to_mask \" pulumi-lang-yaml=\" numberToMask \" pulumi-lang-java=\" numberToMask \"\u003e number_to_mask \u003c/span\u003eis negative, this denotes inverse masking. Cloud DLP masks all but a number of characters. For example, suppose you have the following values:\n"},"reverseOrder":{"type":"boolean","description":"Mask characters in reverse order. For example, if\u003cspan pulumi-lang-nodejs=\" maskingCharacter \" pulumi-lang-dotnet=\" MaskingCharacter \" pulumi-lang-go=\" maskingCharacter \" pulumi-lang-python=\" masking_character \" pulumi-lang-yaml=\" maskingCharacter \" pulumi-lang-java=\" maskingCharacter \"\u003e masking_character \u003c/span\u003eis 0,\u003cspan pulumi-lang-nodejs=\" numberToMask \" pulumi-lang-dotnet=\" NumberToMask \" pulumi-lang-go=\" numberToMask \" pulumi-lang-python=\" number_to_mask \" pulumi-lang-yaml=\" numberToMask \" pulumi-lang-java=\" numberToMask \"\u003e number_to_mask \u003c/span\u003eis 14, and\u003cspan pulumi-lang-nodejs=\" reverseOrder \" pulumi-lang-dotnet=\" ReverseOrder \" pulumi-lang-go=\" reverseOrder \" pulumi-lang-python=\" reverse_order \" pulumi-lang-yaml=\" reverseOrder \" pulumi-lang-java=\" reverseOrder \"\u003e reverse_order \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, then the\ninput string `1234-5678-9012-3456` is masked as `00000000000000-3456`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore":{"properties":{"charactersToSkip":{"type":"string","description":"Characters to not transform when masking. Only one of this or \u003cspan pulumi-lang-nodejs=\"`commonCharactersToIgnore`\" pulumi-lang-dotnet=\"`CommonCharactersToIgnore`\" pulumi-lang-go=\"`commonCharactersToIgnore`\" pulumi-lang-python=\"`common_characters_to_ignore`\" pulumi-lang-yaml=\"`commonCharactersToIgnore`\" pulumi-lang-java=\"`commonCharactersToIgnore`\"\u003e`common_characters_to_ignore`\u003c/span\u003e must be specified.\n"},"commonCharactersToIgnore":{"type":"string","description":"Common characters to not transform when masking. Useful to avoid removing punctuation. Only one of this or \u003cspan pulumi-lang-nodejs=\"`charactersToSkip`\" pulumi-lang-dotnet=\"`CharactersToSkip`\" pulumi-lang-go=\"`charactersToSkip`\" pulumi-lang-python=\"`characters_to_skip`\" pulumi-lang-yaml=\"`charactersToSkip`\" pulumi-lang-java=\"`charactersToSkip`\"\u003e`characters_to_skip`\u003c/span\u003e must be specified.\nPossible values are: `NUMERIC`, `ALPHA_UPPER_CASE`, `ALPHA_LOWER_CASE`, `PUNCTUATION`, `WHITESPACE`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfig":{"properties":{"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext","description":"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.\nIf the context is not set, plaintext would be used as is for encryption. If the context is set but:\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\nplaintext would be used as is for encryption.\nNote that case (1) is expected when an InfoTypeTransformation is applied to both structured and unstructured ContentItems.\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey","description":"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\nStructure is documented below.\n"},"surrogateInfoType":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType","description":"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}\nFor example, if the name of custom info type is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\nThis annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.\nNote: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.\nIn order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either\n*   reverse a surrogate that does not correspond to an actual identifier\n*   be unable to parse the surrogate and result in an error\nTherefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE.\nStructure is documented below.\n"}},"type":"object","required":["cryptoKey","surrogateInfoType"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfig":{"properties":{"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey","description":"The key used by the encryption function.\nStructure is documented below.\n"}},"type":"object","required":["cryptoKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig":{"properties":{"commonAlphabet":{"type":"string","description":"Common alphabets. Only one of this, \u003cspan pulumi-lang-nodejs=\"`customAlphabet`\" pulumi-lang-dotnet=\"`CustomAlphabet`\" pulumi-lang-go=\"`customAlphabet`\" pulumi-lang-python=\"`custom_alphabet`\" pulumi-lang-yaml=\"`customAlphabet`\" pulumi-lang-java=\"`customAlphabet`\"\u003e`custom_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`radix`\" pulumi-lang-dotnet=\"`Radix`\" pulumi-lang-go=\"`radix`\" pulumi-lang-python=\"`radix`\" pulumi-lang-yaml=\"`radix`\" pulumi-lang-java=\"`radix`\"\u003e`radix`\u003c/span\u003e must be specified.\nPossible values are: `NUMERIC`, `HEXADECIMAL`, `UPPER_CASE_ALPHA_NUMERIC`, `ALPHA_NUMERIC`.\n"},"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext","description":"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used.\nIf the context is set but:\n1.  there is no record present when transforming a given value or\n2.  the field is not present when transforming a given value,\na default tweak will be used.\nNote that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string.\nThe tweak is constructed as a sequence of bytes in big endian byte order such that:\n*   a 64 bit integer is encoded followed by a single byte of value 1\n*   a string is encoded in UTF-8 format followed by a single byte of value 2\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey","description":"The key used by the encryption algorithm.\nStructure is documented below.\n"},"customAlphabet":{"type":"string","description":"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range \\[2, 95\\]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is:\n``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\u0026*()_-+={[}]|:;\"'\u003c,\u003e.?/``. Only one of this, \u003cspan pulumi-lang-nodejs=\"`commonAlphabet`\" pulumi-lang-dotnet=\"`CommonAlphabet`\" pulumi-lang-go=\"`commonAlphabet`\" pulumi-lang-python=\"`common_alphabet`\" pulumi-lang-yaml=\"`commonAlphabet`\" pulumi-lang-java=\"`commonAlphabet`\"\u003e`common_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`radix`\" pulumi-lang-dotnet=\"`Radix`\" pulumi-lang-go=\"`radix`\" pulumi-lang-python=\"`radix`\" pulumi-lang-yaml=\"`radix`\" pulumi-lang-java=\"`radix`\"\u003e`radix`\u003c/span\u003e must be specified.\n"},"radix":{"type":"integer","description":"The native way to select the alphabet. Must be in the range \\[2, 95\\]. Only one of this, \u003cspan pulumi-lang-nodejs=\"`customAlphabet`\" pulumi-lang-dotnet=\"`CustomAlphabet`\" pulumi-lang-go=\"`customAlphabet`\" pulumi-lang-python=\"`custom_alphabet`\" pulumi-lang-yaml=\"`customAlphabet`\" pulumi-lang-java=\"`customAlphabet`\"\u003e`custom_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`commonAlphabet`\" pulumi-lang-dotnet=\"`CommonAlphabet`\" pulumi-lang-go=\"`commonAlphabet`\" pulumi-lang-python=\"`common_alphabet`\" pulumi-lang-yaml=\"`commonAlphabet`\" pulumi-lang-java=\"`commonAlphabet`\"\u003e`common_alphabet`\u003c/span\u003e must be specified.\n"},"surrogateInfoType":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType","description":"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info\\_type\\_name(surrogate\\_character\\_count):surrogate\nFor example, if the name of custom infoType is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\nThis annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text.\nIn order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE\nStructure is documented below.\n"}},"type":"object","required":["cryptoKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfig":{"properties":{"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext","description":"Points to the field that contains the context, for example, an entity id.\nIf set, must also set cryptoKey. If set, shift will be consistent for the given context.\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey","description":"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and cryptoKey. If set, must also set context. Can only be applied to table items.\nStructure is documented below.\n"},"lowerBoundDays":{"type":"integer","description":"For example, -5 means shift date to at most 5 days back in the past.\n"},"upperBoundDays":{"type":"integer","description":"Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction.\nFor example, 3 means shift date to at most 3 days into the future.\n"}},"type":"object","required":["lowerBoundDays","upperBoundDays"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfig":{"properties":{"bucketSize":{"type":"number","description":"Size of each bucket (except for minimum and maximum buckets).\nSo if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10,\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 89, and bucketSize = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.\nPrecision up to 2 decimals works.\n"},"lowerBound":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound","description":"Lower bound value of buckets.\nAll values less than\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003eare grouped together into a single bucket; for example if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10, then all values less than 10 are replaced with the value \"-10\".\nThe \u003cspan pulumi-lang-nodejs=\"`lowerBound`\" pulumi-lang-dotnet=\"`LowerBound`\" pulumi-lang-go=\"`lowerBound`\" pulumi-lang-python=\"`lower_bound`\" pulumi-lang-yaml=\"`lowerBound`\" pulumi-lang-java=\"`lowerBound`\"\u003e`lower_bound`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`fixedSizeBucketingConfig`\" pulumi-lang-dotnet=\"`FixedSizeBucketingConfig`\" pulumi-lang-go=\"`fixedSizeBucketingConfig`\" pulumi-lang-python=\"`fixed_size_bucketing_config`\" pulumi-lang-yaml=\"`fixedSizeBucketingConfig`\" pulumi-lang-java=\"`fixedSizeBucketingConfig`\"\u003e`fixed_size_bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"upperBound":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound","description":"Upper bound value of buckets.\nAll values greater than\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003eare grouped together into a single bucket; for example if\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 89, then all values greater than 89 are replaced with the value \"89+\".\nThe \u003cspan pulumi-lang-nodejs=\"`upperBound`\" pulumi-lang-dotnet=\"`UpperBound`\" pulumi-lang-go=\"`upperBound`\" pulumi-lang-python=\"`upper_bound`\" pulumi-lang-yaml=\"`upperBound`\" pulumi-lang-java=\"`upperBound`\"\u003e`upper_bound`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`fixedSizeBucketingConfig`\" pulumi-lang-dotnet=\"`FixedSizeBucketingConfig`\" pulumi-lang-go=\"`fixedSizeBucketingConfig`\" pulumi-lang-python=\"`fixed_size_bucketing_config`\" pulumi-lang-yaml=\"`fixedSizeBucketingConfig`\" pulumi-lang-java=\"`fixedSizeBucketingConfig`\"\u003e`fixed_size_bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"}},"type":"object","required":["bucketSize","lowerBound","upperBound"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound":{"properties":{"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound":{"properties":{"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationRedactConfig":{"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfig":{"properties":{"newValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue","description":"Replace each input value with a given value.\nThe \u003cspan pulumi-lang-nodejs=\"`newValue`\" pulumi-lang-dotnet=\"`NewValue`\" pulumi-lang-go=\"`newValue`\" pulumi-lang-python=\"`new_value`\" pulumi-lang-yaml=\"`newValue`\" pulumi-lang-java=\"`newValue`\"\u003e`new_value`\u003c/span\u003e block must only contain one argument. For example when replacing the contents of a string-type field, only \u003cspan pulumi-lang-nodejs=\"`stringValue`\" pulumi-lang-dotnet=\"`StringValue`\" pulumi-lang-go=\"`stringValue`\" pulumi-lang-python=\"`string_value`\" pulumi-lang-yaml=\"`stringValue`\" pulumi-lang-java=\"`stringValue`\"\u003e`string_value`\u003c/span\u003e should be set.\nStructure is documented below.\n"}},"type":"object","required":["newValue"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValue":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfig":{"properties":{"wordList":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList","description":"A list of words to select from for random replacement. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries.\nStructure is documented below.\n"}},"type":"object","required":["wordList"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceDictionaryConfigWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one phrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceWithInfoTypeConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationReplaceWithInfoTypeConfig":{"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationInfoTypeTransformationsTransformationPrimitiveTransformationTimePartConfig":{"properties":{"partToExtract":{"type":"string","description":"The part of the time to keep.\nPossible values are: `YEAR`, `MONTH`, `DAY_OF_MONTH`, `DAY_OF_WEEK`, `WEEK_OF_YEAR`, `HOUR_OF_DAY`.\n"}},"type":"object","required":["partToExtract"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformation:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformation":{"properties":{"bucketingConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfig","description":"Generalization function that buckets values based on ranges. The ranges and replacement values are dynamically provided by the user for custom behavior, such as 1-30 \u003e LOW 31-65 \u003e MEDIUM 66-100 \u003e HIGH\nThis can be used on data of type: number, long, string, timestamp.\nIf the provided value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing.\nSee https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.\nStructure is documented below.\n"},"characterMaskConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfig","description":"Partially mask a string by replacing a given number of characters with a fixed character. Masking can start from the beginning or end of the string. This can be used on data of any type (numbers, longs, and so on) and when de-identifying structured data we'll attempt to preserve the original data's type. (This allows you to take a long like 123 and modify it to a string like **3).\nStructure is documented below.\n"},"cryptoDeterministicConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfig","description":"Pseudonymization method that generates deterministic encryption for the given input. Outputs a base64 encoded representation of the encrypted output. Uses AES-SIV based on the RFC [https://tools.ietf.org/html/rfc5297](https://tools.ietf.org/html/rfc5297).\nStructure is documented below.\n"},"cryptoHashConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfig","description":"Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. The key size must be either 32 or 64 bytes.\nOutputs a base64 encoded representation of the hashed output (for example, L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=).\nCurrently, only string and integer values can be hashed.\nSee https://cloud.google.com/dlp/docs/pseudonymization to learn more.\nStructure is documented below.\n"},"cryptoReplaceFfxFpeConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig","description":"Replaces an identifier with a surrogate using Format Preserving Encryption (FPE) with the FFX mode of operation; however when used in the `content.reidentify` API method, it serves the opposite function by reversing the surrogate back into the original identifier. The identifier must be encoded as ASCII. For a given crypto key and context, the same identifier will be replaced with the same surrogate. Identifiers must be at least two characters long. In the case that the identifier is the empty string, it will be skipped. See [https://cloud.google.com/dlp/docs/pseudonymization](https://cloud.google.com/dlp/docs/pseudonymization) to learn more.\nNote: We recommend using CryptoDeterministicConfig for all use cases which do not require preserving the input alphabet space and size, plus warrant referential integrity.\nStructure is documented below.\n"},"dateShiftConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfig","description":"Shifts dates by random number of days, with option to be consistent for the same context. See https://cloud.google.com/dlp/docs/concepts-date-shifting to learn more.\nStructure is documented below.\n"},"fixedSizeBucketingConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfig","description":"Buckets values based on fixed size ranges. The Bucketing transformation can provide all of this functionality, but requires more configuration. This message is provided as a convenience to the user for simple bucketing strategies.\nThe transformed value will be a hyphenated string of {lower_bound}-{upper_bound}. For example, if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10 and\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 20, all values that are within this bucket will be replaced with \"10-20\".\nThis can be used on data of type: double, long.\nIf the bound Value type differs from the type of data being transformed, we will first attempt converting the type of the data to be transformed to match the type of the bound before comparing.\nSee https://cloud.google.com/dlp/docs/concepts-bucketing to learn more.\nStructure is documented below.\n"},"redactConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationRedactConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationRedactConfig","description":"Redact a given value. For example, if used with an InfoTypeTransformation transforming PHONE_NUMBER, and input 'My phone number is 206-555-0123', the output would be 'My phone number is '.\n"},"replaceConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfig","description":"Replace each input value with a given value.\nStructure is documented below.\n"},"replaceDictionaryConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfig","description":"Replace with a value randomly drawn (with replacement) from a dictionary.\nStructure is documented below.\n"},"timePartConfig":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationTimePartConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationTimePartConfig","description":"For use with Date, Timestamp, and TimeOfDay, extract or preserve a portion of the value.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfig":{"properties":{"buckets":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucket:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucket"},"description":"Set of buckets. Ranges must be non-overlapping.\nBucket is represented as a range, along with replacement values.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucket:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucket":{"properties":{"max":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMax:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMax","description":"Upper bound of the range, exclusive; type must match min.\nThe \u003cspan pulumi-lang-nodejs=\"`max`\" pulumi-lang-dotnet=\"`Max`\" pulumi-lang-go=\"`max`\" pulumi-lang-python=\"`max`\" pulumi-lang-yaml=\"`max`\" pulumi-lang-java=\"`max`\"\u003e`max`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`bucketingConfig`\" pulumi-lang-dotnet=\"`BucketingConfig`\" pulumi-lang-go=\"`bucketingConfig`\" pulumi-lang-python=\"`bucketing_config`\" pulumi-lang-yaml=\"`bucketingConfig`\" pulumi-lang-java=\"`bucketingConfig`\"\u003e`bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"min":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMin:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMin","description":"Lower bound of the range, inclusive. Type should be the same as max if used.\nThe \u003cspan pulumi-lang-nodejs=\"`min`\" pulumi-lang-dotnet=\"`Min`\" pulumi-lang-go=\"`min`\" pulumi-lang-python=\"`min`\" pulumi-lang-yaml=\"`min`\" pulumi-lang-java=\"`min`\"\u003e`min`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`bucketingConfig`\" pulumi-lang-dotnet=\"`BucketingConfig`\" pulumi-lang-go=\"`bucketingConfig`\" pulumi-lang-python=\"`bucketing_config`\" pulumi-lang-yaml=\"`bucketingConfig`\" pulumi-lang-java=\"`bucketingConfig`\"\u003e`bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"replacementValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue","description":"Replacement value for this bucket.\nThe \u003cspan pulumi-lang-nodejs=\"`replacementValue`\" pulumi-lang-dotnet=\"`ReplacementValue`\" pulumi-lang-go=\"`replacementValue`\" pulumi-lang-python=\"`replacement_value`\" pulumi-lang-yaml=\"`replacementValue`\" pulumi-lang-java=\"`replacementValue`\"\u003e`replacement_value`\u003c/span\u003e block must only contain one argument.\nStructure is documented below.\n"}},"type":"object","required":["replacementValue"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMax:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMax":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMaxTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMin:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMin":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketMinTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValue":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationBucketingConfigBucketReplacementValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfig":{"properties":{"charactersToIgnores":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore"},"description":"Characters to skip when doing de-identification of a value. These will be left alone and skipped.\nStructure is documented below.\n"},"maskingCharacter":{"type":"string","description":"Character to use to mask the sensitive values—for example, * for an alphabetic string such as a name, or 0 for a numeric string\nsuch as ZIP code or credit card number. This string must have a length of 1. If not supplied, this value defaults to * for\nstrings, and 0 for digits.\n"},"numberToMask":{"type":"integer","description":"Number of characters to mask. If not set, all matching chars will be masked. Skipped characters do not count towards this tally.\nIf\u003cspan pulumi-lang-nodejs=\" numberToMask \" pulumi-lang-dotnet=\" NumberToMask \" pulumi-lang-go=\" numberToMask \" pulumi-lang-python=\" number_to_mask \" pulumi-lang-yaml=\" numberToMask \" pulumi-lang-java=\" numberToMask \"\u003e number_to_mask \u003c/span\u003eis negative, this denotes inverse masking. Cloud DLP masks all but a number of characters. For example, suppose you have the following values:\n"},"reverseOrder":{"type":"boolean","description":"Mask characters in reverse order. For example, if\u003cspan pulumi-lang-nodejs=\" maskingCharacter \" pulumi-lang-dotnet=\" MaskingCharacter \" pulumi-lang-go=\" maskingCharacter \" pulumi-lang-python=\" masking_character \" pulumi-lang-yaml=\" maskingCharacter \" pulumi-lang-java=\" maskingCharacter \"\u003e masking_character \u003c/span\u003eis 0,\u003cspan pulumi-lang-nodejs=\" numberToMask \" pulumi-lang-dotnet=\" NumberToMask \" pulumi-lang-go=\" numberToMask \" pulumi-lang-python=\" number_to_mask \" pulumi-lang-yaml=\" numberToMask \" pulumi-lang-java=\" numberToMask \"\u003e number_to_mask \u003c/span\u003eis 14, and\u003cspan pulumi-lang-nodejs=\" reverseOrder \" pulumi-lang-dotnet=\" ReverseOrder \" pulumi-lang-go=\" reverseOrder \" pulumi-lang-python=\" reverse_order \" pulumi-lang-yaml=\" reverseOrder \" pulumi-lang-java=\" reverseOrder \"\u003e reverse_order \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, then the\ninput string `1234-5678-9012-3456` is masked as `00000000000000-3456`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCharacterMaskConfigCharactersToIgnore":{"properties":{"charactersToSkip":{"type":"string","description":"Characters to not transform when masking. Only one of this or \u003cspan pulumi-lang-nodejs=\"`commonCharactersToIgnore`\" pulumi-lang-dotnet=\"`CommonCharactersToIgnore`\" pulumi-lang-go=\"`commonCharactersToIgnore`\" pulumi-lang-python=\"`common_characters_to_ignore`\" pulumi-lang-yaml=\"`commonCharactersToIgnore`\" pulumi-lang-java=\"`commonCharactersToIgnore`\"\u003e`common_characters_to_ignore`\u003c/span\u003e must be specified.\n"},"commonCharactersToIgnore":{"type":"string","description":"Common characters to not transform when masking. Useful to avoid removing punctuation. Only one of this or \u003cspan pulumi-lang-nodejs=\"`charactersToSkip`\" pulumi-lang-dotnet=\"`CharactersToSkip`\" pulumi-lang-go=\"`charactersToSkip`\" pulumi-lang-python=\"`characters_to_skip`\" pulumi-lang-yaml=\"`charactersToSkip`\" pulumi-lang-java=\"`charactersToSkip`\"\u003e`characters_to_skip`\u003c/span\u003e must be specified.\nPossible values are: `NUMERIC`, `ALPHA_UPPER_CASE`, `ALPHA_LOWER_CASE`, `PUNCTUATION`, `WHITESPACE`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfig":{"properties":{"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigContext","description":"A context may be used for higher security and maintaining referential integrity such that the same identifier in two different contexts will be given a distinct surrogate. The context is appended to plaintext value being encrypted. On decryption the provided context is validated against the value used during encryption. If a context was provided during encryption, same context must be provided during decryption as well.\nIf the context is not set, plaintext would be used as is for encryption. If the context is set but:\n1. there is no record present when transforming a given value or\n2. the field is not present when transforming a given value,\nplaintext would be used as is for encryption.\nNote that case (1) is expected when an InfoTypeTransformation is applied to both structured and unstructured ContentItems.\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey","description":"The key used by the encryption function. For deterministic encryption using AES-SIV, the provided key is internally expanded to 64 bytes prior to use.\nStructure is documented below.\n"},"surrogateInfoType":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType","description":"The custom info type to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom info type followed by the number of characters comprising the surrogate. The following scheme defines the format: {info type name}({surrogate character count}):{surrogate}\nFor example, if the name of custom info type is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\nThis annotation identifies the surrogate when inspecting content using the custom info type 'Surrogate'. This facilitates reversal of the surrogate when it occurs in free text.\nNote: For record transformations where the entire cell in a table is being transformed, surrogates are not mandatory. Surrogates are used to denote the location of the token and are necessary for re-identification in free form text.\nIn order for inspection to work properly, the name of this info type must not occur naturally anywhere in your data; otherwise, inspection may either\n*   reverse a surrogate that does not correspond to an actual identifier\n*   be unable to parse the surrogate and result in an error\nTherefore, choose your custom info type name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional version name for this InfoType.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoDeterministicConfigSurrogateInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfig":{"properties":{"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKey","description":"The key used by the encryption function.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoHashConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfig":{"properties":{"commonAlphabet":{"type":"string","description":"Common alphabets. Only one of this, \u003cspan pulumi-lang-nodejs=\"`customAlphabet`\" pulumi-lang-dotnet=\"`CustomAlphabet`\" pulumi-lang-go=\"`customAlphabet`\" pulumi-lang-python=\"`custom_alphabet`\" pulumi-lang-yaml=\"`customAlphabet`\" pulumi-lang-java=\"`customAlphabet`\"\u003e`custom_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`radix`\" pulumi-lang-dotnet=\"`Radix`\" pulumi-lang-go=\"`radix`\" pulumi-lang-python=\"`radix`\" pulumi-lang-yaml=\"`radix`\" pulumi-lang-java=\"`radix`\"\u003e`radix`\u003c/span\u003e must be specified.\nPossible values are: `NUMERIC`, `HEXADECIMAL`, `UPPER_CASE_ALPHA_NUMERIC`, `ALPHA_NUMERIC`.\n"},"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext","description":"The 'tweak', a context may be used for higher security since the same identifier in two different contexts won't be given the same surrogate. If the context is not set, a default tweak will be used.\nIf the context is set but:\n1.  there is no record present when transforming a given value or\n2.  the field is not present when transforming a given value,\na default tweak will be used.\nNote that case (1) is expected when an `InfoTypeTransformation` is applied to both structured and non-structured `ContentItem`s. Currently, the referenced field may be of value type integer or string.\nThe tweak is constructed as a sequence of bytes in big endian byte order such that:\n*   a 64 bit integer is encoded followed by a single byte of value 1\n*   a string is encoded in UTF-8 format followed by a single byte of value 2\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey","description":"The key used by the encryption algorithm.\nStructure is documented below.\n"},"customAlphabet":{"type":"string","description":"This is supported by mapping these to the alphanumeric characters that the FFX mode natively supports. This happens before/after encryption/decryption. Each character listed must appear only once. Number of characters must be in the range \\[2, 95\\]. This must be encoded as ASCII. The order of characters does not matter. The full list of allowed characters is:\n``0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ~`!@#$%^\u0026*()_-+={[}]|:;\"'\u003c,\u003e.?/``. Only one of this, \u003cspan pulumi-lang-nodejs=\"`commonAlphabet`\" pulumi-lang-dotnet=\"`CommonAlphabet`\" pulumi-lang-go=\"`commonAlphabet`\" pulumi-lang-python=\"`common_alphabet`\" pulumi-lang-yaml=\"`commonAlphabet`\" pulumi-lang-java=\"`commonAlphabet`\"\u003e`common_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`radix`\" pulumi-lang-dotnet=\"`Radix`\" pulumi-lang-go=\"`radix`\" pulumi-lang-python=\"`radix`\" pulumi-lang-yaml=\"`radix`\" pulumi-lang-java=\"`radix`\"\u003e`radix`\u003c/span\u003e must be specified.\n"},"radix":{"type":"integer","description":"The native way to select the alphabet. Must be in the range \\[2, 95\\]. Only one of this, \u003cspan pulumi-lang-nodejs=\"`customAlphabet`\" pulumi-lang-dotnet=\"`CustomAlphabet`\" pulumi-lang-go=\"`customAlphabet`\" pulumi-lang-python=\"`custom_alphabet`\" pulumi-lang-yaml=\"`customAlphabet`\" pulumi-lang-java=\"`customAlphabet`\"\u003e`custom_alphabet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`commonAlphabet`\" pulumi-lang-dotnet=\"`CommonAlphabet`\" pulumi-lang-go=\"`commonAlphabet`\" pulumi-lang-python=\"`common_alphabet`\" pulumi-lang-yaml=\"`commonAlphabet`\" pulumi-lang-java=\"`commonAlphabet`\"\u003e`common_alphabet`\u003c/span\u003e must be specified.\n"},"surrogateInfoType":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType","description":"The custom infoType to annotate the surrogate with. This annotation will be applied to the surrogate by prefixing it with the name of the custom infoType followed by the number of characters comprising the surrogate. The following scheme defines the format: info\\_type\\_name(surrogate\\_character\\_count):surrogate\nFor example, if the name of custom infoType is 'MY\\_TOKEN\\_INFO\\_TYPE' and the surrogate is 'abc', the full replacement value will be: 'MY\\_TOKEN\\_INFO\\_TYPE(3):abc'\nThis annotation identifies the surrogate when inspecting content using the custom infoType [`SurrogateType`](https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#surrogatetype). This facilitates reversal of the surrogate when it occurs in free text.\nIn order for inspection to work properly, the name of this infoType must not occur naturally anywhere in your data; otherwise, inspection may find a surrogate that does not correspond to an actual identifier. Therefore, choose your custom infoType name carefully after considering what your data looks like. One way to select a name that has a high chance of yielding reliable detection is to include one or more unicode characters that are highly improbable to exist in your data. For example, assuming your data is entered from a regular ASCII keyboard, the symbol with the hex code point 29DD might be used like so: ⧝MY\\_TOKEN\\_TYPE\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed at [https://cloud.google.com/dlp/docs/infotypes-reference](https://cloud.google.com/dlp/docs/infotypes-reference) when specifying a built-in type. When sending Cloud DLP results to Data Catalog, infoType names should conform to the pattern `[A-Za-z0-9$-_]{1,64}`.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional version name for this InfoType.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationCryptoReplaceFfxFpeConfigSurrogateInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfig":{"properties":{"context":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigContext","description":"Points to the field that contains the context, for example, an entity id.\nIf set, must also set cryptoKey. If set, shift will be consistent for the given context.\nStructure is documented below.\n"},"cryptoKey":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKey","description":"Causes the shift to be computed based on this key and the context. This results in the same shift for the same context and cryptoKey. If set, must also set context. Can only be applied to table items.\nStructure is documented below.\n"},"lowerBoundDays":{"type":"integer","description":"For example, -5 means shift date to at most 5 days back in the past.\n"},"upperBoundDays":{"type":"integer","description":"Range of shift in days. Actual shift will be selected at random within this range (inclusive ends). Negative means shift to earlier in time. Must not be more than 365250 days (1000 years) each direction.\nFor example, 3 means shift date to at most 3 days into the future.\n"}},"type":"object","required":["lowerBoundDays","upperBoundDays"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigContext:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigContext":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKey:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKey":{"properties":{"kmsWrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped","description":"KMS wrapped key.\nInclude to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. Authorization requires the following IAM permissions when sending a request to perform a crypto transformation using a KMS-wrapped crypto key: dlp.kms.encrypt\nFor more information, see [Creating a wrapped key](https://cloud.google.com/dlp/docs/create-wrapped-key). Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e must be specified.\nNote: When you use Cloud KMS for cryptographic operations, [charges apply](https://cloud.google.com/kms/pricing).\nStructure is documented below.\n"},"transient":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient","description":"Transient crypto key. Use this to have a random data crypto key generated. It will be discarded after the request finishes. Only one of this, \u003cspan pulumi-lang-nodejs=\"`unwrapped`\" pulumi-lang-dotnet=\"`Unwrapped`\" pulumi-lang-go=\"`unwrapped`\" pulumi-lang-python=\"`unwrapped`\" pulumi-lang-yaml=\"`unwrapped`\" pulumi-lang-java=\"`unwrapped`\"\u003e`unwrapped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"},"unwrapped":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped","description":"Unwrapped crypto key. Using raw keys is prone to security risks due to accidentally leaking the key. Choose another type of key if possible. Only one of this, \u003cspan pulumi-lang-nodejs=\"`transient`\" pulumi-lang-dotnet=\"`Transient`\" pulumi-lang-go=\"`transient`\" pulumi-lang-python=\"`transient`\" pulumi-lang-yaml=\"`transient`\" pulumi-lang-java=\"`transient`\"\u003e`transient`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`kmsWrapped`\" pulumi-lang-dotnet=\"`KmsWrapped`\" pulumi-lang-go=\"`kmsWrapped`\" pulumi-lang-python=\"`kms_wrapped`\" pulumi-lang-yaml=\"`kmsWrapped`\" pulumi-lang-java=\"`kmsWrapped`\"\u003e`kms_wrapped`\u003c/span\u003e must be specified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyKmsWrapped":{"properties":{"cryptoKeyName":{"type":"string","description":"The resource name of the KMS CryptoKey to use for unwrapping.\n"},"wrappedKey":{"type":"string","description":"The wrapped data crypto key.\nA base64-encoded string.\n"}},"type":"object","required":["cryptoKeyName","wrappedKey"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyTransient":{"properties":{"name":{"type":"string","description":"Name of the key. This is an arbitrary string used to differentiate different keys. A unique key is generated per name: two separate `TransientCryptoKey` protos share the same generated key if their names are the same. When the data crypto key is generated, this name is not used in any way (repeating the api call will result in a different key being generated).\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationDateShiftConfigCryptoKeyUnwrapped":{"properties":{"key":{"type":"string","description":"A 128/192/256 bit key.\nA base64-encoded string.\n**Note**: This property is sensitive and will not be displayed in the plan.\n"}},"type":"object","required":["key"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfig":{"properties":{"bucketSize":{"type":"number","description":"Size of each bucket (except for minimum and maximum buckets).\nSo if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10,\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 89, and bucketSize = 10, then the following buckets would be used: -10, 10-20, 20-30, 30-40, 40-50, 50-60, 60-70, 70-80, 80-89, 89+.\nPrecision up to 2 decimals works.\n"},"lowerBound":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound","description":"Lower bound value of buckets.\nAll values less than\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003eare grouped together into a single bucket; for example if\u003cspan pulumi-lang-nodejs=\" lowerBound \" pulumi-lang-dotnet=\" LowerBound \" pulumi-lang-go=\" lowerBound \" pulumi-lang-python=\" lower_bound \" pulumi-lang-yaml=\" lowerBound \" pulumi-lang-java=\" lowerBound \"\u003e lower_bound \u003c/span\u003e= 10, then all values less than 10 are replaced with the value \"-10\".\nThe \u003cspan pulumi-lang-nodejs=\"`lowerBound`\" pulumi-lang-dotnet=\"`LowerBound`\" pulumi-lang-go=\"`lowerBound`\" pulumi-lang-python=\"`lower_bound`\" pulumi-lang-yaml=\"`lowerBound`\" pulumi-lang-java=\"`lowerBound`\"\u003e`lower_bound`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`fixedSizeBucketingConfig`\" pulumi-lang-dotnet=\"`FixedSizeBucketingConfig`\" pulumi-lang-go=\"`fixedSizeBucketingConfig`\" pulumi-lang-python=\"`fixed_size_bucketing_config`\" pulumi-lang-yaml=\"`fixedSizeBucketingConfig`\" pulumi-lang-java=\"`fixedSizeBucketingConfig`\"\u003e`fixed_size_bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"},"upperBound":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound","description":"Upper bound value of buckets.\nAll values greater than\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003eare grouped together into a single bucket; for example if\u003cspan pulumi-lang-nodejs=\" upperBound \" pulumi-lang-dotnet=\" UpperBound \" pulumi-lang-go=\" upperBound \" pulumi-lang-python=\" upper_bound \" pulumi-lang-yaml=\" upperBound \" pulumi-lang-java=\" upperBound \"\u003e upper_bound \u003c/span\u003e= 89, then all values greater than 89 are replaced with the value \"89+\".\nThe \u003cspan pulumi-lang-nodejs=\"`upperBound`\" pulumi-lang-dotnet=\"`UpperBound`\" pulumi-lang-go=\"`upperBound`\" pulumi-lang-python=\"`upper_bound`\" pulumi-lang-yaml=\"`upperBound`\" pulumi-lang-java=\"`upperBound`\"\u003e`upper_bound`\u003c/span\u003e block must only contain one argument. See the \u003cspan pulumi-lang-nodejs=\"`fixedSizeBucketingConfig`\" pulumi-lang-dotnet=\"`FixedSizeBucketingConfig`\" pulumi-lang-go=\"`fixedSizeBucketingConfig`\" pulumi-lang-python=\"`fixed_size_bucketing_config`\" pulumi-lang-yaml=\"`fixedSizeBucketingConfig`\" pulumi-lang-java=\"`fixedSizeBucketingConfig`\"\u003e`fixed_size_bucketing_config`\u003c/span\u003e block description for more information about choosing a data type.\nStructure is documented below.\n"}},"type":"object","required":["bucketSize","lowerBound","upperBound"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBound":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigLowerBoundTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBound":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationFixedSizeBucketingConfigUpperBoundTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationRedactConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationRedactConfig":{"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfig":{"properties":{"newValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValue","description":"Replace each input value with a given value.\nThe \u003cspan pulumi-lang-nodejs=\"`newValue`\" pulumi-lang-dotnet=\"`NewValue`\" pulumi-lang-go=\"`newValue`\" pulumi-lang-python=\"`new_value`\" pulumi-lang-yaml=\"`newValue`\" pulumi-lang-java=\"`newValue`\"\u003e`new_value`\u003c/span\u003e block must only contain one argument. For example when replacing the contents of a string-type field, only \u003cspan pulumi-lang-nodejs=\"`stringValue`\" pulumi-lang-dotnet=\"`StringValue`\" pulumi-lang-go=\"`stringValue`\" pulumi-lang-python=\"`string_value`\" pulumi-lang-yaml=\"`stringValue`\" pulumi-lang-java=\"`stringValue`\"\u003e`string_value`\u003c/span\u003e should be set.\nStructure is documented below.\n"}},"type":"object","required":["newValue"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValue":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits.\nExamples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceConfigNewValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfig":{"properties":{"wordList":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfigWordList:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfigWordList","description":"A list of words to select from for random replacement. The [limits](https://cloud.google.com/dlp/limits) page contains details about the size limits of dictionaries.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfigWordList:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationReplaceDictionaryConfigWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one phrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationTimePartConfig:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsFieldTransformationPrimitiveTransformationTimePartConfig":{"properties":{"partToExtract":{"type":"string","description":"The part of the time to keep.\nPossible values are: `YEAR`, `MONTH`, `DAY_OF_MONTH`, `DAY_OF_WEEK`, `WEEK_OF_YEAR`, `HOUR_OF_DAY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppression:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppression":{"properties":{"condition":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionCondition","description":"A condition that when it evaluates to true will result in the record being evaluated to be suppressed from the transformed content.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionCondition":{"properties":{"expressions":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressions","description":"An expression, consisting of an operator and conditions.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressions":{"properties":{"conditions":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditions","description":"Conditions to apply to the expression.\nStructure is documented below.\n"},"logicalOperator":{"type":"string","description":"The operator to apply to the result of conditions. Default and currently only supported value is AND.\nDefault value is `AND`.\nPossible values are: `AND`.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditions:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditions":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsCondition"},"description":"A collection of conditions.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsCondition:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsCondition":{"properties":{"field":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionField:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionField","description":"Field within the record this condition is evaluated against.\nStructure is documented below.\n"},"operator":{"type":"string","description":"Operator used to compare the field or infoType to the value.\nPossible values are: `EQUAL_TO`, `NOT_EQUAL_TO`, `GREATER_THAN`, `LESS_THAN`, `GREATER_THAN_OR_EQUALS`, `LESS_THAN_OR_EQUALS`, `EXISTS`.\n"},"value":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValue","description":"Value to compare against. [Mandatory, except for EXISTS tests.]\nStructure is documented below.\n"}},"type":"object","required":["field","operator"]},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionField:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionField":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValue":{"properties":{"booleanValue":{"type":"boolean","description":"A boolean value.\n"},"dateValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueDateValue","description":"Represents a whole or partial calendar date.\nStructure is documented below.\n"},"dayOfWeekValue":{"type":"string","description":"Represents a day of the week.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"floatValue":{"type":"number","description":"A float value.\n"},"integerValue":{"type":"string","description":"An integer value (int64 format)\n"},"stringValue":{"type":"string","description":"A string value.\n"},"timeValue":{"$ref":"#/types/gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueTimeValue","description":"Represents a time of day.\nStructure is documented below.\n"},"timestampValue":{"type":"string","description":"A timestamp in RFC3339 UTC \"Zulu\" format, with nanosecond resolution and up to nine fractional digits. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueDateValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueDateValue":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:dataloss/PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueTimeValue:PreventionDeidentifyTemplateDeidentifyConfigRecordTransformationsRecordSuppressionConditionExpressionsConditionsConditionValueTimeValue":{"properties":{"hours":{"type":"integer","description":"Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.\n"},"minutes":{"type":"integer","description":"Minutes of hour of day. Must be from 0 to 59.\n"},"nanos":{"type":"integer","description":"Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.\n"},"seconds":{"type":"integer","description":"Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigAction:PreventionDiscoveryConfigAction":{"properties":{"exportData":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionExportData:PreventionDiscoveryConfigActionExportData","description":"Export data profiles into a provided location\nStructure is documented below.\n"},"pubSubNotification":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotification:PreventionDiscoveryConfigActionPubSubNotification","description":"Publish a message into the Pub/Sub topic.\nStructure is documented below.\n"},"publishToDataplexCatalog":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionPublishToDataplexCatalog:PreventionDiscoveryConfigActionPublishToDataplexCatalog","description":"Publish a portion of each profile to Dataplex Universal Catalog with the aspect type Sensitive Data Protection Profile.\n"},"tagResources":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionTagResources:PreventionDiscoveryConfigActionTagResources","description":"Tag the profiled resources with the specified tag values.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionExportData:PreventionDiscoveryConfigActionExportData":{"properties":{"profileTable":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionExportDataProfileTable:PreventionDiscoveryConfigActionExportDataProfileTable","description":"Store all table and column profiles in an existing table or a new table in an existing dataset. Each re-generation will result in a new row in BigQuery\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionExportDataProfileTable:PreventionDiscoveryConfigActionExportDataProfileTable":{"properties":{"datasetId":{"type":"string","description":"Dataset Id of the table\n"},"projectId":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table. If omitted, the project ID is inferred from the API call.\n"},"tableId":{"type":"string","description":"Name of the table\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotification:PreventionDiscoveryConfigActionPubSubNotification":{"properties":{"detailOfMessage":{"type":"string","description":"How much data to include in the pub/sub message.\nPossible values are: `TABLE_PROFILE`, `RESOURCE_NAME`.\n"},"event":{"type":"string","description":"The type of event that triggers a Pub/Sub. At most one PubSubNotification per EventType is permitted.\nPossible values are: `NEW_PROFILE`, `CHANGED_PROFILE`, `SCORE_INCREASED`, `ERROR_CHANGED`.\n"},"pubsubCondition":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotificationPubsubCondition:PreventionDiscoveryConfigActionPubSubNotificationPubsubCondition","description":"Conditions for triggering pubsub\nStructure is documented below.\n"},"topic":{"type":"string","description":"Cloud Pub/Sub topic to send notifications to. Format is projects/{project}/topics/{topic}.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotificationPubsubCondition:PreventionDiscoveryConfigActionPubSubNotificationPubsubCondition":{"properties":{"expressions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressions:PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressions","description":"An expression\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressions:PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressions":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressionsCondition:PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressionsCondition"},"description":"Conditions to apply to the expression\nStructure is documented below.\n"},"logicalOperator":{"type":"string","description":"The operator to apply to the collection of conditions\nPossible values are: `OR`, `AND`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressionsCondition:PreventionDiscoveryConfigActionPubSubNotificationPubsubConditionExpressionsCondition":{"properties":{"minimumRiskScore":{"type":"string","description":"The minimum data risk score that triggers the condition.\nPossible values are: `HIGH`, `MEDIUM_OR_HIGH`.\n"},"minimumSensitivityScore":{"type":"string","description":"The minimum sensitivity level that triggers the condition.\nPossible values are: `HIGH`, `MEDIUM_OR_HIGH`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionPublishToDataplexCatalog:PreventionDiscoveryConfigActionPublishToDataplexCatalog":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionTagResources:PreventionDiscoveryConfigActionTagResources":{"properties":{"lowerDataRiskToLow":{"type":"boolean","description":"Whether applying a tag to a resource should lower the risk of the profile for that resource. For example, in conjunction with an [IAM deny policy](https://cloud.google.com/iam/docs/deny-overview), you can deny all principals a permission if a tag value is present, mitigating the risk of the resource. This also lowers the data risk of resources at the lower levels of the resource hierarchy. For example, reducing the data risk of a table data profile also reduces the data risk of the constituent column data profiles.\n"},"profileGenerationsToTags":{"type":"array","items":{"type":"string"},"description":"The profile generations for which the tag should be attached to resources. If you attach a tag to only new profiles, then if the sensitivity score of a profile subsequently changes, its tag doesn't change. By default, this field includes only new profiles. To include both new and updated profiles for tagging, this field should explicitly include both `PROFILE_GENERATION_NEW` and `PROFILE_GENERATION_UPDATE`.\nEach value may be one of: `PROFILE_GENERATION_NEW`, `PROFILE_GENERATION_UPDATE`.\n"},"tagConditions":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionTagResourcesTagCondition:PreventionDiscoveryConfigActionTagResourcesTagCondition"},"description":"The tags to associate with different conditions.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionTagResourcesTagCondition:PreventionDiscoveryConfigActionTagResourcesTagCondition":{"properties":{"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionTagResourcesTagConditionSensitivityScore:PreventionDiscoveryConfigActionTagResourcesTagConditionSensitivityScore","description":"Conditions attaching the tag to a resource on its profile having this sensitivity score.\nStructure is documented below.\n"},"tag":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigActionTagResourcesTagConditionTag:PreventionDiscoveryConfigActionTagResourcesTagConditionTag","description":"The tag value to attach to resources.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigActionTagResourcesTagConditionSensitivityScore:PreventionDiscoveryConfigActionTagResourcesTagConditionSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`, `SENSITIVITY_UNKNOWN`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionDiscoveryConfigActionTagResourcesTagConditionTag:PreventionDiscoveryConfigActionTagResourcesTagConditionTag":{"properties":{"namespacedValue":{"type":"string","description":"The namespaced name for the tag value to attach to resources. Must be in the format `{parent_id}/{tag_key_short_name}/{short_name}`, for example, \"123456/environment/prod\".\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigError:PreventionDiscoveryConfigError":{"properties":{"details":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigErrorDetails:PreventionDiscoveryConfigErrorDetails","description":"A list of messages that carry the error details.\n"},"timestamp":{"type":"string","description":"The times the error occurred. List includes the oldest timestamp and the last 9 timestamps.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigErrorDetails:PreventionDiscoveryConfigErrorDetails":{"properties":{"code":{"type":"integer","description":"The status code, which should be an enum value of google.rpc.Code.\n"},"details":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"A list of messages that carry the error details.\n"},"message":{"type":"string","description":"A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigOrgConfig:PreventionDiscoveryConfigOrgConfig":{"properties":{"location":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigOrgConfigLocation:PreventionDiscoveryConfigOrgConfigLocation","description":"The data to scan folder org or project\nStructure is documented below.\n"},"projectId":{"type":"string","description":"The project that will run the scan. The DLP service account that exists within this project must have access to all resources that are profiled, and the cloud DLP API must be enabled.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigOrgConfigLocation:PreventionDiscoveryConfigOrgConfigLocation":{"properties":{"folderId":{"type":"string","description":"The ID for the folder within an organization to scan\n"},"organizationId":{"type":"string","description":"The ID of an organization to scan\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigOtherCloudStartingLocation:PreventionDiscoveryConfigOtherCloudStartingLocation":{"properties":{"awsLocation":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigOtherCloudStartingLocationAwsLocation:PreventionDiscoveryConfigOtherCloudStartingLocationAwsLocation","description":"A nested object resource.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigOtherCloudStartingLocationAwsLocation:PreventionDiscoveryConfigOtherCloudStartingLocationAwsLocation":{"properties":{"accountId":{"type":"string","description":"The AWS account ID that this discovery config applies to. Within an organization, you can find the AWS account ID inside an AWS account ARN. Example: arn:\u003cpartition\u003e:organizations::\u003cmanagement-account-id\u003e:account/\u003corganization-id\u003e/\u003caccount-id\u003e\n"},"allAssetInventoryAssets":{"type":"boolean","description":"All AWS assets stored in Asset Inventory that didn't match other AWS discovery configs.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTarget:PreventionDiscoveryConfigTarget":{"properties":{"bigQueryTarget":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTarget:PreventionDiscoveryConfigTargetBigQueryTarget","description":"BigQuery target for Discovery. The first target to match a table will be the one applied.\nStructure is documented below.\n"},"cloudSqlTarget":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTarget:PreventionDiscoveryConfigTargetCloudSqlTarget","description":"Cloud SQL target for Discovery. The first target to match a table will be the one applied.\nStructure is documented below.\n"},"cloudStorageTarget":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTarget:PreventionDiscoveryConfigTargetCloudStorageTarget","description":"Cloud Storage target for Discovery. The first target to match a bucket will be the one applied.\nStructure is documented below.\n"},"otherCloudTarget":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTarget:PreventionDiscoveryConfigTargetOtherCloudTarget","description":"Other clouds target for discovery. The first target to match a resource will be the one applied.\nStructure is documented below.\n"},"secretsTarget":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetSecretsTarget:PreventionDiscoveryConfigTargetSecretsTarget","description":"Discovery target that looks for credentials and secrets stored in cloud resource metadata and reports them as vulnerabilities to Security Command Center. Only one target of this type is allowed.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTarget:PreventionDiscoveryConfigTargetBigQueryTarget":{"properties":{"cadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadence","description":"How often and when to update profiles. New tables that match both the fiter and conditions are scanned as quickly as possible depending on system capacity.\nStructure is documented below.\n"},"conditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetConditions:PreventionDiscoveryConfigTargetBigQueryTargetConditions","description":"In addition to matching the filter, these conditions must be true before a profile is generated\nStructure is documented below.\n"},"disabled":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetDisabled:PreventionDiscoveryConfigTargetBigQueryTargetDisabled","description":"Tables that match this filter will not have profiles created.\n"},"filter":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilter:PreventionDiscoveryConfigTargetBigQueryTargetFilter","description":"Required. The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadence":{"properties":{"inspectTemplateModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadenceInspectTemplateModifiedCadence","description":"Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update.\nStructure is documented below.\n"},"schemaModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadenceSchemaModifiedCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadenceSchemaModifiedCadence","description":"Governs when to update data profiles when a schema is modified\nStructure is documented below.\n"},"tableModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadenceTableModifiedCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadenceTableModifiedCadence","description":"Governs when to update profile when a table is modified.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadenceInspectTemplateModifiedCadence":{"properties":{"frequency":{"type":"string","description":"How frequently data profiles can be updated when the template is modified. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadenceSchemaModifiedCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadenceSchemaModifiedCadence":{"properties":{"frequency":{"type":"string","description":"Frequency to regenerate data profiles when the schema is modified. Defaults to monthly.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"},"types":{"type":"array","items":{"type":"string"},"description":"The types of schema modifications to consider. Defaults to NEW_COLUMNS.\nEach value may be one of: `NEW_COLUMNS`, `REMOVED_COLUMNS`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetCadenceTableModifiedCadence:PreventionDiscoveryConfigTargetBigQueryTargetCadenceTableModifiedCadence":{"properties":{"frequency":{"type":"string","description":"How frequently data profiles can be updated when tables are modified. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"},"types":{"type":"array","items":{"type":"string"},"description":"The type of events to consider when deciding if the table has been modified and should have the profile updated. Defaults to MODIFIED_TIMESTAMP\nEach value may be one of: `TABLE_MODIFIED_TIMESTAMP`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetConditions:PreventionDiscoveryConfigTargetBigQueryTargetConditions":{"properties":{"createdAfter":{"type":"string","description":"File store must have been created after this date. Used to avoid backfilling. A timestamp in RFC3339 UTC \"Zulu\" format with nanosecond resolution and upto nine fractional digits.\n"},"orConditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditions:PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditions","description":"At least one of the conditions must be true for a table to be scanned.\nStructure is documented below.\n"},"typeCollection":{"type":"string","description":"Restrict discovery to categories of table types. Currently view, materialized view, snapshot and non-biglake external tables are supported.\nPossible values are: `BIG_QUERY_COLLECTION_ALL_TYPES`, `BIG_QUERY_COLLECTION_ONLY_SUPPORTED_TYPES`.\n"},"types":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetConditionsTypes:PreventionDiscoveryConfigTargetBigQueryTargetConditionsTypes","description":"Data profiles will only be generated for the database resource types specified in this field. If not specified, defaults to [DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES].\nEach value may be one of: `DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES`, `DATABASE_RESOURCE_TYPE_TABLE`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditions:PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditions":{"properties":{"minAge":{"type":"string","description":"Duration format. The minimum age a table must have before Cloud DLP can profile it. Value greater than 1.\n"},"minRowCount":{"type":"integer","description":"Minimum number of rows that should be present before Cloud DLP profiles as a table.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetConditionsTypes:PreventionDiscoveryConfigTargetBigQueryTargetConditionsTypes":{"properties":{"types":{"type":"array","items":{"type":"string"},"description":"A set of BiqQuery table types\nEach value may be one of: `BIG_QUERY_TABLE_TYPE_TABLE`, `BIG_QUERY_TABLE_TYPE_EXTERNAL_BIG_LAKE`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetDisabled:PreventionDiscoveryConfigTargetBigQueryTargetDisabled":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilter:PreventionDiscoveryConfigTargetBigQueryTargetFilter":{"properties":{"otherTables":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterOtherTables:PreventionDiscoveryConfigTargetBigQueryTargetFilterOtherTables","description":"Catch-all. This should always be the last filter in the list because anything above it will apply first.\n"},"tableReference":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTableReference:PreventionDiscoveryConfigTargetBigQueryTargetFilterTableReference","description":"The table to scan. Discovery configurations including this can only include one DiscoveryTarget (the DiscoveryTarget with this TableReference).\nStructure is documented below.\n"},"tables":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTables:PreventionDiscoveryConfigTargetBigQueryTargetFilterTables","description":"A specific set of tables for this filter to apply to. A table collection must be specified in only one filter per config.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterOtherTables:PreventionDiscoveryConfigTargetBigQueryTargetFilterOtherTables":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTableReference:PreventionDiscoveryConfigTargetBigQueryTargetFilterTableReference":{"properties":{"datasetId":{"type":"string","description":"Dataset ID of the table.\n"},"tableId":{"type":"string","description":"Name of the table.\n"}},"type":"object","required":["datasetId","tableId"]},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTables:PreventionDiscoveryConfigTargetBigQueryTargetFilterTables":{"properties":{"includeRegexes":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes:PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes","description":"A collection of regular expressions to match a BQ table against.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes:PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes":{"properties":{"patterns":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern:PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern"},"description":"The group of regular expression patterns to match against one or more resources. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern:PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern":{"properties":{"datasetIdRegex":{"type":"string","description":"if unset, this property matches all datasets\n"},"projectIdRegex":{"type":"string","description":"For organizations, if unset, will match all projects. Has no effect for data profile configurations created within a project.\n"},"tableIdRegex":{"type":"string","description":"if unset, this property matches all tables\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTarget:PreventionDiscoveryConfigTargetCloudSqlTarget":{"properties":{"conditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetConditions:PreventionDiscoveryConfigTargetCloudSqlTargetConditions","description":"In addition to matching the filter, these conditions must be true before a profile is generated.\nStructure is documented below.\n"},"disabled":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetDisabled:PreventionDiscoveryConfigTargetCloudSqlTargetDisabled","description":"Disable profiling for database resources that match this filter.\n"},"filter":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilter:PreventionDiscoveryConfigTargetCloudSqlTargetFilter","description":"Required. The tables the discovery cadence applies to. The first target with a matching filter will be the one to apply to a table.\nStructure is documented below.\n"},"generationCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence","description":"How often and when to update profiles. New tables that match both the filter and conditions are scanned as quickly as possible depending on system capacity.\nStructure is documented below.\n"}},"type":"object","required":["filter"]},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetConditions:PreventionDiscoveryConfigTargetCloudSqlTargetConditions":{"properties":{"databaseEngines":{"type":"array","items":{"type":"string"},"description":"Database engines that should be profiled. Optional. Defaults to ALL_SUPPORTED_DATABASE_ENGINES if unspecified.\nEach value may be one of: `ALL_SUPPORTED_DATABASE_ENGINES`, `MYSQL`, `POSTGRES`.\n"},"types":{"type":"array","items":{"type":"string"},"description":"Data profiles will only be generated for the database resource types specified in this field. If not specified, defaults to [DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES].\nEach value may be one of: `DATABASE_RESOURCE_TYPE_ALL_SUPPORTED_TYPES`, `DATABASE_RESOURCE_TYPE_TABLE`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetDisabled:PreventionDiscoveryConfigTargetCloudSqlTargetDisabled":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilter:PreventionDiscoveryConfigTargetCloudSqlTargetFilter":{"properties":{"collection":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection","description":"A collection of resources for this filter to apply to.\nStructure is documented below.\n"},"databaseResourceReference":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference:PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference","description":"The database resource to scan. Targets including this can only include one target (the target with this database resource reference).\nStructure is documented below.\n"},"others":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers:PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers","description":"Match discovery resources not covered by any other filter.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection":{"properties":{"includeRegexes":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes","description":"A collection of regular expressions to match a resource against.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes":{"properties":{"patterns":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern"},"description":"The group of regular expression patterns to match against one or more resources. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern":{"properties":{"databaseRegex":{"type":"string","description":"Regex to test the database name against. If empty, all databases match.\n"},"databaseResourceNameRegex":{"type":"string","description":"Regex to test the database resource's name against. An example of a database resource name is a table's name. Other database resource names like view names could be included in the future. If empty, all database resources match.'\n"},"instanceRegex":{"type":"string","description":"Regex to test the instance name against. If empty, all instances match.\n"},"projectIdRegex":{"type":"string","description":"For organizations, if unset, will match all projects. Has no effect for data profile configurations created within a project.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference:PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference":{"properties":{"database":{"type":"string","description":"Required. Name of a database within the instance.\n"},"databaseResource":{"type":"string","description":"Required. Name of a database resource, for example, a table within the database.\n"},"instance":{"type":"string","description":"Required. The instance where this resource is located. For example: Cloud SQL instance ID.\n"},"projectId":{"type":"string","description":"Required. If within a project-level config, then this must match the config's project ID.\n"}},"type":"object","required":["database","databaseResource","instance","projectId"]},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers:PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence":{"properties":{"inspectTemplateModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceInspectTemplateModifiedCadence","description":"Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update.\nStructure is documented below.\n"},"refreshFrequency":{"type":"string","description":"Frequency to update profiles regardless of whether the underlying resource has changes. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"},"schemaModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence","description":"Governs when to update data profiles when a schema is modified\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceInspectTemplateModifiedCadence":{"properties":{"frequency":{"type":"string","description":"How frequently data profiles can be updated when the template is modified. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"}},"type":"object","required":["frequency"]},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence":{"properties":{"frequency":{"type":"string","description":"Frequency to regenerate data profiles when the schema is modified. Defaults to monthly.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"},"types":{"type":"array","items":{"type":"string"},"description":"The types of schema modifications to consider. Defaults to NEW_COLUMNS.\nEach value may be one of: `NEW_COLUMNS`, `REMOVED_COLUMNS`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTarget:PreventionDiscoveryConfigTargetCloudStorageTarget":{"properties":{"conditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetConditions:PreventionDiscoveryConfigTargetCloudStorageTargetConditions","description":"In addition to matching the filter, these conditions must be true before a profile is generated.\nStructure is documented below.\n"},"disabled":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled:PreventionDiscoveryConfigTargetCloudStorageTargetDisabled","description":"Disable profiling for buckets that match this filter.\n"},"filter":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilter:PreventionDiscoveryConfigTargetCloudStorageTargetFilter","description":"The buckets the\u003cspan pulumi-lang-nodejs=\" generationCadence \" pulumi-lang-dotnet=\" GenerationCadence \" pulumi-lang-go=\" generationCadence \" pulumi-lang-python=\" generation_cadence \" pulumi-lang-yaml=\" generationCadence \" pulumi-lang-java=\" generationCadence \"\u003e generation_cadence \u003c/span\u003eapplies to. The first target with a matching filter will be the one to apply to a bucket.\nStructure is documented below.\n"},"generationCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence:PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence","description":"How often and when to update profiles. New buckets that match both the filter and conditions are scanned as quickly as possible depending on system capacity.\nStructure is documented below.\n"}},"type":"object","required":["filter"]},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetConditions:PreventionDiscoveryConfigTargetCloudStorageTargetConditions":{"properties":{"cloudStorageConditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions:PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions","description":"Cloud Storage conditions.\nStructure is documented below.\n"},"createdAfter":{"type":"string","description":"File store must have been created after this date. Used to avoid backfilling. A timestamp in RFC3339 UTC \"Zulu\" format with nanosecond resolution and upto nine fractional digits.\n"},"minAge":{"type":"string","description":"Duration format.  Minimum age a resource must be before a profile can be generated. Value must be 1 hour or greater. Minimum age is not supported for Azure Blob Storage containers.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions:PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions":{"properties":{"includedBucketAttributes":{"type":"array","items":{"type":"string"},"description":"Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset.\nEach value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`.\n"},"includedObjectAttributes":{"type":"array","items":{"type":"string"},"description":"Only objects with the specified attributes will be scanned. If an object has one of the specified attributes but is inside an excluded bucket, it will not be scanned. Defaults to [ALL_SUPPORTED_OBJECTS]. A profile will be created even if no objects match the included_object_attributes.\nEach value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled:PreventionDiscoveryConfigTargetCloudStorageTargetDisabled":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilter:PreventionDiscoveryConfigTargetCloudStorageTargetFilter":{"properties":{"cloudStorageResourceReference":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference","description":"The bucket to scan. Targets including this can only include one target (the target with this bucket). This enables profiling the contents of a single bucket, while the other options allow for easy profiling of many buckets within a project or an organization.\nStructure is documented below.\n"},"collection":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection","description":"A collection of resources for this filter to apply to.\nStructure is documented below.\n"},"others":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers:PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers","description":"Match discovery resources not covered by any other filter.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference":{"properties":{"bucketName":{"type":"string","description":"The bucket to scan.\n"},"projectId":{"type":"string","description":"If within a project-level config, then this must match the config's project id.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection":{"properties":{"includeRegexes":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes","description":"A collection of regular expressions to match a resource against.\nStructure is documented below.\n"},"includeTags":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTags:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTags","description":"For a resource to match the tag filters, the resource must have all of the\nprovided tags attached. Tags refer to Resource Manager tags bound to the\nresource or its ancestors.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes":{"properties":{"patterns":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern"},"description":"The group of regular expression patterns to match against one or more resources. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern":{"properties":{"cloudStorageRegex":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex","description":"Regex for Cloud Storage.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex":{"properties":{"bucketNameRegex":{"type":"string","description":"Regex to test the bucket name against. If empty, all buckets match. Example: \"marketing2021\" or \"(marketing)\\d{4}\" will both match the bucket gs://marketing2021\n"},"projectIdRegex":{"type":"string","description":"For organizations, if unset, will match all projects.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTags:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTags":{"properties":{"tagFilters":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTagsTagFilter:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTagsTagFilter"},"description":"A resource must match ALL of the specified tag filters to be included in the collection.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTagsTagFilter:PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeTagsTagFilter":{"properties":{"namespacedTagKey":{"type":"string","description":"The namespaced name for the tag key. Must be in the format\n`{parent_id}/{tag_key_short_name}`, for example, \"123456/sensitive\" for\nan organization parent, or \"my-project/sensitive\" for a project parent.\n"},"namespacedTagValue":{"type":"string","description":"The namespaced name for the tag value. Must be in the format\n`{parent_id}/{tag_key_short_name}/{short_name}`, for example,\n\"123456/environment/prod\" for an organization parent, or\n\"my-project/environment/prod\" for a project parent.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers:PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence:PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence":{"properties":{"inspectTemplateModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence","description":"Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update.\nStructure is documented below.\n"},"refreshFrequency":{"type":"string","description":"Frequency to update profiles regardless of whether the underlying resource has changes. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence":{"properties":{"frequency":{"type":"string","description":"How frequently data profiles can be updated when the template is modified. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTarget:PreventionDiscoveryConfigTargetOtherCloudTarget":{"properties":{"conditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetConditions:PreventionDiscoveryConfigTargetOtherCloudTargetConditions","description":"In addition to matching the filter, these conditions must be true before a profile is generated.\nStructure is documented below.\n"},"dataSourceType":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetDataSourceType:PreventionDiscoveryConfigTargetOtherCloudTargetDataSourceType","description":"Required. The type of data profiles generated by this discovery target. Supported values are: aws/s3/bucket\nStructure is documented below.\n"},"disabled":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetDisabled:PreventionDiscoveryConfigTargetOtherCloudTargetDisabled","description":"Disable profiling for resources that match this filter.\n"},"filter":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilter:PreventionDiscoveryConfigTargetOtherCloudTargetFilter","description":"Required. The resources that the discovery cadence applies to. The first target with a matching filter will be the one to apply to a resource.\nStructure is documented below.\n"},"generationCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadence:PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadence","description":"How often and when to update profiles. New resources that match both the filter and conditions are scanned as quickly as possible depending on system capacity.\nStructure is documented below.\n"}},"type":"object","required":["filter"]},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetConditions:PreventionDiscoveryConfigTargetOtherCloudTargetConditions":{"properties":{"amazonS3BucketConditions":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetConditionsAmazonS3BucketConditions:PreventionDiscoveryConfigTargetOtherCloudTargetConditionsAmazonS3BucketConditions","description":"Amazon S3 bucket conditions.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedTargetsOtherCloudTargetConditionsAmazonS3BucketConditions\"\" pulumi-lang-dotnet=\"\"NestedTargetsOtherCloudTargetConditionsAmazonS3BucketConditions\"\" pulumi-lang-go=\"\"nestedTargetsOtherCloudTargetConditionsAmazonS3BucketConditions\"\" pulumi-lang-python=\"\"nested_targets_other_cloud_target_conditions_amazon_s3_bucket_conditions\"\" pulumi-lang-yaml=\"\"nestedTargetsOtherCloudTargetConditionsAmazonS3BucketConditions\"\" pulumi-lang-java=\"\"nestedTargetsOtherCloudTargetConditionsAmazonS3BucketConditions\"\"\u003e\"nested_targets_other_cloud_target_conditions_amazon_s3_bucket_conditions\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`amazonS3BucketConditions`\" pulumi-lang-dotnet=\"`AmazonS3BucketConditions`\" pulumi-lang-go=\"`amazonS3BucketConditions`\" pulumi-lang-python=\"`amazon_s3_bucket_conditions`\" pulumi-lang-yaml=\"`amazonS3BucketConditions`\" pulumi-lang-java=\"`amazonS3BucketConditions`\"\u003e`amazon_s3_bucket_conditions`\u003c/span\u003e block supports:\n"},"minAge":{"type":"string","description":"Duration format.  Minimum age a resource must be before a profile can be generated. Value must be 1 hour or greater. Minimum age is not supported for Azure Blob Storage containers.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetConditionsAmazonS3BucketConditions:PreventionDiscoveryConfigTargetOtherCloudTargetConditionsAmazonS3BucketConditions":{"properties":{"bucketTypes":{"type":"array","items":{"type":"string"},"description":"Bucket types that should be profiled. Optional. Defaults to TYPE_ALL_SUPPORTED if unspecified. Possible values: [\"TYPE_ALL_SUPPORTED\", \"TYPE_GENERAL_PURPOSE\"]\n"},"objectStorageClasses":{"type":"array","items":{"type":"string"},"description":"Object classes that should be profiled. Optional. Defaults to ALL_SUPPORTED_CLASSES if unspecified. Possible values: [\"ALL_SUPPORTED_CLASSES\", \"STANDARD\", \"STANDARD_INFREQUENT_ACCESS\", \"GLACIER_INSTANT_RETRIEVAL\", \"INTELLIGENT_TIERING\"]\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetDataSourceType:PreventionDiscoveryConfigTargetOtherCloudTargetDataSourceType":{"properties":{"dataSource":{"type":"string","description":"(Optional)\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetDisabled:PreventionDiscoveryConfigTargetOtherCloudTargetDisabled":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilter:PreventionDiscoveryConfigTargetOtherCloudTargetFilter":{"properties":{"collection":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollection:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollection","description":"A collection of resources for this filter to apply to.\nStructure is documented below.\n"},"others":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterOthers:PreventionDiscoveryConfigTargetOtherCloudTargetFilterOthers","description":"Match discovery resources not covered by any other filter.\n"},"singleResource":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResource:PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResource","description":"The resource to scan. Configs using this filter can only have one target (the target with this single resource reference).\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollection:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollection":{"properties":{"includeRegexes":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexes","description":"A collection of regular expressions to match a resource against.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexes":{"properties":{"patterns":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPattern"},"description":"The group of regular expression patterns to match against one or more resources. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPattern":{"properties":{"amazonS3BucketRegex":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegex:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegex","description":"Regex for Cloud Storage.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedTargetsOtherCloudTargetFilterCollectionIncludeRegexesPatternsAmazonS3BucketRegex\"\" pulumi-lang-dotnet=\"\"NestedTargetsOtherCloudTargetFilterCollectionIncludeRegexesPatternsAmazonS3BucketRegex\"\" pulumi-lang-go=\"\"nestedTargetsOtherCloudTargetFilterCollectionIncludeRegexesPatternsAmazonS3BucketRegex\"\" pulumi-lang-python=\"\"nested_targets_other_cloud_target_filter_collection_include_regexes_patterns_amazon_s3_bucket_regex\"\" pulumi-lang-yaml=\"\"nestedTargetsOtherCloudTargetFilterCollectionIncludeRegexesPatternsAmazonS3BucketRegex\"\" pulumi-lang-java=\"\"nestedTargetsOtherCloudTargetFilterCollectionIncludeRegexesPatternsAmazonS3BucketRegex\"\"\u003e\"nested_targets_other_cloud_target_filter_collection_include_regexes_patterns_amazon_s3_bucket_regex\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`amazonS3BucketRegex`\" pulumi-lang-dotnet=\"`AmazonS3BucketRegex`\" pulumi-lang-go=\"`amazonS3BucketRegex`\" pulumi-lang-python=\"`amazon_s3_bucket_regex`\" pulumi-lang-yaml=\"`amazonS3BucketRegex`\" pulumi-lang-java=\"`amazonS3BucketRegex`\"\u003e`amazon_s3_bucket_regex`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegex:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegex":{"properties":{"awsAccountRegex":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegexAwsAccountRegex:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegexAwsAccountRegex","description":"The AWS account regex\n"},"bucketNameRegex":{"type":"string","description":"Regex to test the bucket name against. If empty, all buckets match.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegexAwsAccountRegex:PreventionDiscoveryConfigTargetOtherCloudTargetFilterCollectionIncludeRegexesPatternAmazonS3BucketRegexAwsAccountRegex":{"properties":{"accountIdRegex":{"type":"string","description":"Regex to test the AWS account ID against. If empty, all accounts match. Example: arn:aws:organizations::123:account/o-b2c3d4/345\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterOthers:PreventionDiscoveryConfigTargetOtherCloudTargetFilterOthers":{"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResource:PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResource":{"properties":{"amazonS3Bucket":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3Bucket:PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3Bucket","description":"Amazon S3 bucket.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedTargetsOtherCloudTargetFilterSingleResourceAmazonS3Bucket\"\" pulumi-lang-dotnet=\"\"NestedTargetsOtherCloudTargetFilterSingleResourceAmazonS3Bucket\"\" pulumi-lang-go=\"\"nestedTargetsOtherCloudTargetFilterSingleResourceAmazonS3Bucket\"\" pulumi-lang-python=\"\"nested_targets_other_cloud_target_filter_single_resource_amazon_s3_bucket\"\" pulumi-lang-yaml=\"\"nestedTargetsOtherCloudTargetFilterSingleResourceAmazonS3Bucket\"\" pulumi-lang-java=\"\"nestedTargetsOtherCloudTargetFilterSingleResourceAmazonS3Bucket\"\"\u003e\"nested_targets_other_cloud_target_filter_single_resource_amazon_s3_bucket\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`amazonS3Bucket`\" pulumi-lang-dotnet=\"`AmazonS3Bucket`\" pulumi-lang-go=\"`amazonS3Bucket`\" pulumi-lang-python=\"`amazon_s3_bucket`\" pulumi-lang-yaml=\"`amazonS3Bucket`\" pulumi-lang-java=\"`amazonS3Bucket`\"\u003e`amazon_s3_bucket`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3Bucket:PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3Bucket":{"properties":{"awsAccount":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3BucketAwsAccount:PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3BucketAwsAccount","description":"The AWS account.\n"},"bucketName":{"type":"string","description":"The bucket name.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3BucketAwsAccount:PreventionDiscoveryConfigTargetOtherCloudTargetFilterSingleResourceAmazonS3BucketAwsAccount":{"properties":{"accountId":{"type":"string","description":"AWS account ID.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadence:PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadence":{"properties":{"inspectTemplateModifiedCadence":{"$ref":"#/types/gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadenceInspectTemplateModifiedCadence","description":"Governs when to update data profiles when the inspection rules defined by the `InspectTemplate` change. If not set, changing the template will not cause a data profile to update.\nStructure is documented below.\n"},"refreshFrequency":{"type":"string","description":"Frequency to update profiles regardless of whether the underlying resource has changes. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadenceInspectTemplateModifiedCadence:PreventionDiscoveryConfigTargetOtherCloudTargetGenerationCadenceInspectTemplateModifiedCadence":{"properties":{"frequency":{"type":"string","description":"How frequently data profiles can be updated when the template is modified. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n"}},"type":"object"},"gcp:dataloss/PreventionDiscoveryConfigTargetSecretsTarget:PreventionDiscoveryConfigTargetSecretsTarget":{"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfig:PreventionInspectTemplateInspectConfig":{"properties":{"contentOptions":{"type":"array","items":{"type":"string"},"description":"List of options defining data content to scan. If empty, text, images, and other content will be included.\nEach value may be one of: `CONTENT_TEXT`, `CONTENT_IMAGE`.\n"},"customInfoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoType:PreventionInspectTemplateInspectConfigCustomInfoType"},"description":"Custom info types to be used. See https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.\nStructure is documented below.\n"},"excludeInfoTypes":{"type":"boolean","description":"When true, excludes type information of the findings.\n"},"includeQuote":{"type":"boolean","description":"When true, a contextual quote from the data that triggered a finding is included in the response.\n"},"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigInfoType:PreventionInspectTemplateInspectConfigInfoType"},"description":"Restricts what infoTypes to look for. The values must correspond to InfoType values returned by infoTypes.list\nor listed at https://cloud.google.com/dlp/docs/infotypes-reference.\nWhen no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose what detectors to run.\nBy default this may be all types, but may change over time as detectors are updated.\nStructure is documented below.\n"},"limits":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigLimits:PreventionInspectTemplateInspectConfigLimits","description":"Configuration to control the number of findings returned.\nStructure is documented below.\n"},"minLikelihood":{"type":"string","description":"Only returns findings equal or above this threshold. See https://cloud.google.com/dlp/docs/likelihood for more info\nDefault value is `POSSIBLE`.\nPossible values are: `VERY_UNLIKELY`, `UNLIKELY`, `POSSIBLE`, `LIKELY`, `VERY_LIKELY`.\n"},"ruleSets":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSet:PreventionInspectTemplateInspectConfigRuleSet"},"description":"Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end,\nother rules are executed in the order they are specified for each info type.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoType:PreventionInspectTemplateInspectConfigCustomInfoType":{"properties":{"dictionary":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeDictionary:PreventionInspectTemplateInspectConfigCustomInfoTypeDictionary","description":"Dictionary which defines the rule.\nStructure is documented below.\n","willReplaceOnChanges":true},"exclusionType":{"type":"string","description":"If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be returned. It still can be used for rules matching.\nPossible values are: `EXCLUSION_TYPE_EXCLUDE`.\n"},"infoType":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeInfoType:PreventionInspectTemplateInspectConfigCustomInfoTypeInfoType","description":"CustomInfoType can either be a new infoType, or an extension of built-in infoType, when the name matches one of existing\ninfoTypes and that infoType is specified in \u003cspan pulumi-lang-nodejs=\"`infoTypes`\" pulumi-lang-dotnet=\"`InfoTypes`\" pulumi-lang-go=\"`infoTypes`\" pulumi-lang-python=\"`info_types`\" pulumi-lang-yaml=\"`infoTypes`\" pulumi-lang-java=\"`infoTypes`\"\u003e`info_types`\u003c/span\u003e field. Specifying the latter adds findings to the\none detected by the system. If built-in info type is not specified in \u003cspan pulumi-lang-nodejs=\"`infoTypes`\" pulumi-lang-dotnet=\"`InfoTypes`\" pulumi-lang-go=\"`infoTypes`\" pulumi-lang-python=\"`info_types`\" pulumi-lang-yaml=\"`infoTypes`\" pulumi-lang-java=\"`infoTypes`\"\u003e`info_types`\u003c/span\u003e list then the name is\ntreated as a custom info type.\nStructure is documented below.\n"},"likelihood":{"type":"string","description":"Likelihood to return for this CustomInfoType. This base value can be altered by a detection rule if the finding meets the criteria\nspecified by the rule.\nDefault value is `VERY_LIKELY`.\nPossible values are: `VERY_UNLIKELY`, `UNLIKELY`, `POSSIBLE`, `LIKELY`, `VERY_LIKELY`.\n"},"regex":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeRegex:PreventionInspectTemplateInspectConfigCustomInfoTypeRegex","description":"Regular expression which defines the rule.\nStructure is documented below.\n","willReplaceOnChanges":true},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigCustomInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"storedType":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeStoredType:PreventionInspectTemplateInspectConfigCustomInfoTypeStoredType","description":"A reference to a StoredInfoType to use with scanning.\nStructure is documented below.\n","willReplaceOnChanges":true},"surrogateType":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeSurrogateType:PreventionInspectTemplateInspectConfigCustomInfoTypeSurrogateType","description":"Message for detecting output from deidentification transformations that support reversing.\n","willReplaceOnChanges":true}},"type":"object","required":["infoType"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeDictionary:PreventionInspectTemplateInspectConfigCustomInfoTypeDictionary":{"properties":{"cloudStoragePath":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryCloudStoragePath:PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryCloudStoragePath","description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.\nStructure is documented below.\n"},"wordList":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryWordList:PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryWordList","description":"List of words or phrases to search for.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryCloudStoragePath:PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryCloudStoragePath":{"properties":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryWordList:PreventionInspectTemplateInspectConfigCustomInfoTypeDictionaryWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeInfoType:PreventionInspectTemplateInspectConfigCustomInfoTypeInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names\nlisted at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigCustomInfoTypeInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigCustomInfoTypeInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeRegex:PreventionInspectTemplateInspectConfigCustomInfoTypeRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigCustomInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeStoredType:PreventionInspectTemplateInspectConfigCustomInfoTypeStoredType":{"properties":{"name":{"type":"string","description":"Resource name of the requested StoredInfoType, for example `organizations/433245324/storedInfoTypes/432452342`\nor `projects/project-id/storedInfoTypes/432452342`.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigCustomInfoTypeSurrogateType:PreventionInspectTemplateInspectConfigCustomInfoTypeSurrogateType":{"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigInfoType:PreventionInspectTemplateInspectConfigInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigLimits:PreventionInspectTemplateInspectConfigLimits":{"properties":{"maxFindingsPerInfoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoType:PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoType"},"description":"Configuration of findings limit given for specified infoTypes.\nStructure is documented below.\n"},"maxFindingsPerItem":{"type":"integer","description":"Max number of findings that will be returned for each item scanned. The maximum returned is 2000.\n"},"maxFindingsPerRequest":{"type":"integer","description":"Max number of findings that will be returned per request/job. The maximum returned is 2000.\n"}},"type":"object","required":["maxFindingsPerItem","maxFindingsPerRequest"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoType:PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoType":{"properties":{"infoType":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoType:PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoType","description":"Type of information the findings limit applies to. Only one limit per infoType should be provided. If InfoTypeLimit does\nnot have an infoType, the DLP API applies the limit against all infoTypes that are found but not\nspecified in another InfoTypeLimit.\nStructure is documented below.\n"},"maxFindings":{"type":"integer","description":"Max findings limit for the given infoType.\n"}},"type":"object","required":["maxFindings"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoType:PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names\nlisted at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSet:PreventionInspectTemplateInspectConfigRuleSet":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetInfoType:PreventionInspectTemplateInspectConfigRuleSetInfoType"},"description":"List of infoTypes this rule set is applied to.\nStructure is documented below.\n"},"rules":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRule:PreventionInspectTemplateInspectConfigRuleSetRule"},"description":"Set of rules to be applied to infoTypes. The rules are applied in order.\nStructure is documented below.\n"}},"type":"object","required":["infoTypes","rules"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetInfoType:PreventionInspectTemplateInspectConfigRuleSetInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigRuleSetInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigRuleSetInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRule:PreventionInspectTemplateInspectConfigRuleSetRule":{"properties":{"exclusionRule":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRule:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRule","description":"The rule that specifies conditions when findings of infoTypes specified in InspectionRuleSet are removed from results.\nStructure is documented below.\n"},"hotwordRule":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRule:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRule","description":"Hotword-based detection rule.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRule:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRule":{"properties":{"dictionary":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionary:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionary","description":"Dictionary which defines the rule.\nStructure is documented below.\n"},"excludeByHotword":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotword:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotword","description":"Drop if the hotword rule is contained in the proximate context.\nFor tabular data, the context includes the column name.\nStructure is documented below.\n"},"excludeInfoTypes":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes","description":"Set of infoTypes for which findings would affect this rule.\nStructure is documented below.\n"},"matchingType":{"type":"string","description":"How the rule is applied. See the documentation for more information: https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#MatchingType\nPossible values are: `MATCHING_TYPE_FULL_MATCH`, `MATCHING_TYPE_PARTIAL_MATCH`, `MATCHING_TYPE_INVERSE_MATCH`.\n"},"regex":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleRegex:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleRegex","description":"Regular expression which defines the rule.\nStructure is documented below.\n"}},"type":"object","required":["matchingType"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionary:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionary":{"properties":{"cloudStoragePath":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath","description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.\nStructure is documented below.\n"},"wordList":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryWordList:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryWordList","description":"List of words or phrases to search for.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath":{"properties":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryWordList:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleDictionaryWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotword:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotword":{"properties":{"hotwordRegex":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex","description":"Regular expression pattern defining what qualifies as a hotword.\nStructure is documented below.\n"},"proximity":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity","description":"Proximity of the finding within which the entire hotword must reside. The total length of the window cannot\nexceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be\nused to match substrings of the finding itself. For example, the certainty of a phone number regex\n`(\\d{3}) \\d{3}-\\d{4}` could be adjusted upwards if the area code is known to be the local area code of a company\noffice using the hotword regex `(xxx)`, where \u003cspan pulumi-lang-nodejs=\"`xxx`\" pulumi-lang-dotnet=\"`Xxx`\" pulumi-lang-go=\"`xxx`\" pulumi-lang-python=\"`xxx`\" pulumi-lang-yaml=\"`xxx`\" pulumi-lang-java=\"`xxx`\"\u003e`xxx`\u003c/span\u003e is the area code in question.\nStructure is documented below.\n"}},"type":"object","required":["hotwordRegex","proximity"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified,\nthe entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression. Its syntax\n(https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity":{"properties":{"windowAfter":{"type":"integer","description":"Number of characters after the finding to consider.\n"},"windowBefore":{"type":"integer","description":"Number of characters before the finding to consider.\n"}},"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType"},"description":"If a finding is matched by any of the infoType detectors listed here, the finding will be excluded from the scan results.\nStructure is documented below.\n"}},"type":"object","required":["infoTypes"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version name for this InfoType.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleRegex:PreventionInspectTemplateInspectConfigRuleSetRuleExclusionRuleRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRule:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRule":{"properties":{"hotwordRegex":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleHotwordRegex:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleHotwordRegex","description":"Regular expression pattern defining what qualifies as a hotword.\nStructure is documented below.\n"},"likelihoodAdjustment":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment","description":"Likelihood adjustment to apply to all matching findings.\nStructure is documented below.\n"},"proximity":{"$ref":"#/types/gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleProximity:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleProximity","description":"Proximity of the finding within which the entire hotword must reside. The total length of the window cannot\nexceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be\nused to match substrings of the finding itself. For example, the certainty of a phone number regex\n`(\\d{3}) \\d{3}-\\d{4}` could be adjusted upwards if the area code is known to be the local area code of a company\noffice using the hotword regex `(xxx)`, where \u003cspan pulumi-lang-nodejs=\"`xxx`\" pulumi-lang-dotnet=\"`Xxx`\" pulumi-lang-go=\"`xxx`\" pulumi-lang-python=\"`xxx`\" pulumi-lang-yaml=\"`xxx`\" pulumi-lang-java=\"`xxx`\"\u003e`xxx`\u003c/span\u003e is the area code in question.\nStructure is documented below.\n"}},"type":"object","required":["hotwordRegex","likelihoodAdjustment","proximity"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleHotwordRegex:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleHotwordRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified,\nthe entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression. Its syntax\n(https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment":{"properties":{"fixedLikelihood":{"type":"string","description":"Set the likelihood of a finding to a fixed value. Either this or\u003cspan pulumi-lang-nodejs=\" relativeLikelihood \" pulumi-lang-dotnet=\" RelativeLikelihood \" pulumi-lang-go=\" relativeLikelihood \" pulumi-lang-python=\" relative_likelihood \" pulumi-lang-yaml=\" relativeLikelihood \" pulumi-lang-java=\" relativeLikelihood \"\u003e relative_likelihood \u003c/span\u003ecan be set.\nPossible values are: `VERY_UNLIKELY`, `UNLIKELY`, `POSSIBLE`, `LIKELY`, `VERY_LIKELY`.\n"},"relativeLikelihood":{"type":"integer","description":"Increase or decrease the likelihood by the specified number of levels. For example,\nif a finding would be POSSIBLE without the detection rule and relativeLikelihood is 1,\nthen it is upgraded to LIKELY, while a value of -1 would downgrade it to UNLIKELY.\nLikelihood may never drop below VERY_UNLIKELY or exceed VERY_LIKELY, so applying an\nadjustment of 1 followed by an adjustment of -1 when base likelihood is VERY_LIKELY\nwill result in a final likelihood of LIKELY. Either this or\u003cspan pulumi-lang-nodejs=\" fixedLikelihood \" pulumi-lang-dotnet=\" FixedLikelihood \" pulumi-lang-go=\" fixedLikelihood \" pulumi-lang-python=\" fixed_likelihood \" pulumi-lang-yaml=\" fixedLikelihood \" pulumi-lang-java=\" fixedLikelihood \"\u003e fixed_likelihood \u003c/span\u003ecan be set.\n"}},"type":"object"},"gcp:dataloss/PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleProximity:PreventionInspectTemplateInspectConfigRuleSetRuleHotwordRuleProximity":{"properties":{"windowAfter":{"type":"integer","description":"Number of characters after the finding to consider.\n"},"windowBefore":{"type":"integer","description":"Number of characters before the finding to consider.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJob:PreventionJobTriggerInspectJob":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobAction:PreventionJobTriggerInspectJobAction"},"description":"Configuration block for the actions to execute on the completion of a job. Can be specified multiple times, but only one for each type. Each action block supports fields documented below. This argument is processed in attribute-as-blocks mode.\nStructure is documented below.\n"},"inspectConfig":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfig:PreventionJobTriggerInspectJobInspectConfig","description":"The core content of the template.\nStructure is documented below.\n"},"inspectTemplateName":{"type":"string","description":"The name of the template to run when this job is triggered.\n"},"storageConfig":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfig:PreventionJobTriggerInspectJobStorageConfig","description":"Information on where to inspect\nStructure is documented below.\n"}},"type":"object","required":["storageConfig"]},"gcp:dataloss/PreventionJobTriggerInspectJobAction:PreventionJobTriggerInspectJobAction":{"properties":{"deidentify":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentify:PreventionJobTriggerInspectJobActionDeidentify","description":"Create a de-identified copy of the requested table or files.\nStructure is documented below.\n"},"jobNotificationEmails":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionJobNotificationEmails:PreventionJobTriggerInspectJobActionJobNotificationEmails","description":"Sends an email when the job completes. The email goes to IAM project owners and technical Essential Contacts.\n"},"pubSub":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionPubSub:PreventionJobTriggerInspectJobActionPubSub","description":"Publish a message into a given Pub/Sub topic when the job completes.\nStructure is documented below.\n"},"publishFindingsToCloudDataCatalog":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionPublishFindingsToCloudDataCatalog:PreventionJobTriggerInspectJobActionPublishFindingsToCloudDataCatalog","description":"(Optional, Deprecated)\nPublish findings of a DlpJob to Data Catalog.\n\n\u003e **Warning:** \u003cspan pulumi-lang-nodejs=\"`publishFindingsToCloudDataCatalog`\" pulumi-lang-dotnet=\"`PublishFindingsToCloudDataCatalog`\" pulumi-lang-go=\"`publishFindingsToCloudDataCatalog`\" pulumi-lang-python=\"`publish_findings_to_cloud_data_catalog`\" pulumi-lang-yaml=\"`publishFindingsToCloudDataCatalog`\" pulumi-lang-java=\"`publishFindingsToCloudDataCatalog`\"\u003e`publish_findings_to_cloud_data_catalog`\u003c/span\u003e is deprecated and will be removed in a future major release. To publish findings to Dataplex Catalog, use \u003cspan pulumi-lang-nodejs=\"`publishFindingsToDataplexCatalog`\" pulumi-lang-dotnet=\"`PublishFindingsToDataplexCatalog`\" pulumi-lang-go=\"`publishFindingsToDataplexCatalog`\" pulumi-lang-python=\"`publish_findings_to_dataplex_catalog`\" pulumi-lang-yaml=\"`publishFindingsToDataplexCatalog`\" pulumi-lang-java=\"`publishFindingsToDataplexCatalog`\"\u003e`publish_findings_to_dataplex_catalog`\u003c/span\u003e instead.\n","deprecationMessage":"\u003cspan pulumi-lang-nodejs=\"`publishFindingsToCloudDataCatalog`\" pulumi-lang-dotnet=\"`PublishFindingsToCloudDataCatalog`\" pulumi-lang-go=\"`publishFindingsToCloudDataCatalog`\" pulumi-lang-python=\"`publish_findings_to_cloud_data_catalog`\" pulumi-lang-yaml=\"`publishFindingsToCloudDataCatalog`\" pulumi-lang-java=\"`publishFindingsToCloudDataCatalog`\"\u003e`publish_findings_to_cloud_data_catalog`\u003c/span\u003e is deprecated and will be removed in a future major release. To publish findings to Dataplex Catalog, use \u003cspan pulumi-lang-nodejs=\"`publishFindingsToDataplexCatalog`\" pulumi-lang-dotnet=\"`PublishFindingsToDataplexCatalog`\" pulumi-lang-go=\"`publishFindingsToDataplexCatalog`\" pulumi-lang-python=\"`publish_findings_to_dataplex_catalog`\" pulumi-lang-yaml=\"`publishFindingsToDataplexCatalog`\" pulumi-lang-java=\"`publishFindingsToDataplexCatalog`\"\u003e`publish_findings_to_dataplex_catalog`\u003c/span\u003e instead."},"publishFindingsToDataplexCatalog":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionPublishFindingsToDataplexCatalog:PreventionJobTriggerInspectJobActionPublishFindingsToDataplexCatalog","description":"Publish findings of a DlpJob as an aspect to Dataplex Universal Catalog.\n"},"publishSummaryToCscc":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionPublishSummaryToCscc:PreventionJobTriggerInspectJobActionPublishSummaryToCscc","description":"Publish the result summary of a DlpJob to the Cloud Security Command Center.\n"},"publishToStackdriver":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionPublishToStackdriver:PreventionJobTriggerInspectJobActionPublishToStackdriver","description":"Enable Stackdriver metric dlp.googleapis.com/findingCount.\n"},"saveFindings":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindings:PreventionJobTriggerInspectJobActionSaveFindings","description":"If set, the detailed findings will be persisted to the specified OutputStorageConfig. Only a single instance of this action can be specified. Compatible with: Inspect, Risk\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentify:PreventionJobTriggerInspectJobActionDeidentify":{"properties":{"cloudStorageOutput":{"type":"string","description":"User settable Cloud Storage bucket and folders to store de-identified files.\nThis field must be set for cloud storage deidentification.\nThe output Cloud Storage bucket must be different from the input bucket.\nDe-identified files will overwrite files in the output path.\nForm of: gs://bucket/folder/ or gs://bucket\n"},"fileTypesToTransforms":{"type":"array","items":{"type":"string"},"description":"List of user-specified file type groups to transform. If specified, only the files with these filetypes will be transformed.\nIf empty, all supported files will be transformed. Supported types may be automatically added over time.\nIf a file type is set in this field that isn't supported by the Deidentify action then the job will fail and will not be successfully created/started.\nEach value may be one of: `IMAGE`, `TEXT_FILE`, `CSV`, `TSV`.\n"},"transformationConfig":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentifyTransformationConfig:PreventionJobTriggerInspectJobActionDeidentifyTransformationConfig","description":"User specified deidentify templates and configs for structured, unstructured, and image files.\nStructure is documented below.\n"},"transformationDetailsStorageConfig":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfig:PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfig","description":"Config for storing transformation details.\nStructure is documented below.\n"}},"type":"object","required":["cloudStorageOutput"]},"gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentifyTransformationConfig:PreventionJobTriggerInspectJobActionDeidentifyTransformationConfig":{"properties":{"deidentifyTemplate":{"type":"string","description":"If this template is specified, it will serve as the default de-identify template.\n"},"imageRedactTemplate":{"type":"string","description":"If this template is specified, it will serve as the de-identify template for images.\n"},"structuredDeidentifyTemplate":{"type":"string","description":"If this template is specified, it will serve as the de-identify template for structured content such as delimited files and tables.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfig:PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfig":{"properties":{"table":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfigTable:PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfigTable","description":"The BigQuery table in which to store the output.\nStructure is documented below.\n"}},"type":"object","required":["table"]},"gcp:dataloss/PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfigTable:PreventionJobTriggerInspectJobActionDeidentifyTransformationDetailsStorageConfigTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"},"tableId":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.\n"}},"type":"object","required":["datasetId","projectId"]},"gcp:dataloss/PreventionJobTriggerInspectJobActionJobNotificationEmails:PreventionJobTriggerInspectJobActionJobNotificationEmails":{"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionPubSub:PreventionJobTriggerInspectJobActionPubSub":{"properties":{"topic":{"type":"string","description":"Cloud Pub/Sub topic to send notifications to.\n"}},"type":"object","required":["topic"]},"gcp:dataloss/PreventionJobTriggerInspectJobActionPublishFindingsToCloudDataCatalog:PreventionJobTriggerInspectJobActionPublishFindingsToCloudDataCatalog":{"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionPublishFindingsToDataplexCatalog:PreventionJobTriggerInspectJobActionPublishFindingsToDataplexCatalog":{"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionPublishSummaryToCscc:PreventionJobTriggerInspectJobActionPublishSummaryToCscc":{"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionPublishToStackdriver:PreventionJobTriggerInspectJobActionPublishToStackdriver":{"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindings:PreventionJobTriggerInspectJobActionSaveFindings":{"properties":{"outputConfig":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindingsOutputConfig:PreventionJobTriggerInspectJobActionSaveFindingsOutputConfig","description":"Information on where to store output\nStructure is documented below.\n"}},"type":"object","required":["outputConfig"]},"gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindingsOutputConfig:PreventionJobTriggerInspectJobActionSaveFindingsOutputConfig":{"properties":{"outputSchema":{"type":"string","description":"Schema used for writing the findings for Inspect jobs. This field is only used for\nInspect and must be unspecified for Risk jobs. Columns are derived from the Finding\nobject. If appending to an existing table, any columns from the predefined schema\nthat are missing will be added. No columns in the existing table will be deleted.\nIf unspecified, then all available columns will be used for a new table or an (existing)\ntable with no schema, and no changes will be made to an existing table that has a schema.\nOnly for use with external storage.\nPossible values are: `BASIC_COLUMNS`, `GCS_COLUMNS`, `DATASTORE_COLUMNS`, `BIG_QUERY_COLUMNS`, `ALL_COLUMNS`.\n"},"storagePath":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigStoragePath:PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigStoragePath","description":"Store findings in an existing Cloud Storage bucket. Files will be generated with the job ID and file part number\nas the filename, and will contain findings in textproto format as SaveToGcsFindingsOutput. The file name will use\nthe naming convention \u003cjob_id\u003e-\u003cshard_number\u003e, for example: my-job-id-2.\nSupported for InspectJobs. The bucket must not be the same as the bucket being inspected. If storing findings to\nCloud Storage, the output schema field should not be set. If set, it will be ignored.\nStructure is documented below.\n"},"table":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigTable:PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigTable","description":"Information on the location of the target BigQuery Table.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigStoragePath:PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigStoragePath":{"properties":{"path":{"type":"string","description":"A URL representing a file or path (no wildcards) in Cloud Storage.\nExample: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigTable:PreventionJobTriggerInspectJobActionSaveFindingsOutputConfigTable":{"properties":{"datasetId":{"type":"string","description":"The ID of the dataset containing this table.\n"},"projectId":{"type":"string","description":"The ID of the project containing this table.\n"},"tableId":{"type":"string","description":"The ID of the table. The ID must contain only letters (a-z,\nA-Z), numbers (0-9), or underscores (_). The maximum length\nis 1,024 characters.\n"}},"type":"object","required":["datasetId","projectId"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfig:PreventionJobTriggerInspectJobInspectConfig":{"properties":{"customInfoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoType:PreventionJobTriggerInspectJobInspectConfigCustomInfoType"},"description":"Custom info types to be used. See https://cloud.google.com/dlp/docs/creating-custom-infotypes to learn more.\nStructure is documented below.\n"},"excludeInfoTypes":{"type":"boolean","description":"When true, excludes type information of the findings.\n"},"includeQuote":{"type":"boolean","description":"When true, a contextual quote from the data that triggered a finding is included in the response.\n"},"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigInfoType:PreventionJobTriggerInspectJobInspectConfigInfoType"},"description":"Restricts what infoTypes to look for. The values must correspond to InfoType values returned by infoTypes.list\nor listed at https://cloud.google.com/dlp/docs/infotypes-reference.\nWhen no InfoTypes or CustomInfoTypes are specified in a request, the system may automatically choose what detectors to run.\nBy default this may be all types, but may change over time as detectors are updated.\nStructure is documented below.\n"},"limits":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimits:PreventionJobTriggerInspectJobInspectConfigLimits","description":"Configuration to control the number of findings returned.\nStructure is documented below.\n"},"minLikelihood":{"type":"string","description":"Only returns findings equal or above this threshold. See https://cloud.google.com/dlp/docs/likelihood for more info\nDefault value is `POSSIBLE`.\nPossible values are: `VERY_UNLIKELY`, `UNLIKELY`, `POSSIBLE`, `LIKELY`, `VERY_LIKELY`.\n"},"ruleSets":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSet:PreventionJobTriggerInspectJobInspectConfigRuleSet"},"description":"Set of rules to apply to the findings for this InspectConfig. Exclusion rules, contained in the set are executed in the end,\nother rules are executed in the order they are specified for each info type.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoType:PreventionJobTriggerInspectJobInspectConfigCustomInfoType":{"properties":{"dictionary":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionary:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionary","description":"Dictionary which defines the rule.\nStructure is documented below.\n"},"exclusionType":{"type":"string","description":"If set to EXCLUSION_TYPE_EXCLUDE this infoType will not cause a finding to be returned. It still can be used for rules matching.\nPossible values are: `EXCLUSION_TYPE_EXCLUDE`.\n"},"infoType":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoType:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoType","description":"CustomInfoType can either be a new infoType, or an extension of built-in infoType, when the name matches one of existing\ninfoTypes and that infoType is specified in \u003cspan pulumi-lang-nodejs=\"`infoTypes`\" pulumi-lang-dotnet=\"`InfoTypes`\" pulumi-lang-go=\"`infoTypes`\" pulumi-lang-python=\"`info_types`\" pulumi-lang-yaml=\"`infoTypes`\" pulumi-lang-java=\"`infoTypes`\"\u003e`info_types`\u003c/span\u003e field. Specifying the latter adds findings to the\none detected by the system. If built-in info type is not specified in \u003cspan pulumi-lang-nodejs=\"`infoTypes`\" pulumi-lang-dotnet=\"`InfoTypes`\" pulumi-lang-go=\"`infoTypes`\" pulumi-lang-python=\"`info_types`\" pulumi-lang-yaml=\"`infoTypes`\" pulumi-lang-java=\"`infoTypes`\"\u003e`info_types`\u003c/span\u003e list then the name is\ntreated as a custom info type.\nStructure is documented below.\n"},"likelihood":{"type":"string","description":"Likelihood to return for this CustomInfoType. This base value can be altered by a detection rule if the finding meets the criteria\nspecified by the rule.\nDefault value is `VERY_LIKELY`.\nPossible values are: `VERY_UNLIKELY`, `UNLIKELY`, `POSSIBLE`, `LIKELY`, `VERY_LIKELY`.\n"},"regex":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeRegex:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeRegex","description":"Regular expression which defines the rule.\nStructure is documented below.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"storedType":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeStoredType:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeStoredType","description":"A reference to a StoredInfoType to use with scanning.\nStructure is documented below.\n"},"surrogateType":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSurrogateType:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSurrogateType","description":"Message for detecting output from deidentification transformations that support reversing.\n"}},"type":"object","required":["infoType"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionary:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionary":{"properties":{"cloudStoragePath":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryCloudStoragePath:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryCloudStoragePath","description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.\nStructure is documented below.\n"},"wordList":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryWordList:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryWordList","description":"List of words or phrases to search for.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryCloudStoragePath:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryCloudStoragePath":{"properties":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryWordList:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeDictionaryWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoType:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names\nlisted at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version of the information type to use. By default, the version is set to stable.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeRegex:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeStoredType:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeStoredType":{"properties":{"createTime":{"type":"string","description":"(Output)\nThe creation timestamp of an inspectTemplate. Set by the server.\n"},"name":{"type":"string","description":"Resource name of the requested StoredInfoType, for example `organizations/433245324/storedInfoTypes/432452342`\nor `projects/project-id/storedInfoTypes/432452342`.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["createTime","name"]}}},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSurrogateType:PreventionJobTriggerInspectJobInspectConfigCustomInfoTypeSurrogateType":{"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigInfoType:PreventionJobTriggerInspectJobInspectConfigInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version of the information type to use. By default, the version is set to stable.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimits:PreventionJobTriggerInspectJobInspectConfigLimits":{"properties":{"maxFindingsPerInfoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoType:PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoType"},"description":"Configuration of findings limit given for specified infoTypes.\nStructure is documented below.\n"},"maxFindingsPerItem":{"type":"integer","description":"Max number of findings that will be returned for each item scanned. The maximum returned is 2000.\n"},"maxFindingsPerRequest":{"type":"integer","description":"Max number of findings that will be returned per request/job. The maximum returned is 2000.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoType:PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoType":{"properties":{"infoType":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoType:PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoType","description":"Type of information the findings limit applies to. Only one limit per infoType should be provided. If InfoTypeLimit does\nnot have an infoType, the DLP API applies the limit against all infoTypes that are found but not\nspecified in another InfoTypeLimit.\nStructure is documented below.\n"},"maxFindings":{"type":"integer","description":"Max findings limit for the given infoType.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoType:PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names\nlisted at https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version of the information type to use. By default, the version is set to stable.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigLimitsMaxFindingsPerInfoTypeInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSet:PreventionJobTriggerInspectJobInspectConfigRuleSet":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetInfoType:PreventionJobTriggerInspectJobInspectConfigRuleSetInfoType"},"description":"List of infoTypes this rule set is applied to.\nStructure is documented below.\n"},"rules":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRule:PreventionJobTriggerInspectJobInspectConfigRuleSetRule"},"description":"Set of rules to be applied to infoTypes. The rules are applied in order.\nStructure is documented below.\n"}},"type":"object","required":["rules"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetInfoType:PreventionJobTriggerInspectJobInspectConfigRuleSetInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigRuleSetInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version of the information type to use. By default, the version is set to stable.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigRuleSetInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRule:PreventionJobTriggerInspectJobInspectConfigRuleSetRule":{"properties":{"exclusionRule":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRule:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRule","description":"The rule that specifies conditions when findings of infoTypes specified in InspectionRuleSet are removed from results.\nStructure is documented below.\n"},"hotwordRule":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRule:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRule","description":"Hotword-based detection rule.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRule:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRule":{"properties":{"dictionary":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionary:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionary","description":"Dictionary which defines the rule.\nStructure is documented below.\n"},"excludeByHotword":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotword:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotword","description":"Drop if the hotword rule is contained in the proximate context.\nStructure is documented below.\n"},"excludeInfoTypes":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes","description":"Set of infoTypes for which findings would affect this rule.\nStructure is documented below.\n"},"matchingType":{"type":"string","description":"How the rule is applied. See the documentation for more information: https://cloud.google.com/dlp/docs/reference/rest/v2/InspectConfig#MatchingType\nPossible values are: `MATCHING_TYPE_FULL_MATCH`, `MATCHING_TYPE_PARTIAL_MATCH`, `MATCHING_TYPE_INVERSE_MATCH`.\n"},"regex":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleRegex:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleRegex","description":"Regular expression which defines the rule.\nStructure is documented below.\n"}},"type":"object","required":["matchingType"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionary:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionary":{"properties":{"cloudStoragePath":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath","description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.\nStructure is documented below.\n"},"wordList":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryWordList:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryWordList","description":"List of words or phrases to search for.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryCloudStoragePath":{"properties":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryWordList:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleDictionaryWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotword:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotword":{"properties":{"hotwordRegex":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex","description":"Regular expression pattern defining what qualifies as a hotword.\nStructure is documented below.\n"},"proximity":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity","description":"Proximity of the finding within which the entire hotword must reside. The total length of the window cannot\nexceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be\nused to match substrings of the finding itself. For example, the certainty of a phone number regex\n`(\\d{3}) \\d{3}-\\d{4}` could be adjusted upwards if the area code is known to be the local area code of a company\noffice using the hotword regex `(xxx)`, where \u003cspan pulumi-lang-nodejs=\"`xxx`\" pulumi-lang-dotnet=\"`Xxx`\" pulumi-lang-go=\"`xxx`\" pulumi-lang-python=\"`xxx`\" pulumi-lang-yaml=\"`xxx`\" pulumi-lang-java=\"`xxx`\"\u003e`xxx`\u003c/span\u003e is the area code in question.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordHotwordRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified,\nthe entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression. Its syntax\n(https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeByHotwordProximity":{"properties":{"windowAfter":{"type":"integer","description":"Number of characters after the finding to consider. Either this or\u003cspan pulumi-lang-nodejs=\" windowBefore \" pulumi-lang-dotnet=\" WindowBefore \" pulumi-lang-go=\" windowBefore \" pulumi-lang-python=\" window_before \" pulumi-lang-yaml=\" windowBefore \" pulumi-lang-java=\" windowBefore \"\u003e window_before \u003c/span\u003emust be specified\n"},"windowBefore":{"type":"integer","description":"Number of characters before the finding to consider. Either this or\u003cspan pulumi-lang-nodejs=\" windowAfter \" pulumi-lang-dotnet=\" WindowAfter \" pulumi-lang-go=\" windowAfter \" pulumi-lang-python=\" window_after \" pulumi-lang-yaml=\" windowAfter \" pulumi-lang-java=\" windowAfter \"\u003e window_after \u003c/span\u003emust be specified\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypes":{"properties":{"infoTypes":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType"},"description":"If a finding is matched by any of the infoType detectors listed here, the finding will be excluded from the scan results.\nStructure is documented below.\n"}},"type":"object","required":["infoTypes"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoType":{"properties":{"name":{"type":"string","description":"Name of the information type. Either a name of your choosing when creating a CustomInfoType, or one of the names listed\nat https://cloud.google.com/dlp/docs/infotypes-reference when specifying a built-in type.\n"},"sensitivityScore":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore","description":"Optional custom sensitivity for this InfoType. This only applies to data profiling.\nStructure is documented below.\n"},"version":{"type":"string","description":"Version of the information type to use. By default, the version is set to stable.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleExcludeInfoTypesInfoTypeSensitivityScore":{"properties":{"score":{"type":"string","description":"The sensitivity score applied to the resource.\nPossible values are: `SENSITIVITY_LOW`, `SENSITIVITY_MODERATE`, `SENSITIVITY_HIGH`.\n"}},"type":"object","required":["score"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleRegex:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleExclusionRuleRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRule:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRule":{"properties":{"hotwordRegex":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleHotwordRegex:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleHotwordRegex","description":"Regular expression pattern defining what qualifies as a hotword.\nStructure is documented below.\n"},"likelihoodAdjustment":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment","description":"Likelihood adjustment to apply to all matching findings.\nStructure is documented below.\n"},"proximity":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleProximity:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleProximity","description":"Proximity of the finding within which the entire hotword must reside. The total length of the window cannot\nexceed 1000 characters. Note that the finding itself will be included in the window, so that hotwords may be\nused to match substrings of the finding itself. For example, the certainty of a phone number regex\n`(\\d{3}) \\d{3}-\\d{4}` could be adjusted upwards if the area code is known to be the local area code of a company\noffice using the hotword regex `(xxx)`, where \u003cspan pulumi-lang-nodejs=\"`xxx`\" pulumi-lang-dotnet=\"`Xxx`\" pulumi-lang-go=\"`xxx`\" pulumi-lang-python=\"`xxx`\" pulumi-lang-yaml=\"`xxx`\" pulumi-lang-java=\"`xxx`\"\u003e`xxx`\u003c/span\u003e is the area code in question.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleHotwordRegex:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleHotwordRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified,\nthe entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression. Its syntax\n(https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleLikelihoodAdjustment":{"properties":{"fixedLikelihood":{"type":"string","description":"Set the likelihood of a finding to a fixed value. Either this or\u003cspan pulumi-lang-nodejs=\" relativeLikelihood \" pulumi-lang-dotnet=\" RelativeLikelihood \" pulumi-lang-go=\" relativeLikelihood \" pulumi-lang-python=\" relative_likelihood \" pulumi-lang-yaml=\" relativeLikelihood \" pulumi-lang-java=\" relativeLikelihood \"\u003e relative_likelihood \u003c/span\u003ecan be set.\nPossible values are: `VERY_UNLIKELY`, `UNLIKELY`, `POSSIBLE`, `LIKELY`, `VERY_LIKELY`.\n"},"relativeLikelihood":{"type":"integer","description":"Increase or decrease the likelihood by the specified number of levels. For example,\nif a finding would be POSSIBLE without the detection rule and relativeLikelihood is 1,\nthen it is upgraded to LIKELY, while a value of -1 would downgrade it to UNLIKELY.\nLikelihood may never drop below VERY_UNLIKELY or exceed VERY_LIKELY, so applying an\nadjustment of 1 followed by an adjustment of -1 when base likelihood is VERY_LIKELY\nwill result in a final likelihood of LIKELY. Either this or\u003cspan pulumi-lang-nodejs=\" fixedLikelihood \" pulumi-lang-dotnet=\" FixedLikelihood \" pulumi-lang-go=\" fixedLikelihood \" pulumi-lang-python=\" fixed_likelihood \" pulumi-lang-yaml=\" fixedLikelihood \" pulumi-lang-java=\" fixedLikelihood \"\u003e fixed_likelihood \u003c/span\u003ecan be set.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleProximity:PreventionJobTriggerInspectJobInspectConfigRuleSetRuleHotwordRuleProximity":{"properties":{"windowAfter":{"type":"integer","description":"Number of characters after the finding to consider. Either this or\u003cspan pulumi-lang-nodejs=\" windowBefore \" pulumi-lang-dotnet=\" WindowBefore \" pulumi-lang-go=\" windowBefore \" pulumi-lang-python=\" window_before \" pulumi-lang-yaml=\" windowBefore \" pulumi-lang-java=\" windowBefore \"\u003e window_before \u003c/span\u003emust be specified\n"},"windowBefore":{"type":"integer","description":"Number of characters before the finding to consider. Either this or\u003cspan pulumi-lang-nodejs=\" windowAfter \" pulumi-lang-dotnet=\" WindowAfter \" pulumi-lang-go=\" windowAfter \" pulumi-lang-python=\" window_after \" pulumi-lang-yaml=\" windowAfter \" pulumi-lang-java=\" windowAfter \"\u003e window_after \u003c/span\u003emust be specified\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfig:PreventionJobTriggerInspectJobStorageConfig":{"properties":{"bigQueryOptions":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptions:PreventionJobTriggerInspectJobStorageConfigBigQueryOptions","description":"Options defining BigQuery table and row identifiers.\nStructure is documented below.\n"},"cloudStorageOptions":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigCloudStorageOptions:PreventionJobTriggerInspectJobStorageConfigCloudStorageOptions","description":"Options defining a file or a set of files within a Google Cloud Storage bucket.\nStructure is documented below.\n"},"datastoreOptions":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigDatastoreOptions:PreventionJobTriggerInspectJobStorageConfigDatastoreOptions","description":"Options defining a data set within Google Cloud Datastore.\nStructure is documented below.\n"},"hybridOptions":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigHybridOptions:PreventionJobTriggerInspectJobStorageConfigHybridOptions","description":"Configuration to control jobs where the content being inspected is outside of Google Cloud Platform.\nStructure is documented below.\n"},"timespanConfig":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigTimespanConfig:PreventionJobTriggerInspectJobStorageConfigTimespanConfig","description":"Configuration of the timespan of the items to include in scanning\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptions:PreventionJobTriggerInspectJobStorageConfigBigQueryOptions":{"properties":{"excludedFields":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedField:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedField"},"description":"References to fields excluded from scanning.\nThis allows you to skip inspection of entire columns which you know have no findings.\nStructure is documented below.\n"},"identifyingFields":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIdentifyingField:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIdentifyingField"},"description":"Specifies the BigQuery fields that will be returned with findings.\nIf not specified, no identifying fields will be returned for findings.\nStructure is documented below.\n"},"includedFields":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedField:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedField"},"description":"Limit scanning only to these fields.\nStructure is documented below.\n"},"rowsLimit":{"type":"integer","description":"Max number of rows to scan. If the table has more rows than this value, the rest of the rows are omitted.\nIf not set, or if set to 0, all rows will be scanned. Only one of rowsLimit and rowsLimitPercent can be\nspecified. Cannot be used in conjunction with TimespanConfig.\n"},"rowsLimitPercent":{"type":"integer","description":"Max percentage of rows to scan. The rest are omitted. The number of rows scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of\nrowsLimit and rowsLimitPercent can be specified. Cannot be used in conjunction with TimespanConfig.\n"},"sampleMethod":{"type":"string","description":"How to sample rows if not all rows are scanned. Meaningful only when used in conjunction with either\nrowsLimit or rowsLimitPercent. If not specified, rows are scanned in the order BigQuery reads them.\nIf TimespanConfig is set, set this to an empty string to avoid using the default value.\nDefault value is `TOP`.\nPossible values are: `TOP`, `RANDOM_START`.\n"},"tableReference":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsTableReference:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsTableReference","description":"Set of files to scan.\nStructure is documented below.\n"}},"type":"object","required":["tableReference"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedField:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsExcludedField":{"properties":{"name":{"type":"string","description":"Name describing the field excluded from scanning.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIdentifyingField:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIdentifyingField":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedField:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsIncludedField":{"properties":{"name":{"type":"string","description":"Name describing the field to which scanning is limited.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsTableReference:PreventionJobTriggerInspectJobStorageConfigBigQueryOptionsTableReference":{"properties":{"datasetId":{"type":"string","description":"The dataset ID of the table.\n"},"projectId":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.\n"},"tableId":{"type":"string","description":"The name of the table.\n"}},"type":"object","required":["datasetId","projectId","tableId"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigCloudStorageOptions:PreventionJobTriggerInspectJobStorageConfigCloudStorageOptions":{"properties":{"bytesLimitPerFile":{"type":"integer","description":"Max number of bytes to scan from a file. If a scanned file's size is bigger than this value\nthen the rest of the bytes are omitted.\n"},"bytesLimitPerFilePercent":{"type":"integer","description":"Max percentage of bytes to scan from a file. The rest are omitted. The number of bytes scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit.\n"},"fileSet":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSet:PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSet","description":"Set of files to scan.\nStructure is documented below.\n"},"fileTypes":{"type":"array","items":{"type":"string"},"description":"List of file type groups to include in the scan. If empty, all files are scanned and available data\nformat processors are applied. In addition, the binary content of the selected files is always scanned as well.\nImages are scanned only as binary if the specified region does not support image inspection and no fileTypes were specified.\nEach value may be one of: `BINARY_FILE`, `TEXT_FILE`, `IMAGE`, `WORD`, `PDF`, `AVRO`, `CSV`, `TSV`, `POWERPOINT`, `EXCEL`.\n"},"filesLimitPercent":{"type":"integer","description":"Limits the number of files to scan to this percentage of the input FileSet. Number of files scanned is rounded down.\nMust be between 0 and 100, inclusively. Both 0 and 100 means no limit.\n"},"sampleMethod":{"type":"string","description":"How to sample bytes if not all bytes are scanned. Meaningful only when used in conjunction with bytesLimitPerFile.\nIf not specified, scanning would start from the top.\nPossible values are: `TOP`, `RANDOM_START`.\n"}},"type":"object","required":["fileSet"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSet:PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSet":{"properties":{"regexFileSet":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSetRegexFileSet:PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSetRegexFileSet","description":"The regex-filtered set of files to scan.\nStructure is documented below.\n"},"url":{"type":"string","description":"The Cloud Storage url of the file(s) to scan, in the format `gs://\u003cbucket\u003e/\u003cpath\u003e`. Trailing wildcard\nin the path is allowed.\nIf the url ends in a trailing slash, the bucket or directory represented by the url will be scanned\nnon-recursively (content in sub-directories will not be scanned). This means that `gs://mybucket/` is\nequivalent to `gs://mybucket/*`, and `gs://mybucket/directory/` is equivalent to `gs://mybucket/directory/*`.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSetRegexFileSet:PreventionJobTriggerInspectJobStorageConfigCloudStorageOptionsFileSetRegexFileSet":{"properties":{"bucketName":{"type":"string","description":"The name of a Cloud Storage bucket.\n"},"excludeRegexes":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions matching file paths to exclude. All files in the bucket that match at\nleast one of these regular expressions will be excluded from the scan.\n"},"includeRegexes":{"type":"array","items":{"type":"string"},"description":"A list of regular expressions matching file paths to include. All files in the bucket\nthat match at least one of these regular expressions will be included in the set of files,\nexcept for those that also match an item in excludeRegex. Leaving this field empty will\nmatch all files by default (this is equivalent to including .* in the list)\n"}},"type":"object","required":["bucketName"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigDatastoreOptions:PreventionJobTriggerInspectJobStorageConfigDatastoreOptions":{"properties":{"kind":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsKind:PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsKind","description":"A representation of a Datastore kind.\nStructure is documented below.\n"},"partitionId":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsPartitionId:PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsPartitionId","description":"Datastore partition ID. A partition ID identifies a grouping of entities. The grouping\nis always by project and namespace, however the namespace ID may be empty.\nStructure is documented below.\n"}},"type":"object","required":["kind","partitionId"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsKind:PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsKind":{"properties":{"name":{"type":"string","description":"The name of the Datastore kind.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsPartitionId:PreventionJobTriggerInspectJobStorageConfigDatastoreOptionsPartitionId":{"properties":{"namespaceId":{"type":"string","description":"If not empty, the ID of the namespace to which the entities belong.\n"},"projectId":{"type":"string","description":"The ID of the project to which the entities belong.\n"}},"type":"object","required":["projectId"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigHybridOptions:PreventionJobTriggerInspectJobStorageConfigHybridOptions":{"properties":{"description":{"type":"string","description":"A short description of where the data is coming from. Will be stored once in the job. 256 max length.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"To organize findings, these labels will be added to each finding.\nLabel keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z?`.\nLabel values must be between 0 and 63 characters long and must conform to the regular expression `(a-z?)?`.\nNo more than 10 labels can be associated with a given finding.\nExamples:\n* `\"environment\" : \"production\"`\n* `\"pipeline\" : \"etl\"`\n"},"requiredFindingLabelKeys":{"type":"array","items":{"type":"string"},"description":"These are labels that each inspection request must include within their 'finding_labels' map. Request\nmay contain others, but any missing one of these will be rejected.\nLabel keys must be between 1 and 63 characters long and must conform to the following regular expression: `a-z?`.\nNo more than 10 keys can be required.\n"},"tableOptions":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptions:PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptions","description":"If the container is a table, additional information to make findings meaningful such as the columns that are primary keys.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptions:PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptions":{"properties":{"identifyingFields":{"type":"array","items":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptionsIdentifyingField:PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptionsIdentifyingField"},"description":"The columns that are the primary keys for table objects included in ContentItem. A copy of this\ncell's value will stored alongside alongside each finding so that the finding can be traced to\nthe specific row it came from. No more than 3 may be provided.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptionsIdentifyingField:PreventionJobTriggerInspectJobStorageConfigHybridOptionsTableOptionsIdentifyingField":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigTimespanConfig:PreventionJobTriggerInspectJobStorageConfigTimespanConfig":{"properties":{"enableAutoPopulationOfTimespanConfig":{"type":"boolean","description":"When the job is started by a JobTrigger we will automatically figure out a valid startTime to avoid\nscanning files that have not been modified since the last time the JobTrigger executed. This will\nbe based on the time of the execution of the last run of the JobTrigger or the timespan endTime\nused in the last run of the JobTrigger.\n"},"endTime":{"type":"string","description":"Exclude files, tables, or rows newer than this value. If not set, no upper time limit is applied.\n"},"startTime":{"type":"string","description":"Exclude files, tables, or rows older than this value. If not set, no lower time limit is applied.\n"},"timestampField":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigTimespanConfigTimestampField:PreventionJobTriggerInspectJobStorageConfigTimespanConfigTimestampField","description":"Specification of the field containing the timestamp of scanned items.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerInspectJobStorageConfigTimespanConfigTimestampField:PreventionJobTriggerInspectJobStorageConfigTimespanConfigTimestampField":{"properties":{"name":{"type":"string","description":"Specification of the field containing the timestamp of scanned items. Used for data sources like Datastore and BigQuery.\nFor BigQuery: Required to filter out rows based on the given start and end times. If not specified and the table was\nmodified between the given start and end times, the entire table will be scanned. The valid data types of the timestamp\nfield are: INTEGER, DATE, TIMESTAMP, or DATETIME BigQuery column.\nFor Datastore. Valid data types of the timestamp field are: TIMESTAMP. Datastore entity will be scanned if the\ntimestamp property does not exist or its value is empty or invalid.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionJobTriggerTrigger:PreventionJobTriggerTrigger":{"properties":{"manual":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerTriggerManual:PreventionJobTriggerTriggerManual","description":"For use with hybrid jobs. Jobs must be manually created and finished.\n"},"schedule":{"$ref":"#/types/gcp:dataloss/PreventionJobTriggerTriggerSchedule:PreventionJobTriggerTriggerSchedule","description":"Schedule for triggered jobs\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionJobTriggerTriggerManual:PreventionJobTriggerTriggerManual":{"type":"object"},"gcp:dataloss/PreventionJobTriggerTriggerSchedule:PreventionJobTriggerTriggerSchedule":{"properties":{"recurrencePeriodDuration":{"type":"string","description":"With this option a job is started a regular periodic basis. For example: every day (86400 seconds).\nA scheduled start time will be skipped if the previous execution has not ended when its scheduled time occurs.\nThis value must be set to a time duration greater than or equal to 1 day and can be no longer than 60 days.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\".\n"}},"type":"object"},"gcp:dataloss/PreventionStoredInfoTypeDictionary:PreventionStoredInfoTypeDictionary":{"properties":{"cloudStoragePath":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeDictionaryCloudStoragePath:PreventionStoredInfoTypeDictionaryCloudStoragePath","description":"Newline-delimited file of words in Cloud Storage. Only a single file is accepted.\nStructure is documented below.\n"},"wordList":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeDictionaryWordList:PreventionStoredInfoTypeDictionaryWordList","description":"List of words or phrases to search for.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataloss/PreventionStoredInfoTypeDictionaryCloudStoragePath:PreventionStoredInfoTypeDictionaryCloudStoragePath":{"properties":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionStoredInfoTypeDictionaryWordList:PreventionStoredInfoTypeDictionaryWordList":{"properties":{"words":{"type":"array","items":{"type":"string"},"description":"Words or phrases defining the dictionary. The dictionary must contain at least one\nphrase and every phrase must contain at least 2 characters that are letters or digits.\n"}},"type":"object","required":["words"]},"gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionary:PreventionStoredInfoTypeLargeCustomDictionary":{"properties":{"bigQueryField":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryBigQueryField:PreventionStoredInfoTypeLargeCustomDictionaryBigQueryField","description":"Field in a BigQuery table where each cell represents a dictionary phrase.\nStructure is documented below.\n"},"cloudStorageFileSet":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryCloudStorageFileSet:PreventionStoredInfoTypeLargeCustomDictionaryCloudStorageFileSet","description":"Set of files containing newline-delimited lists of dictionary phrases.\nStructure is documented below.\n"},"outputPath":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryOutputPath:PreventionStoredInfoTypeLargeCustomDictionaryOutputPath","description":"Location to store dictionary artifacts in Google Cloud Storage. These files will only be accessible by project owners and the DLP API.\nIf any of these artifacts are modified, the dictionary is considered invalid and can no longer be used.\nStructure is documented below.\n"}},"type":"object","required":["outputPath"]},"gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryBigQueryField:PreventionStoredInfoTypeLargeCustomDictionaryBigQueryField":{"properties":{"field":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldField:PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldField","description":"Designated field in the BigQuery table.\nStructure is documented below.\n"},"table":{"$ref":"#/types/gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldTable:PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldTable","description":"Field in a BigQuery table where each cell represents a dictionary phrase.\nStructure is documented below.\n"}},"type":"object","required":["field","table"]},"gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldField:PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldField":{"properties":{"name":{"type":"string","description":"Name describing the field.\n"}},"type":"object","required":["name"]},"gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldTable:PreventionStoredInfoTypeLargeCustomDictionaryBigQueryFieldTable":{"properties":{"datasetId":{"type":"string","description":"The dataset ID of the table.\n"},"projectId":{"type":"string","description":"The Google Cloud Platform project ID of the project containing the table.\n"},"tableId":{"type":"string","description":"The name of the table.\n"}},"type":"object","required":["datasetId","projectId","tableId"]},"gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryCloudStorageFileSet:PreventionStoredInfoTypeLargeCustomDictionaryCloudStorageFileSet":{"properties":{"url":{"type":"string","description":"The url, in the format `gs://\u003cbucket\u003e/\u003cpath\u003e`. Trailing wildcard in the path is allowed.\n"}},"type":"object","required":["url"]},"gcp:dataloss/PreventionStoredInfoTypeLargeCustomDictionaryOutputPath:PreventionStoredInfoTypeLargeCustomDictionaryOutputPath":{"properties":{"path":{"type":"string","description":"A url representing a file or path (no wildcards) in Cloud Storage. Example: `gs://[BUCKET_NAME]/dictionary.txt`\n"}},"type":"object","required":["path"]},"gcp:dataloss/PreventionStoredInfoTypeRegex:PreventionStoredInfoTypeRegex":{"properties":{"groupIndexes":{"type":"array","items":{"type":"integer"},"description":"The index of the submatch to extract as findings. When not specified, the entire match is returned. No more than 3 may be included.\n"},"pattern":{"type":"string","description":"Pattern defining the regular expression.\nIts syntax (https://github.com/google/re2/wiki/Syntax) can be found under the google/re2 repository on GitHub.\n"}},"type":"object","required":["pattern"]},"gcp:dataplex/AspectTypeIamBindingCondition:AspectTypeIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/AspectTypeIamMemberCondition:AspectTypeIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/AssetDiscoverySpec:AssetDiscoverySpec":{"properties":{"csvOptions":{"$ref":"#/types/gcp:dataplex/AssetDiscoverySpecCsvOptions:AssetDiscoverySpecCsvOptions","description":"Optional. Configuration for CSV data.\n"},"enabled":{"type":"boolean","description":"Required. Whether discovery is enabled.\n"},"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.\n"},"jsonOptions":{"$ref":"#/types/gcp:dataplex/AssetDiscoverySpecJsonOptions:AssetDiscoverySpecJsonOptions","description":"Optional. Configuration for Json data.\n"},"schedule":{"type":"string","description":"Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["csvOptions","enabled","jsonOptions"]}}},"gcp:dataplex/AssetDiscoverySpecCsvOptions:AssetDiscoverySpecCsvOptions":{"properties":{"delimiter":{"type":"string","description":"Optional. The delimiter being used to separate values. This defaults to ','.\n"},"disableTypeInference":{"type":"boolean","description":"Optional. Whether to disable the inference of data type for CSV data. If true, all columns will be registered as strings.\n"},"encoding":{"type":"string","description":"Optional. The character encoding of the data. The default is UTF-8.\n"},"headerRows":{"type":"integer","description":"Optional. The number of rows to interpret as header rows that should be skipped when reading data rows.\n"}},"type":"object"},"gcp:dataplex/AssetDiscoverySpecJsonOptions:AssetDiscoverySpecJsonOptions":{"properties":{"disableTypeInference":{"type":"boolean","description":"Optional. Whether to disable the inference of data type for Json data. If true, all columns will be registered as their primitive types (strings, number or boolean).\n"},"encoding":{"type":"string","description":"Optional. The character encoding of the data. The default is UTF-8.\n"}},"type":"object"},"gcp:dataplex/AssetDiscoveryStatus:AssetDiscoveryStatus":{"properties":{"lastRunDuration":{"type":"string","description":"The duration of the last discovery run.\n"},"lastRunTime":{"type":"string","description":"The start time of the last discovery run.\n"},"message":{"type":"string","description":"Additional information about the current state.\n"},"state":{"type":"string","description":"Output only. Current state of the asset. Possible values: STATE_UNSPECIFIED, ACTIVE, CREATING, DELETING, ACTION_REQUIRED\n"},"stats":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/AssetDiscoveryStatusStat:AssetDiscoveryStatusStat"},"description":"Data Stats of the asset reported by discovery.\n"},"updateTime":{"type":"string","description":"Output only. The time when the asset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["lastRunDuration","lastRunTime","message","state","stats","updateTime"]}}},"gcp:dataplex/AssetDiscoveryStatusStat:AssetDiscoveryStatusStat":{"properties":{"dataItems":{"type":"integer","description":"The count of data items within the referenced resource.\n"},"dataSize":{"type":"integer","description":"The number of stored data bytes within the referenced resource.\n"},"filesets":{"type":"integer","description":"The count of fileset entities within the referenced resource.\n"},"tables":{"type":"integer","description":"The count of table entities within the referenced resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataItems","dataSize","filesets","tables"]}}},"gcp:dataplex/AssetIamBindingCondition:AssetIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/AssetIamMemberCondition:AssetIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/AssetResourceSpec:AssetResourceSpec":{"properties":{"name":{"type":"string","description":"Immutable. Relative name of the cloud resource that contains the data that is being managed within a lake. For example: `projects/{project_number}/buckets/{bucket_id}` `projects/{project_number}/datasets/{dataset_id}`\n","willReplaceOnChanges":true},"readAccessMode":{"type":"string","description":"Optional. Determines how read permissions are handled for each asset and their associated tables. Only available to storage buckets assets. Possible values: DIRECT, MANAGED\n"},"type":{"type":"string","description":"Required. Immutable. Type of resource. Possible values: STORAGE_BUCKET, BIGQUERY_DATASET\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["readAccessMode","type"]}}},"gcp:dataplex/AssetResourceStatus:AssetResourceStatus":{"properties":{"message":{"type":"string","description":"Additional information about the current state.\n"},"state":{"type":"string","description":"Output only. Current state of the asset. Possible values: STATE_UNSPECIFIED, ACTIVE, CREATING, DELETING, ACTION_REQUIRED\n"},"updateTime":{"type":"string","description":"Output only. The time when the asset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["message","state","updateTime"]}}},"gcp:dataplex/AssetSecurityStatus:AssetSecurityStatus":{"properties":{"message":{"type":"string","description":"Additional information about the current state.\n"},"state":{"type":"string","description":"Output only. Current state of the asset. Possible values: STATE_UNSPECIFIED, ACTIVE, CREATING, DELETING, ACTION_REQUIRED\n"},"updateTime":{"type":"string","description":"Output only. The time when the asset was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["message","state","updateTime"]}}},"gcp:dataplex/DataAssetAccessGroupConfig:DataAssetAccessGroupConfig":{"properties":{"accessGroup":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"iamRoles":{"type":"array","items":{"type":"string"},"description":"IAM roles granted on the resource.\n"}},"type":"object","required":["accessGroup"]},"gcp:dataplex/DataProductAccessGroup:DataProductAccessGroup":{"properties":{"description":{"type":"string","description":"Description of the access group.\n"},"displayName":{"type":"string","description":"User friendly display name.\n"},"groupId":{"type":"string","description":"Unique identifier of the access group.\n"},"id":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"principal":{"$ref":"#/types/gcp:dataplex/DataProductAccessGroupPrincipal:DataProductAccessGroupPrincipal","description":"The principal entity.\nStructure is documented below.\n"}},"type":"object","required":["displayName","groupId","id","principal"]},"gcp:dataplex/DataProductAccessGroupPrincipal:DataProductAccessGroupPrincipal":{"properties":{"googleGroup":{"type":"string","description":"Email of the Google Group.\n"}},"type":"object"},"gcp:dataplex/DatascanData:DatascanData":{"properties":{"entity":{"type":"string","description":"The Dataplex entity that represents the data source(e.g. BigQuery table) for Datascan.\n","willReplaceOnChanges":true},"resource":{"type":"string","description":"The service-qualified full resource name of the cloud resource for a DataScan job to scan against. The field could be:\nCloud Storage bucket (//storage.googleapis.com/projects/PROJECT_ID/buckets/BUCKET_ID) for DataDiscoveryScan OR BigQuery table of type \"TABLE\" (/bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID) for DataProfileScan/DataQualityScan.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataplex/DatascanDataDiscoverySpec:DatascanDataDiscoverySpec":{"properties":{"bigqueryPublishingConfig":{"$ref":"#/types/gcp:dataplex/DatascanDataDiscoverySpecBigqueryPublishingConfig:DatascanDataDiscoverySpecBigqueryPublishingConfig","description":"Configuration for metadata publishing.\nStructure is documented below.\n"},"storageConfig":{"$ref":"#/types/gcp:dataplex/DatascanDataDiscoverySpecStorageConfig:DatascanDataDiscoverySpecStorageConfig","description":"Configurations related to Cloud Storage as the data source.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/DatascanDataDiscoverySpecBigqueryPublishingConfig:DatascanDataDiscoverySpecBigqueryPublishingConfig":{"properties":{"connection":{"type":"string","description":"The BigQuery connection used to create BigLake tables. Must be in the form `projects/{projectId}/locations/{locationId}/connections/{connection_id}`.\n"},"location":{"type":"string","description":"The location of the BigQuery dataset to publish BigLake external or non-BigLake external tables to.\n"},"project":{"type":"string","description":"The project of the BigQuery dataset to publish BigLake external or non-BigLake external tables to. If not specified, the project of the Cloud Storage bucket will be used. The format is \"projects/{project_id_or_number}\".\n"},"tableType":{"type":"string","description":"Determines whether to publish discovered tables as BigLake external tables or non-BigLake external tables.\nPossible values are: `TABLE_TYPE_UNSPECIFIED`, `EXTERNAL`, `BIGLAKE`.\n"}},"type":"object"},"gcp:dataplex/DatascanDataDiscoverySpecStorageConfig:DatascanDataDiscoverySpecStorageConfig":{"properties":{"csvOptions":{"$ref":"#/types/gcp:dataplex/DatascanDataDiscoverySpecStorageConfigCsvOptions:DatascanDataDiscoverySpecStorageConfigCsvOptions","description":"Configuration for CSV data.\nStructure is documented below.\n"},"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Defines the data to exclude during discovery. Provide a list of patterns that identify the data to exclude. For Cloud Storage bucket assets, these patterns are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these patterns are interpreted as patterns to match table names.\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Defines the data to include during discovery when only a subset of the data should be considered. Provide a list of patterns that identify the data to include. For Cloud Storage bucket assets, these patterns are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these patterns are interpreted as patterns to match table names.\n"},"jsonOptions":{"$ref":"#/types/gcp:dataplex/DatascanDataDiscoverySpecStorageConfigJsonOptions:DatascanDataDiscoverySpecStorageConfigJsonOptions","description":"Configuration for JSON data.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/DatascanDataDiscoverySpecStorageConfigCsvOptions:DatascanDataDiscoverySpecStorageConfigCsvOptions":{"properties":{"delimiter":{"type":"string","description":"The delimiter that is used to separate values. The default is `,` (comma).\n"},"encoding":{"type":"string","description":"The character encoding of the data. The default is UTF-8.\n"},"headerRows":{"type":"integer","description":"The number of rows to interpret as header rows that should be skipped when reading data rows.\n"},"quote":{"type":"string","description":"The character used to quote column values. Accepts `\"` (double quotation mark) or `'` (single quotation mark). If unspecified, defaults to `\"` (double quotation mark).\n"},"typeInferenceDisabled":{"type":"boolean","description":"Whether to disable the inference of data types for CSV data. If true, all columns are registered as strings.\n"}},"type":"object"},"gcp:dataplex/DatascanDataDiscoverySpecStorageConfigJsonOptions:DatascanDataDiscoverySpecStorageConfigJsonOptions":{"properties":{"encoding":{"type":"string","description":"The character encoding of the data. The default is UTF-8.\n"},"typeInferenceDisabled":{"type":"boolean","description":"Whether to disable the inference of data types for JSON data. If true, all columns are registered as their primitive types (strings, number, or boolean).\n"}},"type":"object"},"gcp:dataplex/DatascanDataDocumentationSpec:DatascanDataDocumentationSpec":{"type":"object"},"gcp:dataplex/DatascanDataProfileSpec:DatascanDataProfileSpec":{"properties":{"catalogPublishingEnabled":{"type":"boolean","description":"If set, the latest DataScan job result will be published to Dataplex Catalog.\n"},"excludeFields":{"$ref":"#/types/gcp:dataplex/DatascanDataProfileSpecExcludeFields:DatascanDataProfileSpecExcludeFields","description":"The fields to exclude from data profile.\nIf specified, the fields will be excluded from data profile, regardless of \u003cspan pulumi-lang-nodejs=\"`includeFields`\" pulumi-lang-dotnet=\"`IncludeFields`\" pulumi-lang-go=\"`includeFields`\" pulumi-lang-python=\"`include_fields`\" pulumi-lang-yaml=\"`includeFields`\" pulumi-lang-java=\"`includeFields`\"\u003e`include_fields`\u003c/span\u003e value.\nStructure is documented below.\n"},"includeFields":{"$ref":"#/types/gcp:dataplex/DatascanDataProfileSpecIncludeFields:DatascanDataProfileSpecIncludeFields","description":"The fields to include in data profile.\nIf not specified, all fields at the time of profile scan job execution are included, except for ones listed in \u003cspan pulumi-lang-nodejs=\"`excludeFields`\" pulumi-lang-dotnet=\"`ExcludeFields`\" pulumi-lang-go=\"`excludeFields`\" pulumi-lang-python=\"`exclude_fields`\" pulumi-lang-yaml=\"`excludeFields`\" pulumi-lang-java=\"`excludeFields`\"\u003e`exclude_fields`\u003c/span\u003e.\nStructure is documented below.\n"},"postScanActions":{"$ref":"#/types/gcp:dataplex/DatascanDataProfileSpecPostScanActions:DatascanDataProfileSpecPostScanActions","description":"Actions to take upon job completion.\nStructure is documented below.\n"},"rowFilter":{"type":"string","description":"A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 \u003e= 0 AND col2 \u003c 10\n"},"samplingPercent":{"type":"number","description":"The percentage of the records to be selected from the dataset for DataScan.\nValue can range between 0.0 and 100.0 with up to 3 significant decimal digits.\nSampling is not applied if \u003cspan pulumi-lang-nodejs=\"`samplingPercent`\" pulumi-lang-dotnet=\"`SamplingPercent`\" pulumi-lang-go=\"`samplingPercent`\" pulumi-lang-python=\"`sampling_percent`\" pulumi-lang-yaml=\"`samplingPercent`\" pulumi-lang-java=\"`samplingPercent`\"\u003e`sampling_percent`\u003c/span\u003e is not specified, 0 or 100.\n"}},"type":"object"},"gcp:dataplex/DatascanDataProfileSpecExcludeFields:DatascanDataProfileSpecExcludeFields":{"properties":{"fieldNames":{"type":"array","items":{"type":"string"},"description":"Expected input is a list of fully qualified names of fields as in the schema.\nOnly top-level field names for nested fields are supported.\nFor instance, if 'x' is of nested field type, listing 'x' is supported but 'x.y.z' is not supported. Here 'y' and 'y.z' are nested fields of 'x'.\n"}},"type":"object"},"gcp:dataplex/DatascanDataProfileSpecIncludeFields:DatascanDataProfileSpecIncludeFields":{"properties":{"fieldNames":{"type":"array","items":{"type":"string"},"description":"Expected input is a list of fully qualified names of fields as in the schema.\nOnly top-level field names for nested fields are supported.\nFor instance, if 'x' is of nested field type, listing 'x' is supported but 'x.y.z' is not supported. Here 'y' and 'y.z' are nested fields of 'x'.\n"}},"type":"object"},"gcp:dataplex/DatascanDataProfileSpecPostScanActions:DatascanDataProfileSpecPostScanActions":{"properties":{"bigqueryExport":{"$ref":"#/types/gcp:dataplex/DatascanDataProfileSpecPostScanActionsBigqueryExport:DatascanDataProfileSpecPostScanActionsBigqueryExport","description":"If set, results will be exported to the provided BigQuery table.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/DatascanDataProfileSpecPostScanActionsBigqueryExport:DatascanDataProfileSpecPostScanActionsBigqueryExport":{"properties":{"resultsTable":{"type":"string","description":"The BigQuery table to export DataProfileScan results to.\nFormat://bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpec:DatascanDataQualitySpec":{"properties":{"catalogPublishingEnabled":{"type":"boolean","description":"If set, the latest DataScan job result will be published to Dataplex Catalog.\n"},"postScanActions":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActions:DatascanDataQualitySpecPostScanActions","description":"Actions to take upon job completion.\nStructure is documented below.\n"},"rowFilter":{"type":"string","description":"A filter applied to all rows in a single DataScan job. The filter needs to be a valid SQL expression for a WHERE clause in BigQuery standard SQL syntax. Example: col1 \u003e= 0 AND col2 \u003c 10\n"},"rules":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRule:DatascanDataQualitySpecRule"},"description":"The list of rules to evaluate against a data source. At least one rule is required.\nStructure is documented below.\n"},"samplingPercent":{"type":"number","description":"The percentage of the records to be selected from the dataset for DataScan.\nValue can range between 0.0 and 100.0 with up to 3 significant decimal digits.\nSampling is not applied if \u003cspan pulumi-lang-nodejs=\"`samplingPercent`\" pulumi-lang-dotnet=\"`SamplingPercent`\" pulumi-lang-go=\"`samplingPercent`\" pulumi-lang-python=\"`sampling_percent`\" pulumi-lang-yaml=\"`samplingPercent`\" pulumi-lang-java=\"`samplingPercent`\"\u003e`sampling_percent`\u003c/span\u003e is not specified, 0 or 100.\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpecPostScanActions:DatascanDataQualitySpecPostScanActions":{"properties":{"bigqueryExport":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActionsBigqueryExport:DatascanDataQualitySpecPostScanActionsBigqueryExport","description":"If set, results will be exported to the provided BigQuery table.\nStructure is documented below.\n"},"notificationReport":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReport:DatascanDataQualitySpecPostScanActionsNotificationReport","description":"The configuration of notification report post scan action.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpecPostScanActionsBigqueryExport:DatascanDataQualitySpecPostScanActionsBigqueryExport":{"properties":{"resultsTable":{"type":"string","description":"The BigQuery table to export DataProfileScan results to.\nFormat://bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReport:DatascanDataQualitySpecPostScanActionsNotificationReport":{"properties":{"jobEndTrigger":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportJobEndTrigger:DatascanDataQualitySpecPostScanActionsNotificationReportJobEndTrigger","description":"This trigger is triggered whenever a scan job run ends, regardless of the result.\n"},"jobFailureTrigger":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportJobFailureTrigger:DatascanDataQualitySpecPostScanActionsNotificationReportJobFailureTrigger","description":"This trigger is triggered when the scan job itself fails, regardless of the result.\n"},"recipients":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportRecipients:DatascanDataQualitySpecPostScanActionsNotificationReportRecipients","description":"The individuals or groups who are designated to receive notifications upon triggers.\nStructure is documented below.\n"},"scoreThresholdTrigger":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportScoreThresholdTrigger:DatascanDataQualitySpecPostScanActionsNotificationReportScoreThresholdTrigger","description":"This trigger is triggered when the DQ score in the job result is less than a specified input score.\nStructure is documented below.\n"}},"type":"object","required":["recipients"]},"gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportJobEndTrigger:DatascanDataQualitySpecPostScanActionsNotificationReportJobEndTrigger":{"type":"object"},"gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportJobFailureTrigger:DatascanDataQualitySpecPostScanActionsNotificationReportJobFailureTrigger":{"type":"object"},"gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportRecipients:DatascanDataQualitySpecPostScanActionsNotificationReportRecipients":{"properties":{"emails":{"type":"array","items":{"type":"string"},"description":"The email recipients who will receive the DataQualityScan results report.\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpecPostScanActionsNotificationReportScoreThresholdTrigger:DatascanDataQualitySpecPostScanActionsNotificationReportScoreThresholdTrigger":{"properties":{"scoreThreshold":{"type":"number","description":"The score range is in [0,100].\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpecRule:DatascanDataQualitySpecRule":{"properties":{"column":{"type":"string","description":"The unnested column which this rule is evaluated against.\n"},"description":{"type":"string","description":"Description of the rule.\nThe maximum length is 1,024 characters.\n"},"dimension":{"type":"string","description":"The dimension name a rule belongs to. Custom dimension name is supported with all uppercase letters and maximum length of 30 characters.\n"},"ignoreNull":{"type":"boolean","description":"Rows with null values will automatically fail a rule, unless ignoreNull is true. In that case, such null rows are trivially considered passing. Only applicable to ColumnMap rules.\n"},"name":{"type":"string","description":"A mutable name for the rule.\nThe name must contain only letters (a-z, A-Z), numbers (0-9), or hyphens (-).\nThe maximum length is 63 characters.\nMust start with a letter.\nMust end with a number or a letter.\n"},"nonNullExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleNonNullExpectation:DatascanDataQualitySpecRuleNonNullExpectation","description":"ColumnMap rule which evaluates whether each column value is null.\n"},"rangeExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleRangeExpectation:DatascanDataQualitySpecRuleRangeExpectation","description":"ColumnMap rule which evaluates whether each column value lies between a specified range.\nStructure is documented below.\n"},"regexExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleRegexExpectation:DatascanDataQualitySpecRuleRegexExpectation","description":"ColumnMap rule which evaluates whether each column value matches a specified regex.\nStructure is documented below.\n"},"rowConditionExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleRowConditionExpectation:DatascanDataQualitySpecRuleRowConditionExpectation","description":"Table rule which evaluates whether each row passes the specified condition.\nStructure is documented below.\n"},"setExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleSetExpectation:DatascanDataQualitySpecRuleSetExpectation","description":"ColumnMap rule which evaluates whether each column value is contained by a specified set.\nStructure is documented below.\n"},"sqlAssertion":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleSqlAssertion:DatascanDataQualitySpecRuleSqlAssertion","description":"Table rule which evaluates whether any row matches invalid state.\nStructure is documented below.\n"},"statisticRangeExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleStatisticRangeExpectation:DatascanDataQualitySpecRuleStatisticRangeExpectation","description":"ColumnAggregate rule which evaluates whether the column aggregate statistic lies between a specified range.\nStructure is documented below.\n"},"suspended":{"type":"boolean","description":"Whether the Rule is active or suspended. Default = false.\n"},"tableConditionExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleTableConditionExpectation:DatascanDataQualitySpecRuleTableConditionExpectation","description":"Table rule which evaluates whether the provided expression is true.\nStructure is documented below.\n"},"threshold":{"type":"number","description":"The minimum ratio of\u003cspan pulumi-lang-nodejs=\" passingRows \" pulumi-lang-dotnet=\" PassingRows \" pulumi-lang-go=\" passingRows \" pulumi-lang-python=\" passing_rows \" pulumi-lang-yaml=\" passingRows \" pulumi-lang-java=\" passingRows \"\u003e passing_rows \u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\" totalRows \" pulumi-lang-dotnet=\" TotalRows \" pulumi-lang-go=\" totalRows \" pulumi-lang-python=\" total_rows \" pulumi-lang-yaml=\" totalRows \" pulumi-lang-java=\" totalRows \"\u003e total_rows \u003c/span\u003erequired to pass this rule, with a range of [0.0, 1.0]. 0 indicates default value (i.e. 1.0).\n"},"uniquenessExpectation":{"$ref":"#/types/gcp:dataplex/DatascanDataQualitySpecRuleUniquenessExpectation:DatascanDataQualitySpecRuleUniquenessExpectation","description":"Row-level rule which evaluates whether each column value is unique.\n"}},"type":"object","required":["dimension"]},"gcp:dataplex/DatascanDataQualitySpecRuleNonNullExpectation:DatascanDataQualitySpecRuleNonNullExpectation":{"type":"object"},"gcp:dataplex/DatascanDataQualitySpecRuleRangeExpectation:DatascanDataQualitySpecRuleRangeExpectation":{"properties":{"maxValue":{"type":"string","description":"The maximum column value allowed for a row to pass this validation. At least one of minValue and maxValue need to be provided.\n"},"minValue":{"type":"string","description":"The minimum column value allowed for a row to pass this validation. At least one of minValue and maxValue need to be provided.\n"},"strictMaxEnabled":{"type":"boolean","description":"Whether each value needs to be strictly lesser than ('\u003c') the maximum, or if equality is allowed.\nOnly relevant if a maxValue has been defined. Default = false.\n"},"strictMinEnabled":{"type":"boolean","description":"Whether each value needs to be strictly greater than ('\u003e') the minimum, or if equality is allowed.\nOnly relevant if a minValue has been defined. Default = false.\n"}},"type":"object"},"gcp:dataplex/DatascanDataQualitySpecRuleRegexExpectation:DatascanDataQualitySpecRuleRegexExpectation":{"properties":{"regex":{"type":"string","description":"A regular expression the column value is expected to match.\n"}},"type":"object","required":["regex"]},"gcp:dataplex/DatascanDataQualitySpecRuleRowConditionExpectation:DatascanDataQualitySpecRuleRowConditionExpectation":{"properties":{"sqlExpression":{"type":"string","description":"The SQL expression.\n"}},"type":"object","required":["sqlExpression"]},"gcp:dataplex/DatascanDataQualitySpecRuleSetExpectation:DatascanDataQualitySpecRuleSetExpectation":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Expected values for the column value.\n"}},"type":"object","required":["values"]},"gcp:dataplex/DatascanDataQualitySpecRuleSqlAssertion:DatascanDataQualitySpecRuleSqlAssertion":{"properties":{"sqlStatement":{"type":"string","description":"The SQL statement.\n"}},"type":"object","required":["sqlStatement"]},"gcp:dataplex/DatascanDataQualitySpecRuleStatisticRangeExpectation:DatascanDataQualitySpecRuleStatisticRangeExpectation":{"properties":{"maxValue":{"type":"string","description":"The maximum column statistic value allowed for a row to pass this validation.\nAt least one of minValue and maxValue need to be provided.\n"},"minValue":{"type":"string","description":"The minimum column statistic value allowed for a row to pass this validation.\nAt least one of minValue and maxValue need to be provided.\n"},"statistic":{"type":"string","description":"column statistics.\nPossible values are: `STATISTIC_UNDEFINED`, `MEAN`, `MIN`, `MAX`.\n"},"strictMaxEnabled":{"type":"boolean","description":"Whether column statistic needs to be strictly lesser than ('\u003c') the maximum, or if equality is allowed.\nOnly relevant if a maxValue has been defined. Default = false.\n"},"strictMinEnabled":{"type":"boolean","description":"Whether column statistic needs to be strictly greater than ('\u003e') the minimum, or if equality is allowed.\nOnly relevant if a minValue has been defined. Default = false.\n"}},"type":"object","required":["statistic"]},"gcp:dataplex/DatascanDataQualitySpecRuleTableConditionExpectation:DatascanDataQualitySpecRuleTableConditionExpectation":{"properties":{"sqlExpression":{"type":"string","description":"The SQL expression.\n"}},"type":"object","required":["sqlExpression"]},"gcp:dataplex/DatascanDataQualitySpecRuleUniquenessExpectation:DatascanDataQualitySpecRuleUniquenessExpectation":{"type":"object"},"gcp:dataplex/DatascanExecutionSpec:DatascanExecutionSpec":{"properties":{"field":{"type":"string","description":"The unnested field (of type Date or Timestamp) that contains values which monotonically increase over time. If not specified, a data scan will run for all data in the table.\n","willReplaceOnChanges":true},"trigger":{"$ref":"#/types/gcp:dataplex/DatascanExecutionSpecTrigger:DatascanExecutionSpecTrigger","description":"Spec related to how often and when a scan should be triggered.\nStructure is documented below.\n"}},"type":"object","required":["trigger"]},"gcp:dataplex/DatascanExecutionSpecTrigger:DatascanExecutionSpecTrigger":{"properties":{"onDemand":{"$ref":"#/types/gcp:dataplex/DatascanExecutionSpecTriggerOnDemand:DatascanExecutionSpecTriggerOnDemand","description":"The scan runs once via dataScans.run API.\n"},"oneTime":{"$ref":"#/types/gcp:dataplex/DatascanExecutionSpecTriggerOneTime:DatascanExecutionSpecTriggerOneTime","description":"The scan runs once upon DataScan creation.\nStructure is documented below.\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/gcp:dataplex/DatascanExecutionSpecTriggerSchedule:DatascanExecutionSpecTriggerSchedule","description":"The scan is scheduled to run periodically.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/DatascanExecutionSpecTriggerOnDemand:DatascanExecutionSpecTriggerOnDemand":{"type":"object"},"gcp:dataplex/DatascanExecutionSpecTriggerOneTime:DatascanExecutionSpecTriggerOneTime":{"properties":{"ttlAfterScanCompletion":{"type":"string","description":"Time to live for the DataScan and its results after the one-time run completes. Accepts a string with a unit suffix 's' (e.g., '7200s'). Default is 24 hours. Ranges between 0 and 31536000 seconds (1 year).\n"}},"type":"object"},"gcp:dataplex/DatascanExecutionSpecTriggerSchedule:DatascanExecutionSpecTriggerSchedule":{"properties":{"cron":{"type":"string","description":"Cron schedule for running scans periodically. This field is required for Schedule scans.\n"}},"type":"object","required":["cron"]},"gcp:dataplex/DatascanExecutionStatus:DatascanExecutionStatus":{"properties":{"latestJobEndTime":{"type":"string","description":"(Output)\nThe time when the latest DataScanJob started.\n"},"latestJobStartTime":{"type":"string","description":"(Output)\nThe time when the latest DataScanJob ended.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["latestJobEndTime","latestJobStartTime"]}}},"gcp:dataplex/DatascanIamBindingCondition:DatascanIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/DatascanIamMemberCondition:DatascanIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/EntryAspect:EntryAspect":{"properties":{"aspect":{"$ref":"#/types/gcp:dataplex/EntryAspectAspect:EntryAspectAspect","description":"A nested object resource.\nStructure is documented below.\n"},"aspectKey":{"type":"string","description":"Depending on how the aspect is attached to the entry, the format of the aspect key can be one of the following:\nIf the aspect is attached directly to the entry: {project_number}.{locationId}.{aspectTypeId}\nIf the aspect is attached to an entry's path: {project_number}.{locationId}.{aspectTypeId}@{path}\n"}},"type":"object","required":["aspect","aspectKey"]},"gcp:dataplex/EntryAspectAspect:EntryAspectAspect":{"properties":{"aspectType":{"type":"string","description":"(Output)\nThe resource name of the type used to create this Aspect.\n"},"createTime":{"type":"string","description":"(Output)\nThe time when the Aspect was created.\n"},"data":{"type":"string","description":"The content of the aspect in JSON form, according to its aspect type schema. The maximum size of the field is 120KB (encoded as UTF-8).\n"},"path":{"type":"string","description":"(Output)\nThe path in the entry under which the aspect is attached.\n"},"updateTime":{"type":"string","description":"(Output)\nThe time when the Aspect was last modified.\n"}},"type":"object","required":["data"],"language":{"nodejs":{"requiredOutputs":["aspectType","createTime","data","path","updateTime"]}}},"gcp:dataplex/EntryEntrySource:EntryEntrySource":{"properties":{"ancestors":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/EntryEntrySourceAncestor:EntryEntrySourceAncestor"},"description":"Structure is documented below.\n","willReplaceOnChanges":true},"createTime":{"type":"string","description":"The time when the resource was created in the source system.\n"},"description":{"type":"string","description":"A description of the data resource. Maximum length is 2,000 characters.\n"},"displayName":{"type":"string","description":"A user-friendly display name. Maximum length is 500 characters.\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"User-defined labels. The maximum size of keys and values is 128 characters each.\nAn object containing a list of \"key\": value pairs. Example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n"},"location":{"type":"string","description":"(Output)\nLocation of the resource in the source system. You can search the entry by this location.\nBy default, this should match the location of the entry group containing this entry.\nA different value allows capturing the source location for data external to Google Cloud.\n"},"platform":{"type":"string","description":"The platform containing the source system. Maximum length is 64 characters.\n"},"resource":{"type":"string","description":"The name of the resource in the source system. Maximum length is 4,000 characters.\n"},"system":{"type":"string","description":"The name of the source system. Maximum length is 64 characters.\n"},"updateTime":{"type":"string","description":"The time when the resource was last updated in the source system.\nIf the entry exists in the system and its EntrySource has updateTime populated,\nfurther updates to the EntrySource of the entry must provide incremental updates to its updateTime.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["location"]}}},"gcp:dataplex/EntryEntrySourceAncestor:EntryEntrySourceAncestor":{"properties":{"name":{"type":"string","description":"The name of the ancestor resource.\n"},"type":{"type":"string","description":"The type of the ancestor resource.\n"}},"type":"object"},"gcp:dataplex/EntryGroupIamBindingCondition:EntryGroupIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/EntryGroupIamMemberCondition:EntryGroupIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/EntryLinkEntryReference:EntryLinkEntryReference":{"properties":{"name":{"type":"string","description":"The relative resource name of the referenced Entry, of the form:\nprojects/{project_id_or_number}/locations/{location_id}/entryGroups/{entry_group_id}/entries/{entry_id}\n","willReplaceOnChanges":true},"path":{"type":"string","description":"The path in the Entry that is referenced in the Entry Link.\nEmpty path denotes that the Entry itself is referenced in the Entry Link.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The reference type of the Entry.\nPossible values are: `SOURCE`, `TARGET`.\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"gcp:dataplex/EntryTypeIamBindingCondition:EntryTypeIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/EntryTypeIamMemberCondition:EntryTypeIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/EntryTypeRequiredAspect:EntryTypeRequiredAspect":{"properties":{"type":{"type":"string","description":"Required aspect type for the entry type.\n"}},"type":"object"},"gcp:dataplex/GlossaryIamBindingCondition:GlossaryIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/GlossaryIamMemberCondition:GlossaryIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/LakeAssetStatus:LakeAssetStatus":{"properties":{"activeAssets":{"type":"integer","description":"Number of active assets.\n"},"securityPolicyApplyingAssets":{"type":"integer","description":"Number of assets that are in process of updating the security policy on attached resources.\n"},"updateTime":{"type":"string","description":"Output only. The time when the lake was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["activeAssets","securityPolicyApplyingAssets","updateTime"]}}},"gcp:dataplex/LakeIamBindingCondition:LakeIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/LakeIamMemberCondition:LakeIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/LakeMetastore:LakeMetastore":{"properties":{"service":{"type":"string","description":"Optional. A relative reference to the Dataproc Metastore (https://cloud.google.com/dataproc-metastore/docs) service associated with the lake: `projects/{project_id}/locations/{location_id}/services/{service_id}`\n"}},"type":"object"},"gcp:dataplex/LakeMetastoreStatus:LakeMetastoreStatus":{"properties":{"endpoint":{"type":"string","description":"The URI of the endpoint used to access the Metastore service.\n"},"message":{"type":"string","description":"Additional information about the current status.\n"},"state":{"type":"string","description":"Output only. Current state of the lake. Possible values: STATE_UNSPECIFIED, ACTIVE, CREATING, DELETING, ACTION_REQUIRED\n"},"updateTime":{"type":"string","description":"Output only. The time when the lake was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpoint","message","state","updateTime"]}}},"gcp:dataplex/TaskExecutionSpec:TaskExecutionSpec":{"properties":{"args":{"type":"object","additionalProperties":{"type":"string"},"description":"The arguments to pass to the task. The args can use placeholders of the format ${placeholder} as part of key/value string. These will be interpolated before passing the args to the driver. Currently supported placeholders: - ${taskId} - ${job_time} To pass positional args, set the key as TASK_ARGS. The value should be a comma-separated string of all the positional arguments. To use a delimiter other than comma, refer to https://cloud.google.com/sdk/gcloud/reference/topic/escaping. In case of other keys being present in the args, then TASK_ARGS will be passed as the last argument. An object containing a list of 'key': value pairs. Example: { 'name': 'wrench', 'mass': '1.3kg', 'count': '3' }.\n"},"kmsKey":{"type":"string","description":"The Cloud KMS key to use for encryption, of the form: projects/{project_number}/locations/{locationId}/keyRings/{key-ring-name}/cryptoKeys/{key-name}.\n"},"maxJobExecutionLifetime":{"type":"string","description":"The maximum duration after which the job execution is expired. A duration in seconds with up to nine fractional digits, ending with 's'. Example: '3.5s'.\n"},"project":{"type":"string","description":"The project in which jobs are run. By default, the project containing the Lake is used. If a project is provided, the ExecutionSpec.service_account must belong to this project.\n"},"serviceAccount":{"type":"string","description":"Service account to use to execute a task. If not provided, the default Compute service account for the project is used.\n"}},"type":"object","required":["serviceAccount"]},"gcp:dataplex/TaskExecutionStatus:TaskExecutionStatus":{"properties":{"latestJobs":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/TaskExecutionStatusLatestJob:TaskExecutionStatusLatestJob"},"description":"(Output)\nlatest job execution.\nStructure is documented below.\n"},"updateTime":{"type":"string","description":"(Output)\nLast update time of the status.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["latestJobs","updateTime"]}}},"gcp:dataplex/TaskExecutionStatusLatestJob:TaskExecutionStatusLatestJob":{"properties":{"endTime":{"type":"string","description":"(Output)\nThe time when the job ended.\n"},"message":{"type":"string","description":"(Output)\nAdditional information about the current state.\n"},"name":{"type":"string","description":"(Output)\nThe relative resource name of the job, of the form: projects/{project_number}/locations/{locationId}/lakes/{lakeId}/tasks/{taskId}/jobs/{jobId}.\n"},"retryCount":{"type":"integer","description":"(Output)\nThe number of times the job has been retried (excluding the initial attempt).\n"},"service":{"type":"string","description":"(Output)\nThe underlying service running a job.\n"},"serviceJob":{"type":"string","description":"(Output)\nThe full resource name for the job run under a particular service.\n"},"startTime":{"type":"string","description":"(Output)\nThe time when the job was started.\n"},"state":{"type":"string","description":"(Output)\nExecution state for the job.\n"},"uid":{"type":"string","description":"(Output)\nSystem generated globally unique ID for the job.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endTime","message","name","retryCount","service","serviceJob","startTime","state","uid"]}}},"gcp:dataplex/TaskIamBindingCondition:TaskIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/TaskIamMemberCondition:TaskIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/TaskNotebook:TaskNotebook":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n"},"fileUris":{"type":"array","items":{"type":"string"},"description":"Cloud Storage URIs of files to be placed in the working directory of each executor.\n"},"infrastructureSpec":{"$ref":"#/types/gcp:dataplex/TaskNotebookInfrastructureSpec:TaskNotebookInfrastructureSpec","description":"Infrastructure specification for the execution.\nStructure is documented below.\n"},"notebook":{"type":"string","description":"Path to input notebook. This can be the Cloud Storage URI of the notebook file or the path to a Notebook Content. The execution args are accessible as environment variables (TASK_key=value).\n"}},"type":"object","required":["notebook"]},"gcp:dataplex/TaskNotebookInfrastructureSpec:TaskNotebookInfrastructureSpec":{"properties":{"batch":{"$ref":"#/types/gcp:dataplex/TaskNotebookInfrastructureSpecBatch:TaskNotebookInfrastructureSpecBatch","description":"Compute resources needed for a Task when using Dataproc Serverless.\nStructure is documented below.\n"},"containerImage":{"$ref":"#/types/gcp:dataplex/TaskNotebookInfrastructureSpecContainerImage:TaskNotebookInfrastructureSpecContainerImage","description":"Container Image Runtime Configuration.\nStructure is documented below.\n"},"vpcNetwork":{"$ref":"#/types/gcp:dataplex/TaskNotebookInfrastructureSpecVpcNetwork:TaskNotebookInfrastructureSpecVpcNetwork","description":"Vpc network.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/TaskNotebookInfrastructureSpecBatch:TaskNotebookInfrastructureSpecBatch":{"properties":{"executorsCount":{"type":"integer","description":"Total number of job executors. Executor Count should be between 2 and 100. [Default=2]\n"},"maxExecutorsCount":{"type":"integer","description":"Max configurable executors. If maxExecutorsCount \u003e executorsCount, then auto-scaling is enabled. Max Executor Count should be between 2 and 1000. [Default=1000]\n"}},"type":"object"},"gcp:dataplex/TaskNotebookInfrastructureSpecContainerImage:TaskNotebookInfrastructureSpecContainerImage":{"properties":{"image":{"type":"string","description":"Container image to use.\n"},"javaJars":{"type":"array","items":{"type":"string"},"description":"A list of Java JARS to add to the classpath. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Override to common configuration of open source components installed on the Dataproc cluster. The properties to set on daemon config files. Property keys are specified in prefix:property format, for example core:hadoop.tmp.dir. For more information, see Cluster properties.\n"},"pythonPackages":{"type":"array","items":{"type":"string"},"description":"A list of python packages to be installed. Valid formats include Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/my/path/to/lib.tar.gz\n"}},"type":"object"},"gcp:dataplex/TaskNotebookInfrastructureSpecVpcNetwork:TaskNotebookInfrastructureSpecVpcNetwork":{"properties":{"network":{"type":"string","description":"The Cloud VPC network in which the job is run. By default, the Cloud VPC network named Default within the project is used.\n"},"networkTags":{"type":"array","items":{"type":"string"},"description":"List of network tags to apply to the job.\n"},"subNetwork":{"type":"string","description":"The Cloud VPC sub-network in which the job is run.\n"}},"type":"object"},"gcp:dataplex/TaskSpark:TaskSpark":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"Cloud Storage URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n"},"fileUris":{"type":"array","items":{"type":"string"},"description":"Cloud Storage URIs of files to be placed in the working directory of each executor.\n"},"infrastructureSpec":{"$ref":"#/types/gcp:dataplex/TaskSparkInfrastructureSpec:TaskSparkInfrastructureSpec","description":"Infrastructure specification for the execution.\nStructure is documented below.\n"},"mainClass":{"type":"string","description":"The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in jar_file_uris. The execution args are passed in as a sequence of named process arguments (--key=value).\n"},"mainJarFileUri":{"type":"string","description":"The Cloud Storage URI of the jar file that contains the main class. The execution args are passed in as a sequence of named process arguments (--key=value).\n"},"pythonScriptFile":{"type":"string","description":"The Gcloud Storage URI of the main Python file to use as the driver. Must be a .py file. The execution args are passed in as a sequence of named process arguments (--key=value).\n"},"sqlScript":{"type":"string","description":"The query text. The execution args are used to declare a set of script variables (set key='value';).\n"},"sqlScriptFile":{"type":"string","description":"A reference to a query file. This can be the Cloud Storage URI of the query file or it can the path to a SqlScript Content. The execution args are used to declare a set of script variables (set key='value';).\n"}},"type":"object"},"gcp:dataplex/TaskSparkInfrastructureSpec:TaskSparkInfrastructureSpec":{"properties":{"batch":{"$ref":"#/types/gcp:dataplex/TaskSparkInfrastructureSpecBatch:TaskSparkInfrastructureSpecBatch","description":"Compute resources needed for a Task when using Dataproc Serverless.\nStructure is documented below.\n"},"containerImage":{"$ref":"#/types/gcp:dataplex/TaskSparkInfrastructureSpecContainerImage:TaskSparkInfrastructureSpecContainerImage","description":"Container Image Runtime Configuration.\nStructure is documented below.\n"},"vpcNetwork":{"$ref":"#/types/gcp:dataplex/TaskSparkInfrastructureSpecVpcNetwork:TaskSparkInfrastructureSpecVpcNetwork","description":"Vpc network.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataplex/TaskSparkInfrastructureSpecBatch:TaskSparkInfrastructureSpecBatch":{"properties":{"executorsCount":{"type":"integer","description":"Total number of job executors. Executor Count should be between 2 and 100. [Default=2]\n"},"maxExecutorsCount":{"type":"integer","description":"Max configurable executors. If maxExecutorsCount \u003e executorsCount, then auto-scaling is enabled. Max Executor Count should be between 2 and 1000. [Default=1000]\n"}},"type":"object"},"gcp:dataplex/TaskSparkInfrastructureSpecContainerImage:TaskSparkInfrastructureSpecContainerImage":{"properties":{"image":{"type":"string","description":"Container image to use.\n"},"javaJars":{"type":"array","items":{"type":"string"},"description":"A list of Java JARS to add to the classpath. Valid input includes Cloud Storage URIs to Jar binaries. For example, gs://bucket-name/my/path/to/file.jar\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Override to common configuration of open source components installed on the Dataproc cluster. The properties to set on daemon config files. Property keys are specified in prefix:property format, for example core:hadoop.tmp.dir. For more information, see Cluster properties.\n"},"pythonPackages":{"type":"array","items":{"type":"string"},"description":"A list of python packages to be installed. Valid formats include Cloud Storage URI to a PIP installable library. For example, gs://bucket-name/my/path/to/lib.tar.gz\n"}},"type":"object"},"gcp:dataplex/TaskSparkInfrastructureSpecVpcNetwork:TaskSparkInfrastructureSpecVpcNetwork":{"properties":{"network":{"type":"string","description":"The Cloud VPC network in which the job is run. By default, the Cloud VPC network named Default within the project is used.\n"},"networkTags":{"type":"array","items":{"type":"string"},"description":"List of network tags to apply to the job.\n"},"subNetwork":{"type":"string","description":"The Cloud VPC sub-network in which the job is run.\n"}},"type":"object"},"gcp:dataplex/TaskTriggerSpec:TaskTriggerSpec":{"properties":{"disabled":{"type":"boolean","description":"Prevent the task from executing. This does not cancel already running tasks. It is intended to temporarily disable RECURRING tasks.\n"},"maxRetries":{"type":"integer","description":"Number of retry attempts before aborting. Set to zero to never attempt to retry a failed task.\n"},"schedule":{"type":"string","description":"Cron schedule (https://en.wikipedia.org/wiki/Cron) for running tasks periodically. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: 'CRON_TZ=${IANA_TIME_ZONE}' or 'TZ=${IANA_TIME_ZONE}'. The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, CRON_TZ=America/New_York 1 * * * *, or TZ=America/New_York 1 * * * *. This field is required for RECURRING tasks.\n"},"startTime":{"type":"string","description":"The first run of the task will be after this time. If not specified, the task will run shortly after being submitted if ON_DEMAND and based on the schedule if RECURRING.\n"},"type":{"type":"string","description":"Trigger type of the user-specified Task\nPossible values are: `ON_DEMAND`, `RECURRING`.\n","willReplaceOnChanges":true}},"type":"object","required":["type"]},"gcp:dataplex/ZoneAssetStatus:ZoneAssetStatus":{"properties":{"activeAssets":{"type":"integer","description":"Number of active assets.\n"},"securityPolicyApplyingAssets":{"type":"integer","description":"Number of assets that are in process of updating the security policy on attached resources.\n"},"updateTime":{"type":"string","description":"Output only. The time when the zone was last updated.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["activeAssets","securityPolicyApplyingAssets","updateTime"]}}},"gcp:dataplex/ZoneDiscoverySpec:ZoneDiscoverySpec":{"properties":{"csvOptions":{"$ref":"#/types/gcp:dataplex/ZoneDiscoverySpecCsvOptions:ZoneDiscoverySpecCsvOptions","description":"Optional. Configuration for CSV data.\n"},"enabled":{"type":"boolean","description":"Required. Whether discovery is enabled.\n"},"excludePatterns":{"type":"array","items":{"type":"string"},"description":"Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.\n"},"includePatterns":{"type":"array","items":{"type":"string"},"description":"Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.\n"},"jsonOptions":{"$ref":"#/types/gcp:dataplex/ZoneDiscoverySpecJsonOptions:ZoneDiscoverySpecJsonOptions","description":"Optional. Configuration for Json data.\n"},"schedule":{"type":"string","description":"Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["csvOptions","enabled","jsonOptions","schedule"]}}},"gcp:dataplex/ZoneDiscoverySpecCsvOptions:ZoneDiscoverySpecCsvOptions":{"properties":{"delimiter":{"type":"string","description":"Optional. The delimiter being used to separate values. This defaults to ','.\n"},"disableTypeInference":{"type":"boolean","description":"Optional. Whether to disable the inference of data type for CSV data. If true, all columns will be registered as strings.\n"},"encoding":{"type":"string","description":"Optional. The character encoding of the data. The default is UTF-8.\n"},"headerRows":{"type":"integer","description":"Optional. The number of rows to interpret as header rows that should be skipped when reading data rows.\n"}},"type":"object"},"gcp:dataplex/ZoneDiscoverySpecJsonOptions:ZoneDiscoverySpecJsonOptions":{"properties":{"disableTypeInference":{"type":"boolean","description":"Optional. Whether to disable the inference of data type for Json data. If true, all columns will be registered as their primitive types (strings, number or boolean).\n"},"encoding":{"type":"string","description":"Optional. The character encoding of the data. The default is UTF-8.\n"}},"type":"object"},"gcp:dataplex/ZoneIamBindingCondition:ZoneIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/ZoneIamMemberCondition:ZoneIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataplex/ZoneResourceSpec:ZoneResourceSpec":{"properties":{"locationType":{"type":"string","description":"Required. Immutable. The location type of the resources that are allowed to be attached to the assets within this zone. Possible values: LOCATION_TYPE_UNSPECIFIED, SINGLE_REGION, MULTI_REGION\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["locationType"]},"gcp:dataplex/getDataQualityRulesRule:getDataQualityRulesRule":{"properties":{"column":{"type":"string","description":"The unnested column which this rule is evaluated against.\n"},"description":{"type":"string","description":"Description of the rule. (The maximum length is 1,024 characters.)\n"},"dimension":{"type":"string","description":"The dimension a rule belongs to. Supported dimensions are \"COMPLETENESS\", \"ACCURACY\", \"CONSISTENCY\", \"VALIDITY\", \"UNIQUENESS\", \"FRESHNESS\", \"VOLUME\"\n"},"ignoreNull":{"type":"boolean","description":"Rows with null values will automatically fail a rule, unless ignoreNull is true. In that case, such null rows are trivially considered passing. \n\t\t\t\t\t\t\t\t\t\t\tThis field is only valid for the following type of rules: RangeExpectation, RegexExpectation, SetExpectation, UniquenessExpectation\n"},"name":{"type":"string","description":"A mutable name for the rule. \n\t\t\t\t\t\t\t\t\t\t\tThe name must contain only letters (a-z, A-Z), numbers (0-9), or hyphens (-).\n\t\t\t\t\t\t\t\t\t\t\tThe maximum length is 63 characters.\n\t\t\t\t\t\t\t\t\t\t\tMust start with a letter.\n\t\t\t\t\t\t\t\t\t\t\tMust end with a number or a letter.\n"},"nonNullExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleNonNullExpectation:getDataQualityRulesRuleNonNullExpectation"},"description":"Row-level rule which evaluates whether each column value is null.\n"},"rangeExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleRangeExpectation:getDataQualityRulesRuleRangeExpectation"},"description":"Row-level rule which evaluates whether each column value lies between a specified range.\n"},"regexExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleRegexExpectation:getDataQualityRulesRuleRegexExpectation"},"description":"Row-level rule which evaluates whether each column value matches a specified regex.\n"},"rowConditionExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleRowConditionExpectation:getDataQualityRulesRuleRowConditionExpectation"},"description":"Row-level rule which evaluates whether each row in a table passes the specified condition.\n"},"setExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleSetExpectation:getDataQualityRulesRuleSetExpectation"},"description":"Row-level rule which evaluates whether each column value is contained by a specified set.\n"},"sqlAssertions":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleSqlAssertion:getDataQualityRulesRuleSqlAssertion"},"description":"Aggregate rule which evaluates the number of rows returned for the provided statement. If any rows are returned, this rule fails.\n"},"statisticRangeExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleStatisticRangeExpectation:getDataQualityRulesRuleStatisticRangeExpectation"},"description":"Aggregate rule which evaluates whether the column aggregate statistic lies between a specified range.\n"},"suspended":{"type":"boolean","description":"Whether the Rule is active or suspended. Default is false.\n"},"tableConditionExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleTableConditionExpectation:getDataQualityRulesRuleTableConditionExpectation"},"description":"Aggregate rule which evaluates whether the provided expression is true for a table.\n"},"threshold":{"type":"number","description":"The minimum ratio of\u003cspan pulumi-lang-nodejs=\" passingRows \" pulumi-lang-dotnet=\" PassingRows \" pulumi-lang-go=\" passingRows \" pulumi-lang-python=\" passing_rows \" pulumi-lang-yaml=\" passingRows \" pulumi-lang-java=\" passingRows \"\u003e passing_rows \u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\" totalRows \" pulumi-lang-dotnet=\" TotalRows \" pulumi-lang-go=\" totalRows \" pulumi-lang-python=\" total_rows \" pulumi-lang-yaml=\" totalRows \" pulumi-lang-java=\" totalRows \"\u003e total_rows \u003c/span\u003erequired to pass this rule, with a range of [0.0, 1.0]. 0 indicates default value (i.e. 1.0). This field is only valid for row-level type rules.\n"},"uniquenessExpectations":{"type":"array","items":{"$ref":"#/types/gcp:dataplex/getDataQualityRulesRuleUniquenessExpectation:getDataQualityRulesRuleUniquenessExpectation"},"description":"Row-level rule which evaluates whether each column value is unique.\n"}},"type":"object","required":["column","description","dimension","ignoreNull","name","nonNullExpectations","rangeExpectations","regexExpectations","rowConditionExpectations","setExpectations","sqlAssertions","statisticRangeExpectations","suspended","tableConditionExpectations","threshold","uniquenessExpectations"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleNonNullExpectation:getDataQualityRulesRuleNonNullExpectation":{"type":"object"},"gcp:dataplex/getDataQualityRulesRuleRangeExpectation:getDataQualityRulesRuleRangeExpectation":{"properties":{"maxValue":{"type":"string","description":"The maximum column value allowed for a row to pass this validation.\n"},"minValue":{"type":"string","description":"The minimum column value allowed for a row to pass this validation.\n"},"strictMaxEnabled":{"type":"boolean","description":"Whether each value needs to be strictly lesser than ('\u003c') the maximum, or if equality is allowed.\n"},"strictMinEnabled":{"type":"boolean","description":"Whether each value needs to be strictly greater than ('\u003e') the minimum, or if equality is allowed.\n"}},"type":"object","required":["maxValue","minValue","strictMaxEnabled","strictMinEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleRegexExpectation:getDataQualityRulesRuleRegexExpectation":{"properties":{"regex":{"type":"string","description":"A regular expression the column value is expected to match.\n"}},"type":"object","required":["regex"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleRowConditionExpectation:getDataQualityRulesRuleRowConditionExpectation":{"properties":{"sqlExpression":{"type":"string","description":"The SQL expression.\n"}},"type":"object","required":["sqlExpression"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleSetExpectation:getDataQualityRulesRuleSetExpectation":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Expected values for the column value.\n"}},"type":"object","required":["values"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleSqlAssertion:getDataQualityRulesRuleSqlAssertion":{"properties":{"sqlStatement":{"type":"string","description":"The SQL expression.\n"}},"type":"object","required":["sqlStatement"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleStatisticRangeExpectation:getDataQualityRulesRuleStatisticRangeExpectation":{"properties":{"maxValue":{"type":"string","description":"The maximum column value allowed for a row to pass this validation.\n"},"minValue":{"type":"string","description":"The minimum column value allowed for a row to pass this validation.\n"},"statistic":{"type":"string","description":"The list of aggregate metrics a rule can be evaluated against. \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPossible values: [\"STATISTIC_UNDEFINED\", \"MEAN\", \"MIN\", \"MAX\"]\n"},"strictMaxEnabled":{"type":"boolean","description":"Whether each value needs to be strictly lesser than ('\u003c') the maximum, or if equality is allowed.\n"},"strictMinEnabled":{"type":"boolean","description":"Whether each value needs to be strictly greater than ('\u003e') the minimum, or if equality is allowed.\n"}},"type":"object","required":["maxValue","minValue","statistic","strictMaxEnabled","strictMinEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleTableConditionExpectation:getDataQualityRulesRuleTableConditionExpectation":{"properties":{"sqlExpression":{"type":"string","description":"The SQL expression.\n"}},"type":"object","required":["sqlExpression"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataplex/getDataQualityRulesRuleUniquenessExpectation:getDataQualityRulesRuleUniquenessExpectation":{"type":"object"},"gcp:dataproc/AutoscalingPolicyBasicAlgorithm:AutoscalingPolicyBasicAlgorithm":{"properties":{"cooldownPeriod":{"type":"string","description":"Duration between scaling events. A scaling period starts after the\nupdate operation from the previous event has completed.\nBounds: [2m, 1d]. Default: 2m.\n"},"yarnConfig":{"$ref":"#/types/gcp:dataproc/AutoscalingPolicyBasicAlgorithmYarnConfig:AutoscalingPolicyBasicAlgorithmYarnConfig","description":"YARN autoscaling configuration.\nStructure is documented below.\n"}},"type":"object","required":["yarnConfig"]},"gcp:dataproc/AutoscalingPolicyBasicAlgorithmYarnConfig:AutoscalingPolicyBasicAlgorithmYarnConfig":{"properties":{"gracefulDecommissionTimeout":{"type":"string","description":"Timeout for YARN graceful decommissioning of Node Managers. Specifies the\nduration to wait for jobs to complete before forcefully removing workers\n(and potentially interrupting jobs). Only applicable to downscaling operations.\nBounds: [0s, 1d].\n"},"scaleDownFactor":{"type":"number","description":"Fraction of average pending memory in the last cooldown period for which to\nremove workers. A scale-down factor of 1 will result in scaling down so that there\nis no available memory remaining after the update (more aggressive scaling).\nA scale-down factor of 0 disables removing workers, which can be beneficial for\nautoscaling a single job.\nBounds: [0.0, 1.0].\n"},"scaleDownMinWorkerFraction":{"type":"number","description":"Minimum scale-down threshold as a fraction of total cluster size before scaling occurs.\nFor example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler must\nrecommend at least a 2 worker scale-down for the cluster to scale. A threshold of 0\nmeans the autoscaler will scale down on any recommended change.\nBounds: [0.0, 1.0]. Default: 0.0.\n"},"scaleUpFactor":{"type":"number","description":"Fraction of average pending memory in the last cooldown period for which to\nadd workers. A scale-up factor of 1.0 will result in scaling up so that there\nis no pending memory remaining after the update (more aggressive scaling).\nA scale-up factor closer to 0 will result in a smaller magnitude of scaling up\n(less aggressive scaling).\nBounds: [0.0, 1.0].\n"},"scaleUpMinWorkerFraction":{"type":"number","description":"Minimum scale-up threshold as a fraction of total cluster size before scaling\noccurs. For example, in a 20-worker cluster, a threshold of 0.1 means the autoscaler\nmust recommend at least a 2-worker scale-up for the cluster to scale. A threshold of\n0 means the autoscaler will scale up on any recommended change.\nBounds: [0.0, 1.0]. Default: 0.0.\n"}},"type":"object","required":["gracefulDecommissionTimeout","scaleDownFactor","scaleUpFactor"]},"gcp:dataproc/AutoscalingPolicyIamBindingCondition:AutoscalingPolicyIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/AutoscalingPolicyIamMemberCondition:AutoscalingPolicyIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/AutoscalingPolicySecondaryWorkerConfig:AutoscalingPolicySecondaryWorkerConfig":{"properties":{"maxInstances":{"type":"integer","description":"Maximum number of instances for this group. Note that by default, clusters will not use\nsecondary workers. Required for secondary workers if the minimum secondary instances is set.\nBounds: [minInstances, ). Defaults to 0.\n"},"minInstances":{"type":"integer","description":"Minimum number of instances for this group. Bounds: [0, maxInstances]. Defaults to 0.\n"},"weight":{"type":"integer","description":"Weight for the instance group, which is used to determine the fraction of total workers\nin the cluster from this instance group. For example, if primary workers have weight 2,\nand secondary workers have weight 1, the cluster will have approximately 2 primary workers\nfor each secondary worker.\nThe cluster may not reach the specified balance if constrained by min/max bounds or other\nautoscaling settings. For example, if maxInstances for secondary workers is 0, then only\nprimary workers will be added. The cluster can also be out of balance when created.\nIf weight is not set on any instance group, the cluster will default to equal weight for\nall groups: the cluster will attempt to maintain an equal number of workers in each group\nwithin the configured size bounds for each group. If weight is set for one group only,\nthe cluster will default to zero weight on the unset group. For example if weight is set\nonly on primary workers, the cluster will use primary workers only and no secondary workers.\n"}},"type":"object"},"gcp:dataproc/AutoscalingPolicyWorkerConfig:AutoscalingPolicyWorkerConfig":{"properties":{"maxInstances":{"type":"integer","description":"Maximum number of instances for this group.\n"},"minInstances":{"type":"integer","description":"Minimum number of instances for this group. Bounds: [2, maxInstances]. Defaults to 2.\n"},"weight":{"type":"integer","description":"Weight for the instance group, which is used to determine the fraction of total workers\nin the cluster from this instance group. For example, if primary workers have weight 2,\nand secondary workers have weight 1, the cluster will have approximately 2 primary workers\nfor each secondary worker.\nThe cluster may not reach the specified balance if constrained by min/max bounds or other\nautoscaling settings. For example, if maxInstances for secondary workers is 0, then only\nprimary workers will be added. The cluster can also be out of balance when created.\nIf weight is not set on any instance group, the cluster will default to equal weight for\nall groups: the cluster will attempt to maintain an equal number of workers in each group\nwithin the configured size bounds for each group. If weight is set for one group only,\nthe cluster will default to zero weight on the unset group. For example if weight is set\nonly on primary workers, the cluster will use primary workers only and no secondary workers.\n"}},"type":"object","required":["maxInstances"]},"gcp:dataproc/BatchEnvironmentConfig:BatchEnvironmentConfig":{"properties":{"executionConfig":{"$ref":"#/types/gcp:dataproc/BatchEnvironmentConfigExecutionConfig:BatchEnvironmentConfigExecutionConfig","description":"Execution configuration for a workload.\nStructure is documented below.\n","willReplaceOnChanges":true},"peripheralsConfig":{"$ref":"#/types/gcp:dataproc/BatchEnvironmentConfigPeripheralsConfig:BatchEnvironmentConfigPeripheralsConfig","description":"Peripherals configuration that workload has access to.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["peripheralsConfig"]}}},"gcp:dataproc/BatchEnvironmentConfigExecutionConfig:BatchEnvironmentConfigExecutionConfig":{"properties":{"authenticationConfig":{"$ref":"#/types/gcp:dataproc/BatchEnvironmentConfigExecutionConfigAuthenticationConfig:BatchEnvironmentConfigExecutionConfigAuthenticationConfig","description":"Authentication configuration for a workload is used to set the default identity for the workload execution.\nStructure is documented below.\n","willReplaceOnChanges":true},"kmsKey":{"type":"string","description":"The Cloud KMS key to use for encryption.\n","willReplaceOnChanges":true},"networkTags":{"type":"array","items":{"type":"string"},"description":"Tags used for network traffic control.\n","willReplaceOnChanges":true},"networkUri":{"type":"string","description":"Network configuration for workload execution.\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"Service account that used to execute workload.\n","willReplaceOnChanges":true},"stagingBucket":{"type":"string","description":"A Cloud Storage bucket used to stage workload dependencies, config files, and store\nworkload output and other ephemeral data, such as Spark history files. If you do not specify a staging bucket,\nCloud Dataproc will determine a Cloud Storage location according to the region where your workload is running,\nand then create and manage project-level, per-location staging and temporary buckets.\nThis field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket.\n","willReplaceOnChanges":true},"subnetworkUri":{"type":"string","description":"Subnetwork configuration for workload execution.\n","willReplaceOnChanges":true},"ttl":{"type":"string","description":"The duration after which the workload will be terminated.\nWhen the workload exceeds this duration, it will be unconditionally terminated without waiting for ongoing\nwork to finish. If ttl is not specified for a batch workload, the workload will be allowed to run until it\nexits naturally (or run forever without exiting). If ttl is not specified for an interactive session,\nit defaults to 24 hours. If ttl is not specified for a batch that uses 2.1+ runtime version, it defaults to 4 hours.\nMinimum value is 10 minutes; maximum value is 14 days. If both ttl and idleTtl are specified (for an interactive session),\nthe conditions are treated as OR conditions: the workload will be terminated when it has been idle for idleTtl or\nwhen ttl has been exceeded, whichever occurs first.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccount","ttl"]}}},"gcp:dataproc/BatchEnvironmentConfigExecutionConfigAuthenticationConfig:BatchEnvironmentConfigExecutionConfigAuthenticationConfig":{"properties":{"userWorkloadAuthenticationType":{"type":"string","description":"Authentication type for the user workload running in containers.\nPossible values are: `SERVICE_ACCOUNT`, `END_USER_CREDENTIALS`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchEnvironmentConfigPeripheralsConfig:BatchEnvironmentConfigPeripheralsConfig":{"properties":{"metastoreService":{"type":"string","description":"Resource name of an existing Dataproc Metastore service.\n","willReplaceOnChanges":true},"sparkHistoryServerConfig":{"$ref":"#/types/gcp:dataproc/BatchEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig:BatchEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig","description":"The Spark History Server configuration for the workload.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig:BatchEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig":{"properties":{"dataprocCluster":{"type":"string","description":"Resource name of an existing Dataproc Cluster to act as a Spark History Server for the workload.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchPysparkBatch:BatchPysparkBatch":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor.\nSupported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments that can be set as batch\nproperties, such as --conf, since a collision can occur that causes an incorrect batch submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.\n","willReplaceOnChanges":true},"mainPythonFileUri":{"type":"string","description":"The HCFS URI of the main Python file to use as the Spark driver. Must be a .py file.\n","willReplaceOnChanges":true},"pythonFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS file URIs of Python files to pass to the PySpark framework.\nSupported file types: .py, .egg, and .zip.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchRuntimeConfig:BatchRuntimeConfig":{"properties":{"autotuningConfig":{"$ref":"#/types/gcp:dataproc/BatchRuntimeConfigAutotuningConfig:BatchRuntimeConfigAutotuningConfig","description":"Optional. Autotuning configuration of the workload.\nStructure is documented below.\n","willReplaceOnChanges":true},"cohort":{"type":"string","description":"Optional. Cohort identifier. Identifies families of the workloads having the same shape, e.g. daily ETL jobs.\n","willReplaceOnChanges":true},"containerImage":{"type":"string","description":"Optional custom container image for the job runtime environment. If not specified, a default container image will be used.\n","willReplaceOnChanges":true},"effectiveProperties":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nA mapping of property names to values, which are used to configure workload execution.\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, which are used to configure workload execution.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"Version of the batch runtime.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["effectiveProperties","version"]}}},"gcp:dataproc/BatchRuntimeConfigAutotuningConfig:BatchRuntimeConfigAutotuningConfig":{"properties":{"scenarios":{"type":"array","items":{"type":"string"},"description":"Optional. Scenarios for which tunings are applied.\nEach value may be one of: `SCALING`, `BROADCAST_HASH_JOIN`, `MEMORY`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchRuntimeInfo:BatchRuntimeInfo":{"properties":{"approximateUsages":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/BatchRuntimeInfoApproximateUsage:BatchRuntimeInfoApproximateUsage"},"description":"(Output)\nApproximate workload resource usage, calculated when the workload completes(see [Dataproc Serverless pricing](https://cloud.google.com/dataproc-serverless/pricing))\nStructure is documented below.\n"},"currentUsages":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/BatchRuntimeInfoCurrentUsage:BatchRuntimeInfoCurrentUsage"},"description":"(Output)\nSnapshot of current workload resource usage(see [Dataproc Serverless pricing](https://cloud.google.com/dataproc-serverless/pricing))\nStructure is documented below.\n"},"diagnosticOutputUri":{"type":"string","description":"(Output)\nA URI pointing to the location of the diagnostics tarball.\n"},"endpoints":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nMap of remote access endpoints (such as web interfaces and APIs) to their URIs.\n"},"outputUri":{"type":"string","description":"(Output)\nA URI pointing to the location of the stdout and stderr of the workload.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["approximateUsages","currentUsages","diagnosticOutputUri","endpoints","outputUri"]}}},"gcp:dataproc/BatchRuntimeInfoApproximateUsage:BatchRuntimeInfoApproximateUsage":{"properties":{"acceleratorType":{"type":"string","description":"(Output)\nAccelerator type being used, if any.\n"},"milliAcceleratorSeconds":{"type":"string","description":"(Output)\nAccelerator usage in (milliAccelerator x seconds)\n"},"milliDcuSeconds":{"type":"string","description":"(Output)\nDCU (Dataproc Compute Units) usage in (milliDCU x seconds)\n"},"shuffleStorageGbSeconds":{"type":"string","description":"(Output)\nShuffle storage usage in (GB x seconds)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["acceleratorType","milliAcceleratorSeconds","milliDcuSeconds","shuffleStorageGbSeconds"]}}},"gcp:dataproc/BatchRuntimeInfoCurrentUsage:BatchRuntimeInfoCurrentUsage":{"properties":{"acceleratorType":{"type":"string","description":"(Output)\nAccelerator type being used, if any.\n"},"milliAccelerator":{"type":"string","description":"(Output)\nMilli (one-thousandth) accelerator..\n"},"milliDcu":{"type":"string","description":"(Output)\nMilli (one-thousandth) Dataproc Compute Units (DCUs).\n"},"milliDcuPremium":{"type":"string","description":"(Output)\nMilli (one-thousandth) Dataproc Compute Units (DCUs) charged at premium tier.\n"},"shuffleStorageGb":{"type":"string","description":"(Output)\nShuffle Storage in gigabytes (GB).\n"},"shuffleStorageGbPremium":{"type":"string","description":"(Output)\nShuffle Storage in gigabytes (GB) charged at premium tier.\n"},"snapshotTime":{"type":"string","description":"(Output)\nThe timestamp of the usage snapshot.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["acceleratorType","milliAccelerator","milliDcu","milliDcuPremium","shuffleStorageGb","shuffleStorageGbPremium","snapshotTime"]}}},"gcp:dataproc/BatchSparkBatch:BatchSparkBatch":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor.\nSupported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments that can be set as batch\nproperties, such as --conf, since a collision can occur that causes an incorrect batch submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.\n","willReplaceOnChanges":true},"mainClass":{"type":"string","description":"The name of the driver main class. The jar file that contains the class must be in the\nclasspath or specified in jarFileUris.\n","willReplaceOnChanges":true},"mainJarFileUri":{"type":"string","description":"The HCFS URI of the jar file that contains the main class.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchSparkRBatch:BatchSparkRBatch":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor.\nSupported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments that can be set as batch\nproperties, such as --conf, since a collision can occur that causes an incorrect batch submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor.\n","willReplaceOnChanges":true},"mainRFileUri":{"type":"string","description":"The HCFS URI of the main R file to use as the driver. Must be a .R or .r file.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchSparkSqlBatch:BatchSparkSqlBatch":{"properties":{"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to be added to the Spark CLASSPATH.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains Spark SQL queries to execute.\n","willReplaceOnChanges":true},"queryVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Spark SQL command: SET name=\"value\";).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/BatchStateHistory:BatchStateHistory":{"properties":{"state":{"type":"string","description":"(Output)\nThe state of the batch at this point in history. For possible values, see the [API documentation](https://cloud.google.com/dataproc-serverless/docs/reference/rest/v1/projects.locations.batches#State).\n"},"stateMessage":{"type":"string","description":"(Output)\nDetails about the state at this point in history.\n"},"stateStartTime":{"type":"string","description":"(Output)\nThe time when the batch entered the historical state.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["state","stateMessage","stateStartTime"]}}},"gcp:dataproc/ClusterClusterConfig:ClusterClusterConfig":{"properties":{"autoscalingConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigAutoscalingConfig:ClusterClusterConfigAutoscalingConfig","description":"The autoscaling policy config associated with the cluster.\nNote that once set, if \u003cspan pulumi-lang-nodejs=\"`autoscalingConfig`\" pulumi-lang-dotnet=\"`AutoscalingConfig`\" pulumi-lang-go=\"`autoscalingConfig`\" pulumi-lang-python=\"`autoscaling_config`\" pulumi-lang-yaml=\"`autoscalingConfig`\" pulumi-lang-java=\"`autoscalingConfig`\"\u003e`autoscaling_config`\u003c/span\u003e is the only field set in \u003cspan pulumi-lang-nodejs=\"`clusterConfig`\" pulumi-lang-dotnet=\"`ClusterConfig`\" pulumi-lang-go=\"`clusterConfig`\" pulumi-lang-python=\"`cluster_config`\" pulumi-lang-yaml=\"`clusterConfig`\" pulumi-lang-java=\"`clusterConfig`\"\u003e`cluster_config`\u003c/span\u003e, it can\nonly be removed by setting \u003cspan pulumi-lang-nodejs=\"`policyUri \" pulumi-lang-dotnet=\"`PolicyUri \" pulumi-lang-go=\"`policyUri \" pulumi-lang-python=\"`policy_uri \" pulumi-lang-yaml=\"`policyUri \" pulumi-lang-java=\"`policyUri \"\u003e`policy_uri \u003c/span\u003e= \"\"`, rather than removing the whole block.\nStructure defined below.\n"},"auxiliaryNodeGroups":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroup:ClusterClusterConfigAuxiliaryNodeGroup"},"description":"A Dataproc NodeGroup resource is a group of Dataproc cluster nodes that execute an assigned role. \nStructure defined below.\n"},"bucket":{"type":"string","description":"The name of the cloud storage bucket ultimately used to house the staging data\nfor the cluster. If \u003cspan pulumi-lang-nodejs=\"`stagingBucket`\" pulumi-lang-dotnet=\"`StagingBucket`\" pulumi-lang-go=\"`stagingBucket`\" pulumi-lang-python=\"`staging_bucket`\" pulumi-lang-yaml=\"`stagingBucket`\" pulumi-lang-java=\"`stagingBucket`\"\u003e`staging_bucket`\u003c/span\u003e is specified, it will contain this value, otherwise\nit will be the auto generated name.\n"},"clusterTier":{"type":"string","description":"The tier of the cluster.\n","willReplaceOnChanges":true},"dataprocMetricConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigDataprocMetricConfig:ClusterClusterConfigDataprocMetricConfig","description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified multiple times.\nStructure defined below.\n"},"encryptionConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigEncryptionConfig:ClusterClusterConfigEncryptionConfig","description":"The Customer managed encryption keys settings for the cluster.\nStructure defined below.\n"},"endpointConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigEndpointConfig:ClusterClusterConfigEndpointConfig","description":"The config settings for port access on the cluster.\nStructure defined below.\n"},"gceClusterConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigGceClusterConfig:ClusterClusterConfigGceClusterConfig","description":"Common config settings for resources of Google Compute Engine cluster\ninstances, applicable to all instances in the cluster. Structure defined below.\n"},"initializationActions":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigInitializationAction:ClusterClusterConfigInitializationAction"},"description":"Commands to execute on each node after config is completed.\nYou can specify multiple versions of these. Structure defined below.\n","willReplaceOnChanges":true},"lifecycleConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigLifecycleConfig:ClusterClusterConfigLifecycleConfig","description":"The settings for auto deletion cluster schedule.\nStructure defined below.\n"},"masterConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMasterConfig:ClusterClusterConfigMasterConfig","description":"The Google Compute Engine config settings for the master instances\nin a cluster. Structure defined below.\n"},"metastoreConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMetastoreConfig:ClusterClusterConfigMetastoreConfig","description":"The config setting for metastore service with the cluster.\nStructure defined below.\n- - -\n"},"preemptibleWorkerConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfig:ClusterClusterConfigPreemptibleWorkerConfig","description":"The Google Compute Engine config settings for the additional\ninstances in a cluster. Structure defined below.\n* **NOTE** : \u003cspan pulumi-lang-nodejs=\"`preemptibleWorkerConfig`\" pulumi-lang-dotnet=\"`PreemptibleWorkerConfig`\" pulumi-lang-go=\"`preemptibleWorkerConfig`\" pulumi-lang-python=\"`preemptible_worker_config`\" pulumi-lang-yaml=\"`preemptibleWorkerConfig`\" pulumi-lang-java=\"`preemptibleWorkerConfig`\"\u003e`preemptible_worker_config`\u003c/span\u003e is\nan alias for the api's [secondaryWorkerConfig](https://cloud.google.com/dataproc/docs/reference/rest/v1/ClusterConfig#InstanceGroupConfig). The name doesn't necessarily mean it is preemptible and is named as\nsuch for legacy/compatibility reasons.\n"},"securityConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigSecurityConfig:ClusterClusterConfigSecurityConfig","description":"Security related configuration. Structure defined below.\n"},"softwareConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigSoftwareConfig:ClusterClusterConfigSoftwareConfig","description":"The config settings for software inside the cluster.\nStructure defined below.\n"},"stagingBucket":{"type":"string","description":"The Cloud Storage staging bucket used to stage files,\nsuch as Hadoop jars, between client machines and the cluster.\nNote: If you don't explicitly specify a \u003cspan pulumi-lang-nodejs=\"`stagingBucket`\" pulumi-lang-dotnet=\"`StagingBucket`\" pulumi-lang-go=\"`stagingBucket`\" pulumi-lang-python=\"`staging_bucket`\" pulumi-lang-yaml=\"`stagingBucket`\" pulumi-lang-java=\"`stagingBucket`\"\u003e`staging_bucket`\u003c/span\u003e\nthen GCP will auto create / assign one for you. However, you are not guaranteed\nan auto generated bucket which is solely dedicated to your cluster; it may be shared\nwith other clusters in the same region/zone also choosing to use the auto generation\noption.\n","willReplaceOnChanges":true},"tempBucket":{"type":"string","description":"The Cloud Storage temp bucket used to store ephemeral cluster\nand jobs data, such as Spark and MapReduce history files.\nNote: If you don't explicitly specify a \u003cspan pulumi-lang-nodejs=\"`tempBucket`\" pulumi-lang-dotnet=\"`TempBucket`\" pulumi-lang-go=\"`tempBucket`\" pulumi-lang-python=\"`temp_bucket`\" pulumi-lang-yaml=\"`tempBucket`\" pulumi-lang-java=\"`tempBucket`\"\u003e`temp_bucket`\u003c/span\u003e then GCP will auto create / assign one for you.\n","willReplaceOnChanges":true},"workerConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigWorkerConfig:ClusterClusterConfigWorkerConfig","description":"The Google Compute Engine config settings for the worker instances\nin a cluster. Structure defined below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["auxiliaryNodeGroups","bucket","clusterTier","dataprocMetricConfig","endpointConfig","gceClusterConfig","masterConfig","preemptibleWorkerConfig","softwareConfig","tempBucket","workerConfig"]}}},"gcp:dataproc/ClusterClusterConfigAutoscalingConfig:ClusterClusterConfigAutoscalingConfig":{"properties":{"policyUri":{"type":"string","description":"The autoscaling policy used by the cluster.\n\nOnly resource names including projectid and location (region) are valid. Examples:\n\n`https://www.googleapis.com/compute/v1/projects/[projectId]/locations/\u003cspan pulumi-lang-nodejs=\"[dataprocRegion]\" pulumi-lang-dotnet=\"[DataprocRegion]\" pulumi-lang-go=\"[dataprocRegion]\" pulumi-lang-python=\"[dataproc_region]\" pulumi-lang-yaml=\"[dataprocRegion]\" pulumi-lang-java=\"[dataprocRegion]\"\u003e[dataproc_region]\u003c/span\u003e/autoscalingPolicies/\u003cspan pulumi-lang-nodejs=\"[policyId]\" pulumi-lang-dotnet=\"[PolicyId]\" pulumi-lang-go=\"[policyId]\" pulumi-lang-python=\"[policy_id]\" pulumi-lang-yaml=\"[policyId]\" pulumi-lang-java=\"[policyId]\"\u003e[policy_id]\u003c/span\u003e`\n`projects/[projectId]/locations/\u003cspan pulumi-lang-nodejs=\"[dataprocRegion]\" pulumi-lang-dotnet=\"[DataprocRegion]\" pulumi-lang-go=\"[dataprocRegion]\" pulumi-lang-python=\"[dataproc_region]\" pulumi-lang-yaml=\"[dataprocRegion]\" pulumi-lang-java=\"[dataprocRegion]\"\u003e[dataproc_region]\u003c/span\u003e/autoscalingPolicies/\u003cspan pulumi-lang-nodejs=\"[policyId]\" pulumi-lang-dotnet=\"[PolicyId]\" pulumi-lang-go=\"[policyId]\" pulumi-lang-python=\"[policy_id]\" pulumi-lang-yaml=\"[policyId]\" pulumi-lang-java=\"[policyId]\"\u003e[policy_id]\u003c/span\u003e`\nNote that the policy must be in the same project and Cloud Dataproc region.\n\n- - -\n"}},"type":"object","required":["policyUri"]},"gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroup:ClusterClusterConfigAuxiliaryNodeGroup":{"properties":{"nodeGroupId":{"type":"string","description":"A node group ID. Generated if not specified. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of from 3 to 33 characters.\n","willReplaceOnChanges":true},"nodeGroups":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroup:ClusterClusterConfigAuxiliaryNodeGroupNodeGroup"},"description":"Node group configuration.\n"}},"type":"object","required":["nodeGroups"],"language":{"nodejs":{"requiredOutputs":["nodeGroupId","nodeGroups"]}}},"gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroup:ClusterClusterConfigAuxiliaryNodeGroupNodeGroup":{"properties":{"name":{"type":"string","description":"The Node group resource name.\n"},"nodeGroupConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfig:ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfig","description":"The node group instance group configuration.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Node group roles. \nOne of `\"DRIVER\"`.\n","willReplaceOnChanges":true}},"type":"object","required":["roles"],"language":{"nodejs":{"requiredOutputs":["name","nodeGroupConfig","roles"]}}},"gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfig:ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfig":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigAccelerator:ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigAccelerator"},"description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified \nmultiple times.\n","willReplaceOnChanges":true},"diskConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigDiskConfig:ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigDiskConfig","description":"Disk Config\n"},"instanceNames":{"type":"array","items":{"type":"string"},"description":"List of auxiliary node group instance names which have been assigned to the cluster.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type\nto create for the node group. If not specified, GCP will default to a predetermined\ncomputed value (currently `n1-standard-4`).\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"The name of a minimum generation of CPU family\nfor the node group. If not specified, GCP will default to a predetermined computed value\nfor each zone. See [the guide](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)\nfor details about which CPU families are available (and defaulted) for each zone.\n","willReplaceOnChanges":true},"numInstances":{"type":"integer","description":"Specifies the number of master nodes to create.\nPlease set a number greater than 0. Node Group must have at least 1 instance.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskConfig","instanceNames","machineType","minCpuPlatform","numInstances"]}}},"gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigAccelerator:ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e.\n\n\n- - -\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["acceleratorCount","acceleratorType"]},"gcp:dataproc/ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigDiskConfig:ClusterClusterConfigAuxiliaryNodeGroupNodeGroupNodeGroupConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size of the primary disk attached to each node, specified\nin GB. The primary disk contains the boot volume and system libraries, and the\nsmallest allowed disk size is 10GB. GCP will default to a predetermined\ncomputed value if not set (currently 500GB). Note: If SSDs are not\nattached, it also contains the HDFS data blocks and Hadoop working directories.\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"The disk type of the primary disk attached to each node.\nOne of `\"pd-ssd\"` or `\"pd-standard\"`. Defaults to `\"pd-standard\"`.\n","willReplaceOnChanges":true},"localSsdInterface":{"type":"string","description":"Interface type of local SSDs (default is \"scsi\"). Valid values: \"scsi\" (Small Computer System Interface), \"nvme\" (Non-Volatile Memory Express).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"The amount of local SSD disks that will be attached to each master cluster node. \nDefaults to 0.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDiskSizeGb","numLocalSsds"]}}},"gcp:dataproc/ClusterClusterConfigDataprocMetricConfig:ClusterClusterConfigDataprocMetricConfig":{"properties":{"metrics":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigDataprocMetricConfigMetric:ClusterClusterConfigDataprocMetricConfigMetric"},"description":"Metrics sources to enable.\n"}},"type":"object","required":["metrics"]},"gcp:dataproc/ClusterClusterConfigDataprocMetricConfigMetric:ClusterClusterConfigDataprocMetricConfigMetric":{"properties":{"metricOverrides":{"type":"array","items":{"type":"string"},"description":"One or more [available OSS metrics] (https://cloud.google.com/dataproc/docs/guides/monitoring#available_oss_metrics) to collect for the metric course.\n\n- - -\n","willReplaceOnChanges":true},"metricSource":{"type":"string","description":"A source for the collection of Dataproc OSS metrics (see [available OSS metrics](https://cloud.google.com//dataproc/docs/guides/monitoring#available_oss_metrics)).\n","willReplaceOnChanges":true}},"type":"object","required":["metricSource"]},"gcp:dataproc/ClusterClusterConfigEncryptionConfig:ClusterClusterConfigEncryptionConfig":{"properties":{"kmsKeyName":{"type":"string","description":"The Cloud KMS key name to use for PD disk encryption for\nall instances in the cluster.\n\n- - -\n"}},"type":"object","required":["kmsKeyName"]},"gcp:dataproc/ClusterClusterConfigEndpointConfig:ClusterClusterConfigEndpointConfig":{"properties":{"enableHttpPortAccess":{"type":"boolean","description":"The flag to enable http access to specific ports\non the cluster from external sources (aka Component Gateway). Defaults to false.\n","willReplaceOnChanges":true},"httpPorts":{"type":"object","additionalProperties":{"type":"string"},"description":"The map of port descriptions to URLs. Will only be populated if\n\u003cspan pulumi-lang-nodejs=\"`enableHttpPortAccess`\" pulumi-lang-dotnet=\"`EnableHttpPortAccess`\" pulumi-lang-go=\"`enableHttpPortAccess`\" pulumi-lang-python=\"`enable_http_port_access`\" pulumi-lang-yaml=\"`enableHttpPortAccess`\" pulumi-lang-java=\"`enableHttpPortAccess`\"\u003e`enable_http_port_access`\u003c/span\u003e is true.\n"}},"type":"object","required":["enableHttpPortAccess"],"language":{"nodejs":{"requiredOutputs":["enableHttpPortAccess","httpPorts"]}}},"gcp:dataproc/ClusterClusterConfigGceClusterConfig:ClusterClusterConfigGceClusterConfig":{"properties":{"confidentialInstanceConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigGceClusterConfigConfidentialInstanceConfig:ClusterClusterConfigGceClusterConfigConfidentialInstanceConfig","description":"Confidential Instance Config for clusters using [Confidential VMs](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/confidential-compute)\n"},"internalIpOnly":{"type":"boolean","description":"By default, clusters are not restricted to internal IP addresses,\nand will have ephemeral external IP addresses assigned to each instance. If set to true, all\ninstances in the cluster will only have internal IP addresses. Note: Private Google Access\n(also known as `privateIpGoogleAccess`) must be enabled on the subnetwork that the cluster\nwill be launched in.\n","willReplaceOnChanges":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of the Compute Engine metadata entries to add to all instances\n(see [Project and instance metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata#project_and_instance_metadata)).\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the Google Compute Engine\nnetwork to the cluster will be part of. Conflicts with \u003cspan pulumi-lang-nodejs=\"`subnetwork`\" pulumi-lang-dotnet=\"`Subnetwork`\" pulumi-lang-go=\"`subnetwork`\" pulumi-lang-python=\"`subnetwork`\" pulumi-lang-yaml=\"`subnetwork`\" pulumi-lang-java=\"`subnetwork`\"\u003e`subnetwork`\u003c/span\u003e.\nIf neither is specified, this defaults to the \"default\" network.\n","willReplaceOnChanges":true},"nodeGroupAffinity":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigGceClusterConfigNodeGroupAffinity:ClusterClusterConfigGceClusterConfigNodeGroupAffinity","description":"Node Group Affinity for sole-tenant clusters.\n"},"reservationAffinity":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigGceClusterConfigReservationAffinity:ClusterClusterConfigGceClusterConfigReservationAffinity","description":"Reservation Affinity for consuming zonal reservation.\n"},"resourceManagerTags":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of resource manager tags to add to all instances.\nKeys must be in the format `tagKeys/{tag_key_id}` and values in the format `tagValues/{tag_value_id}`\n(see [Secure tags](https://cloud.google.com/dataproc/docs/guides/use-secure-tags)).\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"The service account to be used by the Node VMs.\nIf not specified, the \"default\" service account is used.\n","willReplaceOnChanges":true},"serviceAccountScopes":{"type":"array","items":{"type":"string"},"description":"The set of Google API scopes\nto be made available on all of the node VMs under the \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e\nspecified. 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","willReplaceOnChanges":true},"shieldedInstanceConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigGceClusterConfigShieldedInstanceConfig:ClusterClusterConfigGceClusterConfigShieldedInstanceConfig","description":"Shielded Instance Config for clusters using [Compute Engine Shielded VMs](https://cloud.google.com/security/shielded-cloud/shielded-vm).\n\n- - -\n"},"subnetwork":{"type":"string","description":"The name or\u003cspan pulumi-lang-nodejs=\" selfLink \" pulumi-lang-dotnet=\" SelfLink \" pulumi-lang-go=\" selfLink \" pulumi-lang-python=\" self_link \" pulumi-lang-yaml=\" selfLink \" pulumi-lang-java=\" selfLink \"\u003e self_link \u003c/span\u003eof the Google Compute Engine\nsubnetwork the cluster will be part of. Conflicts with \u003cspan pulumi-lang-nodejs=\"`network`\" pulumi-lang-dotnet=\"`Network`\" pulumi-lang-go=\"`network`\" pulumi-lang-python=\"`network`\" pulumi-lang-yaml=\"`network`\" pulumi-lang-java=\"`network`\"\u003e`network`\u003c/span\u003e.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of instance tags applied to instances in the cluster.\nTags are used to identify valid sources or targets for network firewalls.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"The GCP zone where your data is stored and used (i.e. where\nthe master and the worker nodes will be created in). If \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e is set to 'global' (default)\nthen \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e is mandatory, otherwise GCP is able to make use of [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/auto-zone)\nto determine this automatically for you.\nNote: This setting additionally determines and restricts\nwhich computing resources are available for use with other configs such as\n`cluster_config.master_config.machine_type` and `cluster_config.worker_config.machine_type`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["confidentialInstanceConfig","metadata","network","nodeGroupAffinity","reservationAffinity","resourceManagerTags","serviceAccountScopes","shieldedInstanceConfig","zone"]}}},"gcp:dataproc/ClusterClusterConfigGceClusterConfigConfidentialInstanceConfig:ClusterClusterConfigGceClusterConfigConfidentialInstanceConfig":{"properties":{"enableConfidentialCompute":{"type":"boolean","description":"Defines whether the instance should have confidential compute enabled.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterClusterConfigGceClusterConfigNodeGroupAffinity:ClusterClusterConfigGceClusterConfigNodeGroupAffinity":{"properties":{"nodeGroupUri":{"type":"string","description":"The URI of a sole-tenant node group resource that the cluster will be created on.\n","willReplaceOnChanges":true}},"type":"object","required":["nodeGroupUri"]},"gcp:dataproc/ClusterClusterConfigGceClusterConfigReservationAffinity:ClusterClusterConfigGceClusterConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"Corresponds to the type of reservation consumption.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"Corresponds to the label key of reservation resource.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"Corresponds to the label values of reservation resource.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterClusterConfigGceClusterConfigShieldedInstanceConfig:ClusterClusterConfigGceClusterConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines whether instances have integrity monitoring enabled.\n\n- - -\n","willReplaceOnChanges":true},"enableSecureBoot":{"type":"boolean","description":"Defines whether instances have Secure Boot enabled.\n","willReplaceOnChanges":true},"enableVtpm":{"type":"boolean","description":"Defines whether instances have the [vTPM](https://cloud.google.com/security/shielded-cloud/shielded-vm#vtpm) enabled.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterClusterConfigInitializationAction:ClusterClusterConfigInitializationAction":{"properties":{"script":{"type":"string","description":"The script to be executed during initialization of the cluster.\nThe script must be a GCS file with a gs:// prefix.\n","willReplaceOnChanges":true},"timeoutSec":{"type":"integer","description":"The maximum duration (in seconds) which \u003cspan pulumi-lang-nodejs=\"`script`\" pulumi-lang-dotnet=\"`Script`\" pulumi-lang-go=\"`script`\" pulumi-lang-python=\"`script`\" pulumi-lang-yaml=\"`script`\" pulumi-lang-java=\"`script`\"\u003e`script`\u003c/span\u003e is\nallowed to take to execute its action. GCP will default to a predetermined\ncomputed value if not set (currently 300).\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["script"]},"gcp:dataproc/ClusterClusterConfigLifecycleConfig:ClusterClusterConfigLifecycleConfig":{"properties":{"autoDeleteTime":{"type":"string","description":"The time when cluster will be auto-deleted.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.\nExample: \"2014-10-02T15:01:23.045123456Z\".\n"},"autoStopTime":{"type":"string","description":"The time when cluster will be auto-stopped.\nA timestamp in RFC3339 UTC \"Zulu\" format, accurate to nanoseconds.\nExample: \"2014-10-02T15:01:23.045123456Z\".\n\n- - -\n"},"idleDeleteTtl":{"type":"string","description":"The duration to keep the cluster alive while idling\n(no jobs running). After this TTL, the cluster will be deleted. Valid range: [10m, 14d].\n"},"idleStartTime":{"type":"string","description":"Time when the cluster became idle\n(most recent job finished) and became eligible for deletion due to idleness.\n"},"idleStopTtl":{"type":"string","description":"The duration to keep the cluster alive while idling\n(no jobs running). After this TTL, the cluster will be stopped. Valid range: [10m, 14d].\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["idleStartTime"]}}},"gcp:dataproc/ClusterClusterConfigMasterConfig:ClusterClusterConfigMasterConfig":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMasterConfigAccelerator:ClusterClusterConfigMasterConfigAccelerator"},"description":"The Compute Engine accelerator (GPU) configuration for these instances. Can be specified multiple times.\n","willReplaceOnChanges":true},"diskConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMasterConfigDiskConfig:ClusterClusterConfigMasterConfigDiskConfig","description":"Disk Config\n"},"imageUri":{"type":"string","description":"The URI for the image to use for this worker.  See [the guide](https://cloud.google.com/dataproc/docs/guides/dataproc-images)\nfor more information.\n","willReplaceOnChanges":true},"instanceFlexibilityPolicy":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMasterConfigInstanceFlexibilityPolicy:ClusterClusterConfigMasterConfigInstanceFlexibilityPolicy","description":"Instance flexibility Policy allowing a mixture of VM shapes.\n"},"instanceNames":{"type":"array","items":{"type":"string"},"description":"List of master instance names which\nhave been assigned to the cluster.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type\nto create for the master. If not specified, GCP will default to a predetermined\ncomputed value (currently `n1-standard-4`).\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"The name of a minimum generation of CPU family\nfor the master. If not specified, GCP will default to a predetermined computed value\nfor each zone. See [the guide](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)\nfor details about which CPU families are available (and defaulted) for each zone.\n","willReplaceOnChanges":true},"numInstances":{"type":"integer","description":"Specifies the number of master nodes to create.\nIf not specified, GCP will default to a predetermined computed value (currently 1).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskConfig","imageUri","instanceFlexibilityPolicy","instanceNames","machineType","minCpuPlatform","numInstances"]}}},"gcp:dataproc/ClusterClusterConfigMasterConfigAccelerator:ClusterClusterConfigMasterConfigAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e.\n\n\u003e The Cloud Dataproc API can return unintuitive error messages when using accelerators; even when you have defined an accelerator, Auto Zone Placement does not exclusively select\nzones that have that accelerator available. If you get a 400 error that the accelerator can't be found, this is a likely cause. Make sure you check [accelerator availability by zone](https://cloud.google.com/compute/docs/reference/rest/v1/acceleratorTypes/list)\nif you are trying to use accelerators in a given zone.\n\n- - -\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["acceleratorCount","acceleratorType"]},"gcp:dataproc/ClusterClusterConfigMasterConfigDiskConfig:ClusterClusterConfigMasterConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size of the primary disk attached to each node, specified\nin GB. The primary disk contains the boot volume and system libraries, and the\nsmallest allowed disk size is 10GB. GCP will default to a predetermined\ncomputed value if not set (currently 500GB). Note: If SSDs are not\nattached, it also contains the HDFS data blocks and Hadoop working directories.\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"The disk type of the primary disk attached to each node.\nOne of `\"pd-ssd\"` or `\"pd-standard\"`. Defaults to `\"pd-standard\"`.\n","willReplaceOnChanges":true},"localSsdInterface":{"type":"string","description":"Optional. Interface type of local SSDs (default is \"scsi\").\nValid values: \"scsi\" (Small Computer System Interface), \"nvme\" (Non-Volatile\nMemory Express). See\n[local SSD performance](https://cloud.google.com/compute/docs/disks/local-ssd#performance).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"The amount of local SSD disks that will be\nattached to each master cluster node. Defaults to 0.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDiskSizeGb","numLocalSsds"]}}},"gcp:dataproc/ClusterClusterConfigMasterConfigInstanceFlexibilityPolicy:ClusterClusterConfigMasterConfigInstanceFlexibilityPolicy":{"properties":{"instanceSelectionLists":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionList:ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionList"},"description":"List of instance selection options that the group will use when creating new VMs.\n","willReplaceOnChanges":true},"instanceSelectionResults":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionResult:ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionResult"},"description":"A list of instance selection results in the group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceSelectionLists","instanceSelectionResults"]}}},"gcp:dataproc/ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionList:ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionList":{"properties":{"machineTypes":{"type":"array","items":{"type":"string"},"description":"Full machine-type names, e.g. `\"n1-standard-16\"`.\n","willReplaceOnChanges":true},"rank":{"type":"integer","description":"Preference of this instance selection. A lower number means higher preference. Dataproc will first try to create a VM based on the machine-type with priority rank and fallback to next rank based on availability. Machine types and instance selections with the same priority have the same preference.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["machineTypes","rank"]}}},"gcp:dataproc/ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionResult:ClusterClusterConfigMasterConfigInstanceFlexibilityPolicyInstanceSelectionResult":{"properties":{"machineType":{"type":"string","description":"Full machine-type names, e.g. \"n1-standard-16\".\n"},"vmCount":{"type":"integer","description":"Number of VM provisioned with the machine_type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["machineType","vmCount"]}}},"gcp:dataproc/ClusterClusterConfigMetastoreConfig:ClusterClusterConfigMetastoreConfig":{"properties":{"dataprocMetastoreService":{"type":"string","description":"Resource name of an existing Dataproc Metastore service.\n\nOnly resource names including projectid and location (region) are valid. Examples:\n\n`projects/[projectId]/locations/\u003cspan pulumi-lang-nodejs=\"[dataprocRegion]\" pulumi-lang-dotnet=\"[DataprocRegion]\" pulumi-lang-go=\"[dataprocRegion]\" pulumi-lang-python=\"[dataproc_region]\" pulumi-lang-yaml=\"[dataprocRegion]\" pulumi-lang-java=\"[dataprocRegion]\"\u003e[dataproc_region]\u003c/span\u003e/services/[service-name]`\n","willReplaceOnChanges":true}},"type":"object","required":["dataprocMetastoreService"]},"gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfig:ClusterClusterConfigPreemptibleWorkerConfig":{"properties":{"diskConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigDiskConfig:ClusterClusterConfigPreemptibleWorkerConfigDiskConfig","description":"Disk Config\n"},"instanceFlexibilityPolicy":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicy:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicy","description":"Instance flexibility Policy allowing a mixture of VM shapes and provisioning models.\n"},"instanceNames":{"type":"array","items":{"type":"string"},"description":"List of preemptible instance names which have been assigned\nto the cluster.\n"},"numInstances":{"type":"integer","description":"Specifies the number of preemptible nodes to create.\nDefaults to 0.\n"},"preemptibility":{"type":"string","description":"Specifies the preemptibility of the secondary workers. The default value is `PREEMPTIBLE`\nAccepted values are:\n* PREEMPTIBILITY_UNSPECIFIED\n* NON_PREEMPTIBLE\n* PREEMPTIBLE\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskConfig","instanceFlexibilityPolicy","instanceNames","numInstances"]}}},"gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigDiskConfig:ClusterClusterConfigPreemptibleWorkerConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size of the primary disk attached to each preemptible worker node, specified\nin GB. The smallest allowed disk size is 10GB. GCP will default to a predetermined\ncomputed value if not set (currently 500GB). Note: If SSDs are not\nattached, it also contains the HDFS data blocks and Hadoop working directories.\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"The disk type of the primary disk attached to each preemptible worker node.\nOne of `\"pd-ssd\"` or `\"pd-standard\"`. Defaults to `\"pd-standard\"`.\n","willReplaceOnChanges":true},"localSsdInterface":{"type":"string","description":"Interface type of local SSDs (default is \"scsi\"). Valid values: \"scsi\" (Small Computer System Interface), \"nvme\" (Non-Volatile Memory Express).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"The amount of local SSD disks that will be\nattached to each preemptible worker node. Defaults to 0.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDiskSizeGb","numLocalSsds"]}}},"gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicy:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicy":{"properties":{"instanceSelectionLists":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList"},"description":"List of instance selection options that the group will use when creating new VMs.\n","willReplaceOnChanges":true},"instanceSelectionResults":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult"},"description":"A list of instance selection results in the group.\n"},"provisioningModelMix":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyProvisioningModelMix:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyProvisioningModelMix","description":"Defines how the Group selects the provisioning model to ensure required reliability.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceSelectionLists","instanceSelectionResults"]}}},"gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList":{"properties":{"machineTypes":{"type":"array","items":{"type":"string"},"description":"Full machine-type names, e.g. `\"n1-standard-16\"`.\n","willReplaceOnChanges":true},"rank":{"type":"integer","description":"Preference of this instance selection. A lower number means higher preference. Dataproc will first try to create a VM based on the machine-type with priority rank and fallback to next rank based on availability. Machine types and instance selections with the same priority have the same preference.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["machineTypes","rank"]}}},"gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult":{"properties":{"machineType":{"type":"string","description":"Full machine-type names, e.g. \"n1-standard-16\".\n"},"vmCount":{"type":"integer","description":"Number of VM provisioned with the machine_type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["machineType","vmCount"]}}},"gcp:dataproc/ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyProvisioningModelMix:ClusterClusterConfigPreemptibleWorkerConfigInstanceFlexibilityPolicyProvisioningModelMix":{"properties":{"standardCapacityBase":{"type":"integer","description":"The base capacity that will always use Standard VMs to avoid risk of more preemption than the minimum capacity you need. Dataproc will create only standard VMs until it reaches standardCapacityBase, then it will start using standardCapacityPercentAboveBase to mix Spot with Standard VMs. eg. If 15 instances are requested and standardCapacityBase is 5, Dataproc will create 5 standard VMs and then start mixing spot and standard VMs for remaining 10 instances.\n","willReplaceOnChanges":true},"standardCapacityPercentAboveBase":{"type":"integer","description":"The percentage of target capacity that should use Standard VM. The remaining percentage will use Spot VMs. The percentage applies only to the capacity above standardCapacityBase. eg. If 15 instances are requested and standardCapacityBase is 5 and standardCapacityPercentAboveBase is 30, Dataproc will create 5 standard VMs and then start mixing spot and standard VMs for remaining 10 instances. The mix will be 30% standard and 70% spot.\n- - -\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterClusterConfigSecurityConfig:ClusterClusterConfigSecurityConfig":{"properties":{"identityConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigSecurityConfigIdentityConfig:ClusterClusterConfigSecurityConfigIdentityConfig","description":"Identity Configuration. At least one of \u003cspan pulumi-lang-nodejs=\"`identityConfig`\" pulumi-lang-dotnet=\"`IdentityConfig`\" pulumi-lang-go=\"`identityConfig`\" pulumi-lang-python=\"`identity_config`\" pulumi-lang-yaml=\"`identityConfig`\" pulumi-lang-java=\"`identityConfig`\"\u003e`identity_config`\u003c/span\u003e\nor \u003cspan pulumi-lang-nodejs=\"`kerberosConfig`\" pulumi-lang-dotnet=\"`KerberosConfig`\" pulumi-lang-go=\"`kerberosConfig`\" pulumi-lang-python=\"`kerberos_config`\" pulumi-lang-yaml=\"`kerberosConfig`\" pulumi-lang-java=\"`kerberosConfig`\"\u003e`kerberos_config`\u003c/span\u003e is required.\n"},"kerberosConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigSecurityConfigKerberosConfig:ClusterClusterConfigSecurityConfigKerberosConfig","description":"Kerberos Configuration. At least one of \u003cspan pulumi-lang-nodejs=\"`identityConfig`\" pulumi-lang-dotnet=\"`IdentityConfig`\" pulumi-lang-go=\"`identityConfig`\" pulumi-lang-python=\"`identity_config`\" pulumi-lang-yaml=\"`identityConfig`\" pulumi-lang-java=\"`identityConfig`\"\u003e`identity_config`\u003c/span\u003e\nor \u003cspan pulumi-lang-nodejs=\"`kerberosConfig`\" pulumi-lang-dotnet=\"`KerberosConfig`\" pulumi-lang-go=\"`kerberosConfig`\" pulumi-lang-python=\"`kerberos_config`\" pulumi-lang-yaml=\"`kerberosConfig`\" pulumi-lang-java=\"`kerberosConfig`\"\u003e`kerberos_config`\u003c/span\u003e is required.\n"}},"type":"object"},"gcp:dataproc/ClusterClusterConfigSecurityConfigIdentityConfig:ClusterClusterConfigSecurityConfigIdentityConfig":{"properties":{"userServiceAccountMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"The end user to service account mappings\nin a service account based multi-tenant cluster\n\n- - -\n"}},"type":"object","required":["userServiceAccountMapping"]},"gcp:dataproc/ClusterClusterConfigSecurityConfigKerberosConfig:ClusterClusterConfigSecurityConfigKerberosConfig":{"properties":{"crossRealmTrustAdminServer":{"type":"string","description":"The admin server (IP or hostname) for the\nremote trusted realm in a cross realm trust relationship.\n"},"crossRealmTrustKdc":{"type":"string","description":"The KDC (IP or hostname) for the\nremote trusted realm in a cross realm trust relationship.\n"},"crossRealmTrustRealm":{"type":"string","description":"The remote realm the Dataproc on-cluster KDC will\ntrust, should the user enable cross realm trust.\n"},"crossRealmTrustSharedPasswordUri":{"type":"string","description":"The Cloud Storage URI of a KMS\nencrypted file containing the shared password between the on-cluster Kerberos realm\nand the remote trusted realm, in a cross realm trust relationship.\n"},"enableKerberos":{"type":"boolean","description":"Flag to indicate whether to Kerberize the cluster.\n"},"kdcDbKeyUri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing\nthe master key of the KDC database.\n"},"keyPasswordUri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing\nthe password to the user provided key. For the self-signed certificate, this password\nis generated by Dataproc.\n"},"keystorePasswordUri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing\nthe password to the user provided keystore. For the self-signed certificated, the password\nis generated by Dataproc.\n"},"keystoreUri":{"type":"string","description":"The Cloud Storage URI of the keystore file used for SSL encryption.\nIf not provided, Dataproc will provide a self-signed certificate.\n"},"kmsKeyUri":{"type":"string","description":"The URI of the KMS key used to encrypt various sensitive files.\n"},"realm":{"type":"string","description":"The name of the on-cluster Kerberos realm. If not specified, the\nuppercased domain of hostnames will be the realm.\n"},"rootPrincipalPasswordUri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file\ncontaining the root principal password.\n"},"tgtLifetimeHours":{"type":"integer","description":"The lifetime of the ticket granting ticket, in hours.\n"},"truststorePasswordUri":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file\ncontaining the password to the user provided truststore. For the self-signed\ncertificate, this password is generated by Dataproc.\n"},"truststoreUri":{"type":"string","description":"The Cloud Storage URI of the truststore file used for\nSSL encryption. If not provided, Dataproc will provide a self-signed certificate.\n"}},"type":"object","required":["kmsKeyUri","rootPrincipalPasswordUri"]},"gcp:dataproc/ClusterClusterConfigSoftwareConfig:ClusterClusterConfigSoftwareConfig":{"properties":{"imageVersion":{"type":"string","description":"The Cloud Dataproc image version to use\nfor the cluster - this controls the sets of software versions\ninstalled onto the nodes when you create clusters. If not specified, defaults to the\nlatest version. For a list of valid versions see\n[Cloud Dataproc versions](https://cloud.google.com/dataproc/docs/concepts/dataproc-versions)\n","willReplaceOnChanges":true},"optionalComponents":{"type":"array","items":{"type":"string"},"description":"The set of optional components to activate on the cluster. See [Available Optional Components](https://cloud.google.com/dataproc/docs/concepts/components/overview#available_optional_components).\n\n- - -\n"},"overrideProperties":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of override and additional properties (key/value pairs)\nused to modify various aspects of the common configuration files used when creating\na cluster. For a list of valid properties please see\n[Cluster properties](https://cloud.google.com/dataproc/docs/concepts/cluster-properties)\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of the properties used to set the daemon config files.\nThis will include any values supplied by the user via `cluster_config.software_config.override_properties`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["imageVersion","properties"]}}},"gcp:dataproc/ClusterClusterConfigWorkerConfig:ClusterClusterConfigWorkerConfig":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigWorkerConfigAccelerator:ClusterClusterConfigWorkerConfigAccelerator"},"description":"The Compute Engine accelerator configuration for these instances. Can be specified multiple times.\n","willReplaceOnChanges":true},"diskConfig":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigWorkerConfigDiskConfig:ClusterClusterConfigWorkerConfigDiskConfig","description":"Disk Config\n"},"imageUri":{"type":"string","description":"The URI for the image to use for this worker.  See [the guide](https://cloud.google.com/dataproc/docs/guides/dataproc-images)\nfor more information.\n","willReplaceOnChanges":true},"instanceFlexibilityPolicy":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicy:ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicy","description":"Instance flexibility Policy allowing a mixture of VM shapes.\n"},"instanceNames":{"type":"array","items":{"type":"string"},"description":"List of worker instance names which have been assigned\nto the cluster.\n"},"machineType":{"type":"string","description":"The name of a Google Compute Engine machine type\nto create for the worker nodes. If not specified, GCP will default to a predetermined\ncomputed value (currently `n1-standard-4`).\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"The name of a minimum generation of CPU family\nfor the master. If not specified, GCP will default to a predetermined computed value\nfor each zone. See [the guide](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)\nfor details about which CPU families are available (and defaulted) for each zone.\n","willReplaceOnChanges":true},"minNumInstances":{"type":"integer","description":"The minimum number of primary worker instances to create.  If \u003cspan pulumi-lang-nodejs=\"`minNumInstances`\" pulumi-lang-dotnet=\"`MinNumInstances`\" pulumi-lang-go=\"`minNumInstances`\" pulumi-lang-python=\"`min_num_instances`\" pulumi-lang-yaml=\"`minNumInstances`\" pulumi-lang-java=\"`minNumInstances`\"\u003e`min_num_instances`\u003c/span\u003e is set, cluster creation will succeed if the number of primary workers created is at least equal to the \u003cspan pulumi-lang-nodejs=\"`minNumInstances`\" pulumi-lang-dotnet=\"`MinNumInstances`\" pulumi-lang-go=\"`minNumInstances`\" pulumi-lang-python=\"`min_num_instances`\" pulumi-lang-yaml=\"`minNumInstances`\" pulumi-lang-java=\"`minNumInstances`\"\u003e`min_num_instances`\u003c/span\u003e number.\n"},"numInstances":{"type":"integer","description":"Specifies the number of worker nodes to create.\nIf not specified, GCP will default to a predetermined computed value (currently 2).\nThere is currently a beta feature which allows you to run a\n[Single Node Cluster](https://cloud.google.com/dataproc/docs/concepts/single-node-clusters).\nIn order to take advantage of this you need to set\n`\"dataproc:dataproc.allow.zero.workers\" = \"true\"` in\n`cluster_config.software_config.properties`\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskConfig","imageUri","instanceFlexibilityPolicy","instanceNames","machineType","minCpuPlatform","minNumInstances","numInstances"]}}},"gcp:dataproc/ClusterClusterConfigWorkerConfigAccelerator:ClusterClusterConfigWorkerConfigAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the accelerator cards of this type exposed to this instance. Often restricted to one of \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e.\n\n\u003e The Cloud Dataproc API can return unintuitive error messages when using accelerators; even when you have defined an accelerator, Auto Zone Placement does not exclusively select\nzones that have that accelerator available. If you get a 400 error that the accelerator can't be found, this is a likely cause. Make sure you check [accelerator availability by zone](https://cloud.google.com/compute/docs/reference/rest/v1/acceleratorTypes/list)\nif you are trying to use accelerators in a given zone.\n\n- - -\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"The short name of the accelerator type to expose to this instance. For example, `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object","required":["acceleratorCount","acceleratorType"]},"gcp:dataproc/ClusterClusterConfigWorkerConfigDiskConfig:ClusterClusterConfigWorkerConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size of the primary disk attached to each worker node, specified\nin GB. The smallest allowed disk size is 10GB. GCP will default to a predetermined\ncomputed value if not set (currently 500GB). Note: If SSDs are not\nattached, it also contains the HDFS data blocks and Hadoop working directories.\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"The disk type of the primary disk attached to each node.\nOne of `\"pd-ssd\"` or `\"pd-standard\"`. Defaults to `\"pd-standard\"`.\n","willReplaceOnChanges":true},"localSsdInterface":{"type":"string","description":"Interface type of local SSDs (default is \"scsi\"). Valid values: \"scsi\" (Small Computer System Interface), \"nvme\" (Non-Volatile Memory Express).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"The amount of local SSD disks that will be\nattached to each worker cluster node. Defaults to 0.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["bootDiskSizeGb","numLocalSsds"]}}},"gcp:dataproc/ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicy:ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicy":{"properties":{"instanceSelectionLists":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList:ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList"},"description":"List of instance selection options that the group will use when creating new VMs.\n","willReplaceOnChanges":true},"instanceSelectionResults":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult:ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult"},"description":"A list of instance selection results in the group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceSelectionLists","instanceSelectionResults"]}}},"gcp:dataproc/ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList:ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionList":{"properties":{"machineTypes":{"type":"array","items":{"type":"string"},"description":"Full machine-type names, e.g. `\"n1-standard-16\"`.\n","willReplaceOnChanges":true},"rank":{"type":"integer","description":"Preference of this instance selection. A lower number means higher preference. Dataproc will first try to create a VM based on the machine-type with priority rank and fallback to next rank based on availability. Machine types and instance selections with the same priority have the same preference.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["machineTypes","rank"]}}},"gcp:dataproc/ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult:ClusterClusterConfigWorkerConfigInstanceFlexibilityPolicyInstanceSelectionResult":{"properties":{"machineType":{"type":"string","description":"Full machine-type names, e.g. \"n1-standard-16\".\n"},"vmCount":{"type":"integer","description":"Number of VM provisioned with the machine_type.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["machineType","vmCount"]}}},"gcp:dataproc/ClusterIAMBindingCondition:ClusterIAMBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/ClusterIAMMemberCondition:ClusterIAMMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/ClusterVirtualClusterConfig:ClusterVirtualClusterConfig":{"properties":{"auxiliaryServicesConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigAuxiliaryServicesConfig:ClusterVirtualClusterConfigAuxiliaryServicesConfig","description":"Configuration of auxiliary services used by this cluster. \nStructure defined below.\n"},"kubernetesClusterConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfig:ClusterVirtualClusterConfigKubernetesClusterConfig","description":"The configuration for running the Dataproc cluster on Kubernetes.\nStructure defined below.\n- - -\n"},"stagingBucket":{"type":"string","description":"The Cloud Storage staging bucket used to stage files,\nsuch as Hadoop jars, between client machines and the cluster.\nNote: If you don't explicitly specify a \u003cspan pulumi-lang-nodejs=\"`stagingBucket`\" pulumi-lang-dotnet=\"`StagingBucket`\" pulumi-lang-go=\"`stagingBucket`\" pulumi-lang-python=\"`staging_bucket`\" pulumi-lang-yaml=\"`stagingBucket`\" pulumi-lang-java=\"`stagingBucket`\"\u003e`staging_bucket`\u003c/span\u003e\nthen GCP will auto create / assign one for you. However, you are not guaranteed\nan auto generated bucket which is solely dedicated to your cluster; it may be shared\nwith other clusters in the same region/zone also choosing to use the auto generation\noption.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["auxiliaryServicesConfig","kubernetesClusterConfig"]}}},"gcp:dataproc/ClusterVirtualClusterConfigAuxiliaryServicesConfig:ClusterVirtualClusterConfigAuxiliaryServicesConfig":{"properties":{"metastoreConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigAuxiliaryServicesConfigMetastoreConfig:ClusterVirtualClusterConfigAuxiliaryServicesConfigMetastoreConfig","description":"The Hive Metastore configuration for this workload.\n"},"sparkHistoryServerConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigAuxiliaryServicesConfigSparkHistoryServerConfig:ClusterVirtualClusterConfigAuxiliaryServicesConfigSparkHistoryServerConfig","description":"The Spark History Server configuration for the workload.\n"}},"type":"object"},"gcp:dataproc/ClusterVirtualClusterConfigAuxiliaryServicesConfigMetastoreConfig:ClusterVirtualClusterConfigAuxiliaryServicesConfigMetastoreConfig":{"properties":{"dataprocMetastoreService":{"type":"string","description":"Resource name of an existing Dataproc Metastore service.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterVirtualClusterConfigAuxiliaryServicesConfigSparkHistoryServerConfig:ClusterVirtualClusterConfigAuxiliaryServicesConfigSparkHistoryServerConfig":{"properties":{"dataprocCluster":{"type":"string","description":"Resource name of an existing Dataproc Cluster to act as a Spark History Server for the workload.\n- - -\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfig:ClusterVirtualClusterConfigKubernetesClusterConfig":{"properties":{"gkeClusterConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfig:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfig","description":"The configuration for running the Dataproc cluster on GKE.\n"},"kubernetesNamespace":{"type":"string","description":"A namespace within the Kubernetes cluster to deploy into. \nIf this namespace does not exist, it is created.\nIf it  exists, Dataproc verifies that another Dataproc VirtualCluster is not installed into it.\nIf not specified, the name of the Dataproc Cluster is used.\n","willReplaceOnChanges":true},"kubernetesSoftwareConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfig:ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfig","description":"The software configuration for this Dataproc cluster running on Kubernetes.\n"}},"type":"object","required":["gkeClusterConfig","kubernetesSoftwareConfig"]},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfig:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfig":{"properties":{"gkeClusterTarget":{"type":"string","description":"A target GKE cluster to deploy to. It must be in the same project and region as the Dataproc cluster \n(the GKE cluster can be zonal or regional)\n","willReplaceOnChanges":true},"nodePoolTargets":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTarget:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTarget"},"description":"GKE node pools where workloads will be scheduled. At least one node pool must be assigned the `DEFAULT` \nGkeNodePoolTarget.Role. If a GkeNodePoolTarget is not specified, Dataproc constructs a `DEFAULT` GkeNodePoolTarget.\nEach role can be given to only one GkeNodePoolTarget. All node pools must have the same location settings.\n"}},"type":"object"},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTarget:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTarget":{"properties":{"nodePool":{"type":"string","description":"The target GKE node pool.\n","willReplaceOnChanges":true},"nodePoolConfig":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfig:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfig","description":"The configuration for the GKE node pool. \nIf specified, Dataproc attempts to create a node pool with the specified shape.\nIf one with the same name already exists, it is verified against all specified fields.\nIf a field differs, the virtual cluster creation will fail.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"The roles associated with the GKE node pool. \nOne of `\"DEFAULT\"`, `\"CONTROLLER\"`, `\"SPARK_DRIVER\"` or `\"SPARK_EXECUTOR\"`.\n","willReplaceOnChanges":true}},"type":"object","required":["nodePool","roles"],"language":{"nodejs":{"requiredOutputs":["nodePool","nodePoolConfig","roles"]}}},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfig:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfig":{"properties":{"autoscaling":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigAutoscaling:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigAutoscaling","description":"The autoscaler configuration for this node pool. \nThe autoscaler is enabled only when a valid configuration is present.\n"},"config":{"$ref":"#/types/gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfig:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfig","description":"The node pool configuration.\n"},"locations":{"type":"array","items":{"type":"string"},"description":"The list of Compute Engine zones where node pool nodes associated \nwith a Dataproc on GKE virtual cluster will be located.\n- - -\n","willReplaceOnChanges":true}},"type":"object","required":["locations"],"language":{"nodejs":{"requiredOutputs":["autoscaling","config","locations"]}}},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigAutoscaling:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigAutoscaling":{"properties":{"maxNodeCount":{"type":"integer","description":"The maximum number of nodes in the node pool. Must be \u003e= minNodeCount, and must be \u003e 0.\n","willReplaceOnChanges":true},"minNodeCount":{"type":"integer","description":"The minimum number of nodes in the node pool. Must be \u003e= 0 and \u003c= maxNodeCount.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfig:ClusterVirtualClusterConfigKubernetesClusterConfigGkeClusterConfigNodePoolTargetNodePoolConfigConfig":{"properties":{"localSsdCount":{"type":"integer","description":"The number of local SSD disks to attach to the node, \nwhich is limited by the maximum number of disks allowable per zone.\n","willReplaceOnChanges":true},"machineType":{"type":"string","description":"The name of a Compute Engine machine type.\n","willReplaceOnChanges":true},"minCpuPlatform":{"type":"string","description":"Minimum CPU platform to be used by this instance. \nThe instance may be scheduled on the specified or a newer CPU platform.\nSpecify the friendly names of CPU platforms, such as \"Intel Haswell\" or \"Intel Sandy Bridge\".\n","willReplaceOnChanges":true},"preemptible":{"type":"boolean","description":"Whether the nodes are created as preemptible VM instances. \nPreemptible nodes cannot be used in a node pool with the CONTROLLER role or in the DEFAULT node pool if the\nCONTROLLER role is not assigned (the DEFAULT node pool will assume the CONTROLLER role).\n","willReplaceOnChanges":true},"spot":{"type":"boolean","description":"Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfig:ClusterVirtualClusterConfigKubernetesClusterConfigKubernetesSoftwareConfig":{"properties":{"componentVersion":{"type":"object","additionalProperties":{"type":"string"},"description":"The components that should be installed in this Dataproc cluster. The key must be a string from the   \nKubernetesComponent enumeration. The value is the version of the software to be installed. At least one entry must be specified.\n* **NOTE** : `component_version[SPARK]` is mandatory to set, or the creation of the cluster will fail.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"The properties to set on daemon config files. Property keys are specified in prefix:property format, \nfor example spark:spark.kubernetes.container.image.\n","willReplaceOnChanges":true}},"type":"object","required":["componentVersion"],"language":{"nodejs":{"requiredOutputs":["componentVersion","properties"]}}},"gcp:dataproc/GdcApplicationEnvironmentSparkApplicationEnvironmentConfig:GdcApplicationEnvironmentSparkApplicationEnvironmentConfig":{"properties":{"defaultProperties":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of default Spark properties to apply to workloads in this application environment. These defaults may be overridden by per-application properties.\n"},"defaultVersion":{"type":"string","description":"The default Dataproc version to use for applications submitted to this application environment\n"}},"type":"object"},"gcp:dataproc/GdcServiceInstanceGdceCluster:GdcServiceInstanceGdceCluster":{"properties":{"gdceCluster":{"type":"string","description":"Gdce cluster resource id.\n","willReplaceOnChanges":true}},"type":"object","required":["gdceCluster"]},"gcp:dataproc/GdcServiceInstanceSparkServiceInstanceConfig:GdcServiceInstanceSparkServiceInstanceConfig":{"type":"object"},"gcp:dataproc/GdcSparkApplicationPysparkApplicationConfig:GdcSparkApplicationPysparkApplicationConfig":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver.  Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.\n","willReplaceOnChanges":true},"mainPythonFileUri":{"type":"string","description":"The HCFS URI of the main Python file to use as the driver. Must be a .py file.\n","willReplaceOnChanges":true},"pythonFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.\n","willReplaceOnChanges":true}},"type":"object","required":["mainPythonFileUri"]},"gcp:dataproc/GdcSparkApplicationSparkApplicationConfig:GdcSparkApplicationSparkApplicationConfig":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: `.jar`, `.tar`, `.tar.gz`, `.tgz`, and `.zip`.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments that can be set as application properties, such as `--conf`, since a collision can occur that causes an incorrect application submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the classpath of the Spark driver and tasks.\n","willReplaceOnChanges":true},"mainClass":{"type":"string","description":"The name of the driver main class. The jar file that contains the class must be in the classpath or specified in \u003cspan pulumi-lang-nodejs=\"`jarFileUris`\" pulumi-lang-dotnet=\"`JarFileUris`\" pulumi-lang-go=\"`jarFileUris`\" pulumi-lang-python=\"`jar_file_uris`\" pulumi-lang-yaml=\"`jarFileUris`\" pulumi-lang-java=\"`jarFileUris`\"\u003e`jar_file_uris`\u003c/span\u003e.\n","willReplaceOnChanges":true},"mainJarFileUri":{"type":"string","description":"The HCFS URI of the jar file that contains the main class.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/GdcSparkApplicationSparkRApplicationConfig:GdcSparkApplicationSparkRApplicationConfig":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver.  Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"mainRFileUri":{"type":"string","description":"The HCFS URI of the main R file to use as the driver. Must be a .R file.\n","willReplaceOnChanges":true}},"type":"object","required":["mainRFileUri"]},"gcp:dataproc/GdcSparkApplicationSparkSqlApplicationConfig:GdcSparkApplicationSparkSqlApplicationConfig":{"properties":{"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to be added to the Spark CLASSPATH.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.\n","willReplaceOnChanges":true},"queryList":{"$ref":"#/types/gcp:dataproc/GdcSparkApplicationSparkSqlApplicationConfigQueryList:GdcSparkApplicationSparkSqlApplicationConfigQueryList","description":"Represents a list of queries.\nStructure is documented below.\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name=\"value\";`).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/GdcSparkApplicationSparkSqlApplicationConfigQueryList:GdcSparkApplicationSparkSqlApplicationConfigQueryList":{"properties":{"queries":{"type":"array","items":{"type":"string"},"description":"The queries to run.\n","willReplaceOnChanges":true}},"type":"object","required":["queries"]},"gcp:dataproc/JobHadoopConfig:JobHadoopConfig":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments, such as -libjars or -Dfoo=bar, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/JobHadoopConfigLoggingConfig:JobHadoopConfigLoggingConfig","description":"The runtime logging config of the job\n"},"mainClass":{"type":"string","description":"The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in \u003cspan pulumi-lang-nodejs=\"`jarFileUris`\" pulumi-lang-dotnet=\"`JarFileUris`\" pulumi-lang-go=\"`jarFileUris`\" pulumi-lang-python=\"`jar_file_uris`\" pulumi-lang-yaml=\"`jarFileUris`\" pulumi-lang-java=\"`jarFileUris`\"\u003e`jar_file_uris`\u003c/span\u003e. Conflicts with \u003cspan pulumi-lang-nodejs=\"`mainJarFileUri`\" pulumi-lang-dotnet=\"`MainJarFileUri`\" pulumi-lang-go=\"`mainJarFileUri`\" pulumi-lang-python=\"`main_jar_file_uri`\" pulumi-lang-yaml=\"`mainJarFileUri`\" pulumi-lang-java=\"`mainJarFileUri`\"\u003e`main_jar_file_uri`\u003c/span\u003e\n","willReplaceOnChanges":true},"mainJarFileUri":{"type":"string","description":"The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'. Conflicts with \u003cspan pulumi-lang-nodejs=\"`mainClass`\" pulumi-lang-dotnet=\"`MainClass`\" pulumi-lang-go=\"`mainClass`\" pulumi-lang-python=\"`main_class`\" pulumi-lang-yaml=\"`mainClass`\" pulumi-lang-java=\"`mainClass`\"\u003e`main_class`\u003c/span\u003e\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in `/etc/hadoop/conf/*-site` and classes in user code..\n\n* `logging_config.driver_log_levels`- (Required) The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["loggingConfig"]}}},"gcp:dataproc/JobHadoopConfigLoggingConfig:JobHadoopConfigLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.\n","willReplaceOnChanges":true}},"type":"object","required":["driverLogLevels"]},"gcp:dataproc/JobHiveConfig:JobHiveConfig":{"properties":{"continueOnFailure":{"type":"boolean","description":"Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. Defaults to false.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in `/etc/hadoop/conf/*-site.xml`, `/etc/hive/conf/hive-site.xml`, and classes in user code..\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"HCFS URI of file containing Hive script to execute as the job.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryList`\" pulumi-lang-dotnet=\"`QueryList`\" pulumi-lang-go=\"`queryList`\" pulumi-lang-python=\"`query_list`\" pulumi-lang-yaml=\"`queryList`\" pulumi-lang-java=\"`queryList`\"\u003e`query_list`\u003c/span\u003e\n","willReplaceOnChanges":true},"queryLists":{"type":"array","items":{"type":"string"},"description":"The list of Hive queries or statements to execute as part of the job.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryFileUri`\" pulumi-lang-dotnet=\"`QueryFileUri`\" pulumi-lang-go=\"`queryFileUri`\" pulumi-lang-python=\"`query_file_uri`\" pulumi-lang-yaml=\"`queryFileUri`\" pulumi-lang-java=\"`queryFileUri`\"\u003e`query_file_uri`\u003c/span\u003e\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Hive command: `SET name=\"value\";`).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/JobIAMBindingCondition:JobIAMBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/JobIAMMemberCondition:JobIAMMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/JobPigConfig:JobPigConfig":{"properties":{"continueOnFailure":{"type":"boolean","description":"Whether to continue executing queries if a query fails. The default value is false. Setting to true can be useful when executing independent parallel queries. Defaults to false.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.\n\n* `logging_config.driver_log_levels`- (Required) The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/JobPigConfigLoggingConfig:JobPigConfigLoggingConfig","description":"The runtime logging config of the job\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in `/etc/hadoop/conf/*-site.xml`, `/etc/pig/conf/pig.properties`, and classes in user code.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"HCFS URI of file containing Hive script to execute as the job.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryList`\" pulumi-lang-dotnet=\"`QueryList`\" pulumi-lang-go=\"`queryList`\" pulumi-lang-python=\"`query_list`\" pulumi-lang-yaml=\"`queryList`\" pulumi-lang-java=\"`queryList`\"\u003e`query_list`\u003c/span\u003e\n","willReplaceOnChanges":true},"queryLists":{"type":"array","items":{"type":"string"},"description":"The list of Hive queries or statements to execute as part of the job.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryFileUri`\" pulumi-lang-dotnet=\"`QueryFileUri`\" pulumi-lang-go=\"`queryFileUri`\" pulumi-lang-python=\"`query_file_uri`\" pulumi-lang-yaml=\"`queryFileUri`\" pulumi-lang-java=\"`queryFileUri`\"\u003e`query_file_uri`\u003c/span\u003e\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Pig command: `name=[value]`).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["loggingConfig"]}}},"gcp:dataproc/JobPigConfigLoggingConfig:JobPigConfigLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.\n","willReplaceOnChanges":true}},"type":"object","required":["driverLogLevels"]},"gcp:dataproc/JobPlacement:JobPlacement":{"properties":{"clusterName":{"type":"string","description":"The name of the cluster where the job will be submitted\n","willReplaceOnChanges":true},"clusterUuid":{"type":"string","description":"Output-only. A cluster UUID generated by the Cloud Dataproc service when the job is submitted\n"}},"type":"object","required":["clusterName"],"language":{"nodejs":{"requiredOutputs":["clusterName","clusterUuid"]}}},"gcp:dataproc/JobPrestoConfig:JobPrestoConfig":{"properties":{"clientTags":{"type":"array","items":{"type":"string"},"description":"Presto client tags to attach to this query.\n","willReplaceOnChanges":true},"continueOnFailure":{"type":"boolean","description":"Whether to continue executing queries if a query fails. Setting to true can be useful when executing independent parallel queries. Defaults to false.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/JobPrestoConfigLoggingConfig:JobPrestoConfigLoggingConfig","description":"The runtime logging config of the job\n"},"outputFormat":{"type":"string","description":"The format in which query output will be displayed. See the Presto documentation for supported output formats.\n\n* `logging_config.driver_log_levels`- (Required) The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values. Used to set Presto session properties Equivalent to using the --session flag in the Presto CLI.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryList`\" pulumi-lang-dotnet=\"`QueryList`\" pulumi-lang-go=\"`queryList`\" pulumi-lang-python=\"`query_list`\" pulumi-lang-yaml=\"`queryList`\" pulumi-lang-java=\"`queryList`\"\u003e`query_list`\u003c/span\u003e\n","willReplaceOnChanges":true},"queryLists":{"type":"array","items":{"type":"string"},"description":"The list of SQL queries or statements to execute as part of the job.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryFileUri`\" pulumi-lang-dotnet=\"`QueryFileUri`\" pulumi-lang-go=\"`queryFileUri`\" pulumi-lang-python=\"`query_file_uri`\" pulumi-lang-yaml=\"`queryFileUri`\" pulumi-lang-java=\"`queryFileUri`\"\u003e`query_file_uri`\u003c/span\u003e\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["loggingConfig"]}}},"gcp:dataproc/JobPrestoConfigLoggingConfig:JobPrestoConfigLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.\n","willReplaceOnChanges":true}},"type":"object","required":["driverLogLevels"]},"gcp:dataproc/JobPysparkConfig:JobPysparkConfig":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be copied to the working directory of Python drivers and distributed tasks. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/JobPysparkConfigLoggingConfig:JobPysparkConfigLoggingConfig","description":"The runtime logging config of the job\n"},"mainPythonFileUri":{"type":"string","description":"The HCFS URI of the main Python file to use as the driver. Must be a .py file.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in `/etc/spark/conf/spark-defaults.conf` and classes in user code.\n\n* `logging_config.driver_log_levels`- (Required) The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true},"pythonFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.\n","willReplaceOnChanges":true}},"type":"object","required":["mainPythonFileUri"],"language":{"nodejs":{"requiredOutputs":["loggingConfig","mainPythonFileUri"]}}},"gcp:dataproc/JobPysparkConfigLoggingConfig:JobPysparkConfigLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.\n","willReplaceOnChanges":true}},"type":"object","required":["driverLogLevels"]},"gcp:dataproc/JobReference:JobReference":{"properties":{"jobId":{"type":"string","description":"The job ID, which must be unique within the project. The job ID is generated by the server upon job submission or provided by the user as a means to perform retries without creating duplicate jobs\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["jobId"]}}},"gcp:dataproc/JobScheduling:JobScheduling":{"properties":{"maxFailuresPerHour":{"type":"integer","description":"Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.\n","willReplaceOnChanges":true},"maxFailuresTotal":{"type":"integer","description":"Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed.\n","willReplaceOnChanges":true}},"type":"object","required":["maxFailuresPerHour","maxFailuresTotal"]},"gcp:dataproc/JobSparkConfig:JobSparkConfig":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted in the working directory of .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be copied to the working directory of Spark drivers and distributed tasks. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/JobSparkConfigLoggingConfig:JobSparkConfigLoggingConfig","description":"The runtime logging config of the job\n"},"mainClass":{"type":"string","description":"The class containing the main method of the driver. Must be in a\nprovided jar or jar that is already on the classpath. Conflicts with \u003cspan pulumi-lang-nodejs=\"`mainJarFileUri`\" pulumi-lang-dotnet=\"`MainJarFileUri`\" pulumi-lang-go=\"`mainJarFileUri`\" pulumi-lang-python=\"`main_jar_file_uri`\" pulumi-lang-yaml=\"`mainJarFileUri`\" pulumi-lang-java=\"`mainJarFileUri`\"\u003e`main_jar_file_uri`\u003c/span\u003e\n","willReplaceOnChanges":true},"mainJarFileUri":{"type":"string","description":"The HCFS URI of jar file containing\nthe driver jar. Conflicts with \u003cspan pulumi-lang-nodejs=\"`mainClass`\" pulumi-lang-dotnet=\"`MainClass`\" pulumi-lang-go=\"`mainClass`\" pulumi-lang-python=\"`main_class`\" pulumi-lang-yaml=\"`mainClass`\" pulumi-lang-java=\"`mainClass`\"\u003e`main_class`\u003c/span\u003e\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Cloud Dataproc API may be overwritten. Can include properties set in `/etc/spark/conf/spark-defaults.conf` and classes in user code.\n\n* `logging_config.driver_log_levels`- (Required) The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["loggingConfig"]}}},"gcp:dataproc/JobSparkConfigLoggingConfig:JobSparkConfigLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.\n","willReplaceOnChanges":true}},"type":"object","required":["driverLogLevels"]},"gcp:dataproc/JobSparksqlConfig:JobSparksqlConfig":{"properties":{"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to be added to the Spark CLASSPATH.\n\n* `logging_config.driver_log_levels`- (Required) The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/JobSparksqlConfigLoggingConfig:JobSparksqlConfigLoggingConfig","description":"The runtime logging config of the job\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Cloud Dataproc API may be overwritten.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryList`\" pulumi-lang-dotnet=\"`QueryList`\" pulumi-lang-go=\"`queryList`\" pulumi-lang-python=\"`query_list`\" pulumi-lang-yaml=\"`queryList`\" pulumi-lang-java=\"`queryList`\"\u003e`query_list`\u003c/span\u003e\n","willReplaceOnChanges":true},"queryLists":{"type":"array","items":{"type":"string"},"description":"The list of SQL queries or statements to execute as part of the job.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`queryFileUri`\" pulumi-lang-dotnet=\"`QueryFileUri`\" pulumi-lang-go=\"`queryFileUri`\" pulumi-lang-python=\"`query_file_uri`\" pulumi-lang-yaml=\"`queryFileUri`\" pulumi-lang-java=\"`queryFileUri`\"\u003e`query_file_uri`\u003c/span\u003e\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Spark SQL command: `SET name=\"value\";`).\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["loggingConfig"]}}},"gcp:dataproc/JobSparksqlConfigLoggingConfig:JobSparksqlConfigLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. The per-package log levels for the driver. This may include 'root' package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'.\n","willReplaceOnChanges":true}},"type":"object","required":["driverLogLevels"]},"gcp:dataproc/JobStatus:JobStatus":{"properties":{"details":{"type":"string","description":"Optional job state details, such as an error description if the state is ERROR.\n"},"state":{"type":"string","description":"A state message specifying the overall job state.\n"},"stateStartTime":{"type":"string","description":"The time when this state was entered.\n"},"substate":{"type":"string","description":"Additional state information, which includes status reported by the agent.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["details","state","stateStartTime","substate"]}}},"gcp:dataproc/MetastoreDatabaseIamBindingCondition:MetastoreDatabaseIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreDatabaseIamMemberCondition:MetastoreDatabaseIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreFederationBackendMetastore:MetastoreFederationBackendMetastore":{"properties":{"metastoreType":{"type":"string","description":"The type of the backend metastore.\nPossible values are: `METASTORE_TYPE_UNSPECIFIED`, `DATAPROC_METASTORE`, `BIGQUERY`.\n"},"name":{"type":"string","description":"The relative resource name of the metastore that is being federated. The formats of the relative resource names for the currently supported metastores are listed below: Dataplex: projects/{projectId}/locations/{location}/lakes/{lake_id} BigQuery: projects/{projectId} Dataproc Metastore: projects/{projectId}/locations/{location}/services/{serviceId}\n"},"rank":{"type":"string","description":"The identifier for this object. Format specified above.\n"}},"type":"object","required":["metastoreType","name","rank"]},"gcp:dataproc/MetastoreFederationIamBindingCondition:MetastoreFederationIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreFederationIamMemberCondition:MetastoreFederationIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreServiceEncryptionConfig:MetastoreServiceEncryptionConfig":{"properties":{"kmsKey":{"type":"string","description":"The fully qualified customer provided Cloud KMS key name to use for customer data encryption.\nUse the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`\n","willReplaceOnChanges":true}},"type":"object","required":["kmsKey"]},"gcp:dataproc/MetastoreServiceHiveMetastoreConfig:MetastoreServiceHiveMetastoreConfig":{"properties":{"auxiliaryVersions":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/MetastoreServiceHiveMetastoreConfigAuxiliaryVersion:MetastoreServiceHiveMetastoreConfigAuxiliaryVersion"},"description":"A mapping of Hive metastore version to the auxiliary version configuration.\nWhen specified, a secondary Hive metastore service is created along with the primary service.\nAll auxiliary versions must be less than the service's primary version.\nThe key is the auxiliary service name and it must match the regular expression a-z?.\nThis means that the first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.\nStructure is documented below.\n"},"configOverrides":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml).\nThe mappings override system defaults (some keys cannot be overridden)\n"},"endpointProtocol":{"type":"string","description":"The protocol to use for the metastore service endpoint. If unspecified, defaults to `THRIFT`.\nDefault value is `THRIFT`.\nPossible values are: `THRIFT`, `GRPC`.\n","willReplaceOnChanges":true},"kerberosConfig":{"$ref":"#/types/gcp:dataproc/MetastoreServiceHiveMetastoreConfigKerberosConfig:MetastoreServiceHiveMetastoreConfigKerberosConfig","description":"Information used to configure the Hive metastore service as a service principal in a Kerberos realm.\nStructure is documented below.\n"},"version":{"type":"string","description":"The Hive metastore schema version.\n","willReplaceOnChanges":true}},"type":"object","required":["version"],"language":{"nodejs":{"requiredOutputs":["configOverrides","version"]}}},"gcp:dataproc/MetastoreServiceHiveMetastoreConfigAuxiliaryVersion:MetastoreServiceHiveMetastoreConfigAuxiliaryVersion":{"properties":{"configOverrides":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of Hive metastore configuration key-value pairs to apply to the auxiliary Hive metastore (configured in hive-site.xml) in addition to the primary version's overrides.\nIf keys are present in both the auxiliary version's overrides and the primary version's overrides, the value from the auxiliary version's overrides takes precedence.\n"},"key":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"version":{"type":"string","description":"The Hive metastore version of the auxiliary service. It must be less than the primary Hive metastore service's version.\n"}},"type":"object","required":["key","version"]},"gcp:dataproc/MetastoreServiceHiveMetastoreConfigKerberosConfig:MetastoreServiceHiveMetastoreConfigKerberosConfig":{"properties":{"keytab":{"$ref":"#/types/gcp:dataproc/MetastoreServiceHiveMetastoreConfigKerberosConfigKeytab:MetastoreServiceHiveMetastoreConfigKerberosConfigKeytab","description":"A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).\nStructure is documented below.\n"},"krb5ConfigGcsUri":{"type":"string","description":"A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.\n"},"principal":{"type":"string","description":"A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form \"primary/instance@REALM\", but there is no exact format.\n"}},"type":"object","required":["keytab","krb5ConfigGcsUri","principal"]},"gcp:dataproc/MetastoreServiceHiveMetastoreConfigKerberosConfigKeytab:MetastoreServiceHiveMetastoreConfigKerberosConfigKeytab":{"properties":{"cloudSecret":{"type":"string","description":"The relative resource name of a Secret Manager secret version, in the following form:\n\"projects/{projectNumber}/secrets/{secret_id}/versions/{version_id}\".\n"}},"type":"object","required":["cloudSecret"]},"gcp:dataproc/MetastoreServiceIamBindingCondition:MetastoreServiceIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreServiceIamMemberCondition:MetastoreServiceIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreServiceMaintenanceWindow:MetastoreServiceMaintenanceWindow":{"properties":{"dayOfWeek":{"type":"string","description":"The day of week, when the window starts.\nPossible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.\n"},"hourOfDay":{"type":"integer","description":"The hour of day (0-23) when the window starts.\n"}},"type":"object","required":["dayOfWeek","hourOfDay"]},"gcp:dataproc/MetastoreServiceMetadataIntegration:MetastoreServiceMetadataIntegration":{"properties":{"dataCatalogConfig":{"$ref":"#/types/gcp:dataproc/MetastoreServiceMetadataIntegrationDataCatalogConfig:MetastoreServiceMetadataIntegrationDataCatalogConfig","description":"The integration config for the Data Catalog service.\nStructure is documented below.\n"}},"type":"object","required":["dataCatalogConfig"]},"gcp:dataproc/MetastoreServiceMetadataIntegrationDataCatalogConfig:MetastoreServiceMetadataIntegrationDataCatalogConfig":{"properties":{"enabled":{"type":"boolean","description":"Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.\n"}},"type":"object","required":["enabled"]},"gcp:dataproc/MetastoreServiceNetworkConfig:MetastoreServiceNetworkConfig":{"properties":{"consumers":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/MetastoreServiceNetworkConfigConsumer:MetastoreServiceNetworkConfigConsumer"},"description":"The consumer-side network configuration for the Dataproc Metastore instance.\nStructure is documented below.\n","willReplaceOnChanges":true},"customRoutesEnabled":{"type":"boolean","description":"(Optional, Beta)\nEnables custom routes to be imported and exported for the Dataproc Metastore service's peered VPC network.\n"}},"type":"object","required":["consumers"]},"gcp:dataproc/MetastoreServiceNetworkConfigConsumer:MetastoreServiceNetworkConfigConsumer":{"properties":{"endpointUri":{"type":"string","description":"(Output)\nThe URI of the endpoint used to access the metastore service.\n"},"subnetwork":{"type":"string","description":"The subnetwork of the customer project from which an IP address is reserved and used as the Dataproc Metastore service's endpoint.\nIt is accessible to hosts in the subnet and to all hosts in a subnet in the same region and same network.\nThere must be at least one IP address available in the subnet's primary range. The subnet is specified in the following form:\n`projects/{projectNumber}/regions/{region_id}/subnetworks/{subnetwork_id}\n"}},"type":"object","required":["subnetwork"],"language":{"nodejs":{"requiredOutputs":["endpointUri","subnetwork"]}}},"gcp:dataproc/MetastoreServiceScalingConfig:MetastoreServiceScalingConfig":{"properties":{"autoscalingConfig":{"$ref":"#/types/gcp:dataproc/MetastoreServiceScalingConfigAutoscalingConfig:MetastoreServiceScalingConfigAutoscalingConfig","description":"Represents the autoscaling configuration of a metastore service.\nStructure is documented below.\n"},"instanceSize":{"type":"string","description":"Metastore instance sizes.\nPossible values are: `EXTRA_SMALL`, `SMALL`, `MEDIUM`, `LARGE`, `EXTRA_LARGE`.\n"},"scalingFactor":{"type":"number","description":"Scaling factor, in increments of 0.1 for values less than 1.0, and increments of 1.0 for values greater than 1.0.\n"}},"type":"object"},"gcp:dataproc/MetastoreServiceScalingConfigAutoscalingConfig:MetastoreServiceScalingConfigAutoscalingConfig":{"properties":{"autoscalingEnabled":{"type":"boolean","description":"Defines whether autoscaling is enabled. The default value is false.\n"},"autoscalingFactor":{"type":"number","description":"(Output)\nOutput only. The scaling factor of a service with autoscaling enabled.\n"},"limitConfig":{"$ref":"#/types/gcp:dataproc/MetastoreServiceScalingConfigAutoscalingConfigLimitConfig:MetastoreServiceScalingConfigAutoscalingConfigLimitConfig","description":"Represents the limit configuration of a metastore service.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["autoscalingFactor","limitConfig"]}}},"gcp:dataproc/MetastoreServiceScalingConfigAutoscalingConfigLimitConfig:MetastoreServiceScalingConfigAutoscalingConfigLimitConfig":{"properties":{"maxScalingFactor":{"type":"number","description":"The maximum scaling factor that the service will autoscale to. The default value is 6.0.\n"},"minScalingFactor":{"type":"number","description":"The minimum scaling factor that the service will autoscale to. The default value is 0.1.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxScalingFactor","minScalingFactor"]}}},"gcp:dataproc/MetastoreServiceScheduledBackup:MetastoreServiceScheduledBackup":{"properties":{"backupLocation":{"type":"string","description":"A Cloud Storage URI of a folder, in the format gs://\u003cbucket_name\u003e/\u003cpath_inside_bucket\u003e. A sub-folder \u003cbackup_folder\u003e containing backup files will be stored below it.\n"},"cronSchedule":{"type":"string","description":"The scheduled interval in Cron format, see https://en.wikipedia.org/wiki/Cron The default is empty: scheduled backup is not enabled. Must be specified to enable scheduled backups.\n"},"enabled":{"type":"boolean","description":"Defines whether the scheduled backup is enabled. The default value is false.\n"},"timeZone":{"type":"string","description":"Specifies the time zone to be used when interpreting cronSchedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. America/Los_Angeles or Africa/Abidjan. If left unspecified, the default is UTC.\n"}},"type":"object","required":["backupLocation"],"language":{"nodejs":{"requiredOutputs":["backupLocation","enabled","timeZone"]}}},"gcp:dataproc/MetastoreServiceTelemetryConfig:MetastoreServiceTelemetryConfig":{"properties":{"logFormat":{"type":"string","description":"The output format of the Dataproc Metastore service's logs.\nDefault value is `JSON`.\nPossible values are: `LEGACY`, `JSON`.\n"}},"type":"object"},"gcp:dataproc/MetastoreTableIamBindingCondition:MetastoreTableIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/MetastoreTableIamMemberCondition:MetastoreTableIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dataproc/SessionTemplateEnvironmentConfig:SessionTemplateEnvironmentConfig":{"properties":{"executionConfig":{"$ref":"#/types/gcp:dataproc/SessionTemplateEnvironmentConfigExecutionConfig:SessionTemplateEnvironmentConfigExecutionConfig","description":"Execution configuration for a workload.\nStructure is documented below.\n"},"peripheralsConfig":{"$ref":"#/types/gcp:dataproc/SessionTemplateEnvironmentConfigPeripheralsConfig:SessionTemplateEnvironmentConfigPeripheralsConfig","description":"Peripherals configuration that workload has access to.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["peripheralsConfig"]}}},"gcp:dataproc/SessionTemplateEnvironmentConfigExecutionConfig:SessionTemplateEnvironmentConfigExecutionConfig":{"properties":{"authenticationConfig":{"$ref":"#/types/gcp:dataproc/SessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig:SessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig","description":"Authentication configuration for a workload is used to set the default identity for the workload execution.\nStructure is documented below.\n"},"idleTtl":{"type":"string","description":"The duration to keep the session alive while it's idling.\nExceeding this threshold causes the session to terminate. Minimum value is 10 minutes; maximum value is 14 day.\nDefaults to 1 hour if not set. If both ttl and idleTtl are specified for an interactive session, the conditions\nare treated as OR conditions: the workload will be terminated when it has been idle for idleTtl or when ttl has\nbeen exceeded, whichever occurs first.\n"},"kmsKey":{"type":"string","description":"The Cloud KMS key to use for encryption.\n"},"networkTags":{"type":"array","items":{"type":"string"},"description":"Tags used for network traffic control.\n"},"serviceAccount":{"type":"string","description":"Service account that used to execute workload.\n"},"stagingBucket":{"type":"string","description":"A Cloud Storage bucket used to stage workload dependencies, config files, and store\nworkload output and other ephemeral data, such as Spark history files. If you do not specify a staging bucket,\nCloud Dataproc will determine a Cloud Storage location according to the region where your workload is running,\nand then create and manage project-level, per-location staging and temporary buckets.\nThis field requires a Cloud Storage bucket name, not a gs://... URI to a Cloud Storage bucket.\n"},"subnetworkUri":{"type":"string","description":"Subnetwork configuration for workload execution.\n"},"ttl":{"type":"string","description":"The duration after which the workload will be terminated.\nWhen the workload exceeds this duration, it will be unconditionally terminated without waiting for ongoing\nwork to finish. If ttl is not specified for a session workload, the workload will be allowed to run until it\nexits naturally (or run forever without exiting). If ttl is not specified for an interactive session,\nit defaults to 24 hours. If ttl is not specified for a batch that uses 2.1+ runtime version, it defaults to 4 hours.\nMinimum value is 10 minutes; maximum value is 14 days. If both ttl and idleTtl are specified (for an interactive session),\nthe conditions are treated as OR conditions: the workload will be terminated when it has been idle for idleTtl or\nwhen ttl has been exceeded, whichever occurs first.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccount","ttl"]}}},"gcp:dataproc/SessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig:SessionTemplateEnvironmentConfigExecutionConfigAuthenticationConfig":{"properties":{"userWorkloadAuthenticationType":{"type":"string","description":"Authentication type for the user workload running in containers.\nPossible values are: `SERVICE_ACCOUNT`, `END_USER_CREDENTIALS`.\n"}},"type":"object"},"gcp:dataproc/SessionTemplateEnvironmentConfigPeripheralsConfig:SessionTemplateEnvironmentConfigPeripheralsConfig":{"properties":{"metastoreService":{"type":"string","description":"Resource name of an existing Dataproc Metastore service.\n"},"sparkHistoryServerConfig":{"$ref":"#/types/gcp:dataproc/SessionTemplateEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig:SessionTemplateEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig","description":"The Spark History Server configuration for the workload.\nStructure is documented below.\n"}},"type":"object"},"gcp:dataproc/SessionTemplateEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig:SessionTemplateEnvironmentConfigPeripheralsConfigSparkHistoryServerConfig":{"properties":{"dataprocCluster":{"type":"string","description":"Resource name of an existing Dataproc Cluster to act as a Spark History Server for the workload.\n"}},"type":"object"},"gcp:dataproc/SessionTemplateJupyterSession:SessionTemplateJupyterSession":{"properties":{"displayName":{"type":"string","description":"Display name, shown in the Jupyter kernelspec card.\n"},"kernel":{"type":"string","description":"Kernel to be used with Jupyter interactive session.\nPossible values are: `PYTHON`, `SCALA`.\n"}},"type":"object"},"gcp:dataproc/SessionTemplateRuntimeConfig:SessionTemplateRuntimeConfig":{"properties":{"containerImage":{"type":"string","description":"Optional custom container image for the job runtime environment. If not specified, a default container image will be used.\n"},"effectiveProperties":{"type":"object","additionalProperties":{"type":"string"},"description":"(Output)\nA mapping of property names to values, which are used to configure workload execution.\n"},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, which are used to configure workload execution.\n"},"version":{"type":"string","description":"Version of the session runtime.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["effectiveProperties"]}}},"gcp:dataproc/SessionTemplateSparkConnectSession:SessionTemplateSparkConnectSession":{"type":"object"},"gcp:dataproc/WorkflowTemplateEncryptionConfig:WorkflowTemplateEncryptionConfig":{"properties":{"kmsKey":{"type":"string","description":"The Cloud KMS key name to use for encrypting workflow template [job arguments](https://docs.docs.cloud.google.com/dataproc/docs/concepts/workflows/use-workflows).\n\nWhen this this key is provided, the following workflow template job arguments, if present, are [CMEK encrypted](https://docs.cloud.google.com/dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_workflow_template_data):\n\n- [FlinkJob args](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob)\n- [HadoopJob args](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob)\n- [SparkJob args](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob)\n- [SparkRJob args](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob)\n- [PySparkJob args](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob)\n- [SparkSqlJob](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) scriptVariables and queryList.queries\n- [HiveJob](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) scriptVariables and queryList.queries\n- [PigJob](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) scriptVariables  and queryList.queries\n- [PrestoJob](https://docs.cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) scriptVariables and queryList.queries\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJob:WorkflowTemplateJob":{"properties":{"hadoopJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobHadoopJob:WorkflowTemplateJobHadoopJob","description":"Job is a Hadoop job.\n","willReplaceOnChanges":true},"hiveJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobHiveJob:WorkflowTemplateJobHiveJob","description":"Job is a Hive job.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels to associate with this job. Label keys must be between 1 and 63 characters long, and must conform to the following regular expression: {0,63} No more than 32 labels can be associated with a given job.\n","willReplaceOnChanges":true},"pigJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPigJob:WorkflowTemplateJobPigJob","description":"Job is a Pig job.\n","willReplaceOnChanges":true},"prerequisiteStepIds":{"type":"array","items":{"type":"string"},"description":"The optional list of prerequisite job step_ids. If not specified, the job will start at the beginning of workflow.\n","willReplaceOnChanges":true},"prestoJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPrestoJob:WorkflowTemplateJobPrestoJob","description":"Job is a Presto job.\n","willReplaceOnChanges":true},"pysparkJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPysparkJob:WorkflowTemplateJobPysparkJob","description":"Job is a PySpark job.\n","willReplaceOnChanges":true},"scheduling":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobScheduling:WorkflowTemplateJobScheduling","description":"Job scheduling configuration.\n","willReplaceOnChanges":true},"sparkJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkJob:WorkflowTemplateJobSparkJob","description":"Job is a Spark job.\n","willReplaceOnChanges":true},"sparkRJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkRJob:WorkflowTemplateJobSparkRJob","description":"Job is a SparkR job.\n","willReplaceOnChanges":true},"sparkSqlJob":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkSqlJob:WorkflowTemplateJobSparkSqlJob","description":"Job is a SparkSql job.\n","willReplaceOnChanges":true},"stepId":{"type":"string","description":"Required. The step id. The id must be unique among all jobs within the template. The step id is used as prefix for job id, as job `goog-dataproc-workflow-step-id` label, and in field from other steps. The id must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). Cannot begin or end with underscore or hyphen. Must consist of between 3 and 50 characters.\n","willReplaceOnChanges":true}},"type":"object","required":["stepId"]},"gcp:dataproc/WorkflowTemplateJobHadoopJob:WorkflowTemplateJobHadoopJob":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted in the working directory of Hadoop drivers and tasks. Supported file types: .jar, .tar, .tar.gz, .tgz, or .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments, such as `-libjars` or `-Dfoo=bar`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS (Hadoop Compatible Filesystem) URIs of files to be copied to the working directory of Hadoop drivers and distributed tasks. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"Jar file URIs to add to the CLASSPATHs of the Hadoop driver and tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobHadoopJobLoggingConfig:WorkflowTemplateJobHadoopJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"mainClass":{"type":"string","description":"The name of the driver's main class. The jar file containing the class must be in the default CLASSPATH or specified in \u003cspan pulumi-lang-nodejs=\"`jarFileUris`\" pulumi-lang-dotnet=\"`JarFileUris`\" pulumi-lang-go=\"`jarFileUris`\" pulumi-lang-python=\"`jar_file_uris`\" pulumi-lang-yaml=\"`jarFileUris`\" pulumi-lang-java=\"`jarFileUris`\"\u003e`jar_file_uris`\u003c/span\u003e.\n","willReplaceOnChanges":true},"mainJarFileUri":{"type":"string","description":"The HCFS URI of the jar file containing the main class. Examples: 'gs://foo-bucket/analytics-binaries/extract-useful-metrics-mr.jar' 'hdfs:/tmp/test-samples/custom-wordcount.jar' 'file:///home/usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar'\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Hadoop. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site and classes in user code.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobHadoopJobLoggingConfig:WorkflowTemplateJobHadoopJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobHiveJob:WorkflowTemplateJobHiveJob":{"properties":{"continueOnFailure":{"type":"boolean","description":"Whether to continue executing queries if a query fails. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Setting to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can be useful when executing independent parallel queries.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATH of the Hive server and Hadoop MapReduce (MR) tasks. Can contain Hive SerDes and UDFs.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names and values, used to configure Hive. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/hive/conf/hive-site.xml, and classes in user code.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains Hive queries.\n","willReplaceOnChanges":true},"queryList":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobHiveJobQueryList:WorkflowTemplateJobHiveJobQueryList","description":"A list of queries.\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Hive command: `SET name=\"value\";`).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobHiveJobQueryList:WorkflowTemplateJobHiveJobQueryList":{"properties":{"queries":{"type":"array","items":{"type":"string"},"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": } }\n","willReplaceOnChanges":true}},"type":"object","required":["queries"]},"gcp:dataproc/WorkflowTemplateJobPigJob:WorkflowTemplateJobPigJob":{"properties":{"continueOnFailure":{"type":"boolean","description":"Whether to continue executing queries if a query fails. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Setting to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can be useful when executing independent parallel queries.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATH of the Pig Client and Hadoop MapReduce (MR) tasks. Can contain Pig UDFs.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPigJobLoggingConfig:WorkflowTemplateJobPigJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Pig. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/hadoop/conf/*-site.xml, /etc/pig/conf/pig.properties, and classes in user code.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains the Pig queries.\n","willReplaceOnChanges":true},"queryList":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPigJobQueryList:WorkflowTemplateJobPigJobQueryList","description":"A list of queries.\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Pig command: `name=`).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobPigJobLoggingConfig:WorkflowTemplateJobPigJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobPigJobQueryList:WorkflowTemplateJobPigJobQueryList":{"properties":{"queries":{"type":"array","items":{"type":"string"},"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": } }\n","willReplaceOnChanges":true}},"type":"object","required":["queries"]},"gcp:dataproc/WorkflowTemplateJobPrestoJob:WorkflowTemplateJobPrestoJob":{"properties":{"clientTags":{"type":"array","items":{"type":"string"},"description":"Presto client tags to attach to this query\n","willReplaceOnChanges":true},"continueOnFailure":{"type":"boolean","description":"Whether to continue executing queries if a query fails. The default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Setting to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e can be useful when executing independent parallel queries.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPrestoJobLoggingConfig:WorkflowTemplateJobPrestoJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"outputFormat":{"type":"string","description":"The format in which query output will be displayed. See the Presto documentation for supported output formats\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values. Used to set Presto (https://prestodb.io/docs/current/sql/set-session.html) Equivalent to using the --session flag in the Presto CLI\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.\n","willReplaceOnChanges":true},"queryList":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPrestoJobQueryList:WorkflowTemplateJobPrestoJobQueryList","description":"A list of queries.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobPrestoJobLoggingConfig:WorkflowTemplateJobPrestoJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobPrestoJobQueryList:WorkflowTemplateJobPrestoJobQueryList":{"properties":{"queries":{"type":"array","items":{"type":"string"},"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": } }\n","willReplaceOnChanges":true}},"type":"object","required":["queries"]},"gcp:dataproc/WorkflowTemplateJobPysparkJob:WorkflowTemplateJobPysparkJob":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Python driver and tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobPysparkJobLoggingConfig:WorkflowTemplateJobPysparkJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"mainPythonFileUri":{"type":"string","description":"Required. The HCFS URI of the main Python file to use as the driver. Must be a .py file.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure PySpark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\n","willReplaceOnChanges":true},"pythonFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS file URIs of Python files to pass to the PySpark framework. Supported file types: .py, .egg, and .zip.\n","willReplaceOnChanges":true}},"type":"object","required":["mainPythonFileUri"]},"gcp:dataproc/WorkflowTemplateJobPysparkJobLoggingConfig:WorkflowTemplateJobPysparkJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobScheduling:WorkflowTemplateJobScheduling":{"properties":{"maxFailuresPerHour":{"type":"integer","description":"Maximum number of times per hour a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. A job may be reported as thrashing if driver exits with non-zero code 4 times within 10 minute window. Maximum value is 10.\n","willReplaceOnChanges":true},"maxFailuresTotal":{"type":"integer","description":"Maximum number of times in total a driver may be restarted as a result of driver exiting with non-zero code before job is reported failed. Maximum value is 240\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobSparkJob:WorkflowTemplateJobSparkJob":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to add to the CLASSPATHs of the Spark driver and tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkJobLoggingConfig:WorkflowTemplateJobSparkJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"mainClass":{"type":"string","description":"The name of the driver's main class. The jar file that contains the class must be in the default CLASSPATH or specified in \u003cspan pulumi-lang-nodejs=\"`jarFileUris`\" pulumi-lang-dotnet=\"`JarFileUris`\" pulumi-lang-go=\"`jarFileUris`\" pulumi-lang-python=\"`jar_file_uris`\" pulumi-lang-yaml=\"`jarFileUris`\" pulumi-lang-java=\"`jarFileUris`\"\u003e`jar_file_uris`\u003c/span\u003e.\n","willReplaceOnChanges":true},"mainJarFileUri":{"type":"string","description":"The HCFS URI of the jar file that contains the main class.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Spark. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobSparkJobLoggingConfig:WorkflowTemplateJobSparkJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobSparkRJob:WorkflowTemplateJobSparkRJob":{"properties":{"archiveUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of archives to be extracted into the working directory of each executor. Supported file types: .jar, .tar, .tar.gz, .tgz, and .zip.\n","willReplaceOnChanges":true},"args":{"type":"array","items":{"type":"string"},"description":"The arguments to pass to the driver. Do not include arguments, such as `--conf`, that can be set as job properties, since a collision may occur that causes an incorrect job submission.\n","willReplaceOnChanges":true},"fileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of files to be placed in the working directory of each executor. Useful for naively parallel tasks.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkRJobLoggingConfig:WorkflowTemplateJobSparkRJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"mainRFileUri":{"type":"string","description":"Required. The HCFS URI of the main R file to use as the driver. Must be a .R file.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure SparkR. Properties that conflict with values set by the Dataproc API may be overwritten. Can include properties set in /etc/spark/conf/spark-defaults.conf and classes in user code.\n","willReplaceOnChanges":true}},"type":"object","required":["mainRFileUri"]},"gcp:dataproc/WorkflowTemplateJobSparkRJobLoggingConfig:WorkflowTemplateJobSparkRJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobSparkSqlJob:WorkflowTemplateJobSparkSqlJob":{"properties":{"jarFileUris":{"type":"array","items":{"type":"string"},"description":"HCFS URIs of jar files to be added to the Spark CLASSPATH.\n","willReplaceOnChanges":true},"loggingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkSqlJobLoggingConfig:WorkflowTemplateJobSparkSqlJobLoggingConfig","description":"The runtime log config for job execution.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of property names to values, used to configure Spark SQL's SparkConf. Properties that conflict with values set by the Dataproc API may be overwritten.\n","willReplaceOnChanges":true},"queryFileUri":{"type":"string","description":"The HCFS URI of the script that contains SQL queries.\n","willReplaceOnChanges":true},"queryList":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateJobSparkSqlJobQueryList:WorkflowTemplateJobSparkSqlJobQueryList","description":"A list of queries.\n","willReplaceOnChanges":true},"scriptVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of query variable names to values (equivalent to the Spark SQL command: SET `name=\"value\";`).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobSparkSqlJobLoggingConfig:WorkflowTemplateJobSparkSqlJobLoggingConfig":{"properties":{"driverLogLevels":{"type":"object","additionalProperties":{"type":"string"},"description":"The per-package log levels for the driver. This may include \"root\" package name to configure rootLogger. Examples: 'com.google = FATAL', 'root = INFO', 'org.apache = DEBUG'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateJobSparkSqlJobQueryList:WorkflowTemplateJobSparkSqlJobQueryList":{"properties":{"queries":{"type":"array","items":{"type":"string"},"description":"Required. The queries to execute. You do not need to end a query expression with a semicolon. Multiple queries can be specified in one string by separating each with a semicolon. Here is an example of a Dataproc API snippet that uses a QueryList to specify a HiveJob: \"hiveJob\": { \"queryList\": { \"queries\": } }\n","willReplaceOnChanges":true}},"type":"object","required":["queries"]},"gcp:dataproc/WorkflowTemplateParameter:WorkflowTemplateParameter":{"properties":{"description":{"type":"string","description":"Brief description of the parameter. Must not exceed 1024 characters.\n","willReplaceOnChanges":true},"fields":{"type":"array","items":{"type":"string"},"description":"Required. Paths to all fields that the parameter replaces. A field is allowed to appear in at most one parameter's list of field paths. A field path is similar in syntax to a .sparkJob.args\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Required. Parameter name. The parameter name is used as the key, and paired with the parameter value, which are passed to the template when the template is instantiated. The name must contain only capital letters (A-Z), numbers (0-9), and underscores (_), and must not start with a number. The maximum length is 40 characters.\n","willReplaceOnChanges":true},"validation":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateParameterValidation:WorkflowTemplateParameterValidation","description":"Validation rules to be applied to this parameter's value.\n","willReplaceOnChanges":true}},"type":"object","required":["fields","name"]},"gcp:dataproc/WorkflowTemplateParameterValidation:WorkflowTemplateParameterValidation":{"properties":{"regex":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateParameterValidationRegex:WorkflowTemplateParameterValidationRegex","description":"Validation based on regular expressions.\n","willReplaceOnChanges":true},"values":{"$ref":"#/types/gcp:dataproc/WorkflowTemplateParameterValidationValues:WorkflowTemplateParameterValidationValues","description":"Validation based on a list of allowed values.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplateParameterValidationRegex:WorkflowTemplateParameterValidationRegex":{"properties":{"regexes":{"type":"array","items":{"type":"string"},"description":"Required. RE2 regular expressions used to validate the parameter's value. The value must match the regex in its entirety (substring matches are not sufficient).\n","willReplaceOnChanges":true}},"type":"object","required":["regexes"]},"gcp:dataproc/WorkflowTemplateParameterValidationValues:WorkflowTemplateParameterValidationValues":{"properties":{"values":{"type":"array","items":{"type":"string"},"description":"Required. List of allowed values for the parameter.\n","willReplaceOnChanges":true}},"type":"object","required":["values"]},"gcp:dataproc/WorkflowTemplatePlacement:WorkflowTemplatePlacement":{"properties":{"clusterSelector":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementClusterSelector:WorkflowTemplatePlacementClusterSelector","description":"A selector that chooses target cluster for jobs based on metadata. The selector is evaluated at the time each job is submitted.\n","willReplaceOnChanges":true},"managedCluster":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedCluster:WorkflowTemplatePlacementManagedCluster","description":"A cluster that is managed by the workflow.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementClusterSelector:WorkflowTemplatePlacementClusterSelector":{"properties":{"clusterLabels":{"type":"object","additionalProperties":{"type":"string"},"description":"Required. The cluster labels. Cluster must have all labels to match.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"The zone where workflow process executes. This parameter does not affect the selection of the cluster. If unspecified, the zone of the first cluster matching the selector is used.\n","willReplaceOnChanges":true}},"type":"object","required":["clusterLabels"],"language":{"nodejs":{"requiredOutputs":["clusterLabels","zone"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedCluster:WorkflowTemplatePlacementManagedCluster":{"properties":{"clusterName":{"type":"string","description":"Required. The cluster name prefix. A unique cluster name will be formed by appending a random suffix. The name must contain only lower-case letters (a-z), numbers (0-9), and hyphens (-). Must begin with a letter. Cannot begin or end with hyphen. Must consist of between 2 and 35 characters.\n","willReplaceOnChanges":true},"config":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfig:WorkflowTemplatePlacementManagedClusterConfig","description":"Required. The cluster configuration.\n","willReplaceOnChanges":true},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels to associate with this cluster. Label keys must be between 1 and 63 characters long, and must conform to the following PCRE regular expression: {0,63} No more than 32 labels can be associated with a given cluster.\n","willReplaceOnChanges":true}},"type":"object","required":["clusterName","config"]},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfig:WorkflowTemplatePlacementManagedClusterConfig":{"properties":{"autoscalingConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigAutoscalingConfig:WorkflowTemplatePlacementManagedClusterConfigAutoscalingConfig","description":"Autoscaling config for the policy associated with the cluster. Cluster does not autoscale if this field is unset.\n","willReplaceOnChanges":true},"encryptionConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigEncryptionConfig:WorkflowTemplatePlacementManagedClusterConfigEncryptionConfig","description":"Encryption settings for the cluster.\n","willReplaceOnChanges":true},"endpointConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigEndpointConfig:WorkflowTemplatePlacementManagedClusterConfigEndpointConfig","description":"Port/endpoint configuration for this cluster\n","willReplaceOnChanges":true},"gceClusterConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfig:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfig","description":"The shared Compute Engine config settings for all instances in a cluster.\n","willReplaceOnChanges":true},"gkeClusterConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfig:WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfig","description":"The Kubernetes Engine config for Dataproc clusters deployed to Kubernetes. Setting this is considered mutually exclusive with Compute Engine-based options such as \u003cspan pulumi-lang-nodejs=\"`gceClusterConfig`\" pulumi-lang-dotnet=\"`GceClusterConfig`\" pulumi-lang-go=\"`gceClusterConfig`\" pulumi-lang-python=\"`gce_cluster_config`\" pulumi-lang-yaml=\"`gceClusterConfig`\" pulumi-lang-java=\"`gceClusterConfig`\"\u003e`gce_cluster_config`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`masterConfig`\" pulumi-lang-dotnet=\"`MasterConfig`\" pulumi-lang-go=\"`masterConfig`\" pulumi-lang-python=\"`master_config`\" pulumi-lang-yaml=\"`masterConfig`\" pulumi-lang-java=\"`masterConfig`\"\u003e`master_config`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`workerConfig`\" pulumi-lang-dotnet=\"`WorkerConfig`\" pulumi-lang-go=\"`workerConfig`\" pulumi-lang-python=\"`worker_config`\" pulumi-lang-yaml=\"`workerConfig`\" pulumi-lang-java=\"`workerConfig`\"\u003e`worker_config`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secondaryWorkerConfig`\" pulumi-lang-dotnet=\"`SecondaryWorkerConfig`\" pulumi-lang-go=\"`secondaryWorkerConfig`\" pulumi-lang-python=\"`secondary_worker_config`\" pulumi-lang-yaml=\"`secondaryWorkerConfig`\" pulumi-lang-java=\"`secondaryWorkerConfig`\"\u003e`secondary_worker_config`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`autoscalingConfig`\" pulumi-lang-dotnet=\"`AutoscalingConfig`\" pulumi-lang-go=\"`autoscalingConfig`\" pulumi-lang-python=\"`autoscaling_config`\" pulumi-lang-yaml=\"`autoscalingConfig`\" pulumi-lang-java=\"`autoscalingConfig`\"\u003e`autoscaling_config`\u003c/span\u003e.\n","willReplaceOnChanges":true},"initializationActions":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigInitializationAction:WorkflowTemplatePlacementManagedClusterConfigInitializationAction"},"description":"Commands to execute on each node after config is completed. By default, executables are run on master and all worker nodes. You can test a node's \u003cspan pulumi-lang-nodejs=\"`role`\" pulumi-lang-dotnet=\"`Role`\" pulumi-lang-go=\"`role`\" pulumi-lang-python=\"`role`\" pulumi-lang-yaml=\"`role`\" pulumi-lang-java=\"`role`\"\u003e`role`\u003c/span\u003e metadata to run an executable on a master or worker node, as shown below using \u003cspan pulumi-lang-nodejs=\"`curl`\" pulumi-lang-dotnet=\"`Curl`\" pulumi-lang-go=\"`curl`\" pulumi-lang-python=\"`curl`\" pulumi-lang-yaml=\"`curl`\" pulumi-lang-java=\"`curl`\"\u003e`curl`\u003c/span\u003e (you can also use \u003cspan pulumi-lang-nodejs=\"`wget`\" pulumi-lang-dotnet=\"`Wget`\" pulumi-lang-go=\"`wget`\" pulumi-lang-python=\"`wget`\" pulumi-lang-yaml=\"`wget`\" pulumi-lang-java=\"`wget`\"\u003e`wget`\u003c/span\u003e): ROLE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/attributes/dataproc-role) if ; then ... master specific actions ... else ... worker specific actions ... fi\n","willReplaceOnChanges":true},"lifecycleConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigLifecycleConfig:WorkflowTemplatePlacementManagedClusterConfigLifecycleConfig","description":"Lifecycle setting for the cluster.\n","willReplaceOnChanges":true},"masterConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfig:WorkflowTemplatePlacementManagedClusterConfigMasterConfig","description":"The Compute Engine config settings for additional worker instances in a cluster.\n","willReplaceOnChanges":true},"metastoreConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMetastoreConfig:WorkflowTemplatePlacementManagedClusterConfigMetastoreConfig","description":"Metastore configuration.\n","willReplaceOnChanges":true},"secondaryWorkerConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfig:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfig","description":"The Compute Engine config settings for additional worker instances in a cluster.\n","willReplaceOnChanges":true},"securityConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecurityConfig:WorkflowTemplatePlacementManagedClusterConfigSecurityConfig","description":"Security settings for the cluster.\n","willReplaceOnChanges":true},"softwareConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSoftwareConfig:WorkflowTemplatePlacementManagedClusterConfigSoftwareConfig","description":"The config settings for software inside the cluster.\n","willReplaceOnChanges":true},"stagingBucket":{"type":"string","description":"A Cloud Storage bucket used to stage job dependencies, config files, and job driver console output. If you do not specify a staging bucket, Cloud Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's staging bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket (see [Dataproc staging and temp buckets](https://docs.cloud.google.com/dataproc/docs/concepts/configuring-clusters/staging-bucket)).\n","willReplaceOnChanges":true},"tempBucket":{"type":"string","description":"A Cloud Storage bucket used to store ephemeral cluster and jobs data, such as Spark and MapReduce history files. If you do not specify a temp bucket, Dataproc will determine a Cloud Storage location (US, ASIA, or EU) for your cluster's temp bucket according to the Compute Engine zone where your cluster is deployed, and then create and manage this project-level, per-location bucket. The default bucket has a TTL of 90 days, but you can use any TTL (or none) if you specify a bucket.\n","willReplaceOnChanges":true},"workerConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfig:WorkflowTemplatePlacementManagedClusterConfigWorkerConfig","description":"The Compute Engine config settings for additional worker instances in a cluster.\n\n- - -\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["masterConfig","secondaryWorkerConfig","workerConfig"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigAutoscalingConfig:WorkflowTemplatePlacementManagedClusterConfigAutoscalingConfig":{"properties":{"policy":{"type":"string","description":"The autoscaling policy used by the cluster. Only resource names including projectid and location (region) are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/` Note that the policy must be in the same project and Dataproc region.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigEncryptionConfig:WorkflowTemplatePlacementManagedClusterConfigEncryptionConfig":{"properties":{"gcePdKmsKeyName":{"type":"string","description":"The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigEndpointConfig:WorkflowTemplatePlacementManagedClusterConfigEndpointConfig":{"properties":{"enableHttpPortAccess":{"type":"boolean","description":"If true, enable http access to specific ports on the cluster from external sources. Defaults to false.\n","willReplaceOnChanges":true},"httpPorts":{"type":"object","additionalProperties":{"type":"string"},"description":"Output only. The map of port descriptions to URLs. Will only be populated if\u003cspan pulumi-lang-nodejs=\" enableHttpPortAccess \" pulumi-lang-dotnet=\" EnableHttpPortAccess \" pulumi-lang-go=\" enableHttpPortAccess \" pulumi-lang-python=\" enable_http_port_access \" pulumi-lang-yaml=\" enableHttpPortAccess \" pulumi-lang-java=\" enableHttpPortAccess \"\u003e enable_http_port_access \u003c/span\u003eis true.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["httpPorts"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfig:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfig":{"properties":{"internalIpOnly":{"type":"boolean","description":"If true, all instances in the cluster will only have internal IP addresses. By default, clusters are not restricted to internal IP addresses, and will have ephemeral external IP addresses assigned to each instance. This \u003cspan pulumi-lang-nodejs=\"`internalIpOnly`\" pulumi-lang-dotnet=\"`InternalIpOnly`\" pulumi-lang-go=\"`internalIpOnly`\" pulumi-lang-python=\"`internal_ip_only`\" pulumi-lang-yaml=\"`internalIpOnly`\" pulumi-lang-java=\"`internalIpOnly`\"\u003e`internal_ip_only`\u003c/span\u003e restriction can only be enabled for subnetwork enabled networks, and all off-cluster dependencies must be configured to be accessible without external IP addresses.\n","willReplaceOnChanges":true},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"The Compute Engine metadata entries to add to all instances (see [About VM metadata](https://docs.cloud.google.com/compute/docs/metadata/overview)).\n","willReplaceOnChanges":true},"network":{"type":"string","description":"The Compute Engine network to be used for machine communications. Cannot be specified with subnetwork_uri. If neither \u003cspan pulumi-lang-nodejs=\"`networkUri`\" pulumi-lang-dotnet=\"`NetworkUri`\" pulumi-lang-go=\"`networkUri`\" pulumi-lang-python=\"`network_uri`\" pulumi-lang-yaml=\"`networkUri`\" pulumi-lang-java=\"`networkUri`\"\u003e`network_uri`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`subnetworkUri`\" pulumi-lang-dotnet=\"`SubnetworkUri`\" pulumi-lang-go=\"`subnetworkUri`\" pulumi-lang-python=\"`subnetwork_uri`\" pulumi-lang-yaml=\"`subnetworkUri`\" pulumi-lang-java=\"`subnetworkUri`\"\u003e`subnetwork_uri`\u003c/span\u003e is specified, the \"default\" network of the project is used, if it exists. Cannot be a \"Custom Subnet Network\" (see /regions/global/default` * \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e\n","willReplaceOnChanges":true},"nodeGroupAffinity":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigNodeGroupAffinity:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigNodeGroupAffinity","description":"Node Group Affinity for sole-tenant clusters.\n","willReplaceOnChanges":true},"privateIpv6GoogleAccess":{"type":"string","description":"The type of IPv6 access for a cluster. Possible values: PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED, INHERIT_FROM_SUBNETWORK, OUTBOUND, BIDIRECTIONAL\n","willReplaceOnChanges":true},"reservationAffinity":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigReservationAffinity:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigReservationAffinity","description":"Reservation Affinity for consuming Zonal reservation.\n","willReplaceOnChanges":true},"serviceAccount":{"type":"string","description":"The (https://docs.cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.\n","willReplaceOnChanges":true},"serviceAccountScopes":{"type":"array","items":{"type":"string"},"description":"The URIs of service account scopes to be included in Compute Engine instances. The following base set of scopes is always included: * https://www.googleapis.com/auth/docs.cloud.useraccounts.readonly * https://www.googleapis.com/auth/devstorage.read_write * https://www.googleapis.com/auth/logging.write If no scopes are specified, the following defaults are also provided: * https://www.googleapis.com/auth/bigquery * https://www.googleapis.com/auth/bigtable.admin.table * https://www.googleapis.com/auth/bigtable.data * https://www.googleapis.com/auth/devstorage.full_control\n","willReplaceOnChanges":true},"shieldedInstanceConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigShieldedInstanceConfig:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigShieldedInstanceConfig","description":"Shielded Instance Config for clusters using [Compute Engine Shielded VMs](https://docs.cloud.google.com/security/shielded-cloud/shielded-vm). Structure defined below.\n","willReplaceOnChanges":true},"subnetwork":{"type":"string","description":"The Compute Engine subnetwork to be used for machine communications. Cannot be specified with network_uri. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects//regions/us-east1/subnetworks/sub0` * \u003cspan pulumi-lang-nodejs=\"`sub0`\" pulumi-lang-dotnet=\"`Sub0`\" pulumi-lang-go=\"`sub0`\" pulumi-lang-python=\"`sub0`\" pulumi-lang-yaml=\"`sub0`\" pulumi-lang-java=\"`sub0`\"\u003e`sub0`\u003c/span\u003e\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The Compute Engine tags to add to all instances (see [Manage tags for resources](https://docs.cloud.google.com/compute/docs/tag-resources)).\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"The zone where the Compute Engine cluster will be located. On a create request, it is required in the \"global\" region. If omitted in a non-global Dataproc region, the service will pick a zone in the corresponding Compute Engine region. On a get request, zone will always be present. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/` * `us-central1-f`\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["internalIpOnly","zone"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigNodeGroupAffinity:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigNodeGroupAffinity":{"properties":{"nodeGroup":{"type":"string","description":"Required. The URI of a sole-tenant /zones/us-central1-a/nodeGroups/node-group-1` * `node-group-1`\n","willReplaceOnChanges":true}},"type":"object","required":["nodeGroup"]},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigReservationAffinity:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigReservationAffinity":{"properties":{"consumeReservationType":{"type":"string","description":"Type of reservation to consume Possible values: TYPE_UNSPECIFIED, NO_RESERVATION, ANY_RESERVATION, SPECIFIC_RESERVATION\n","willReplaceOnChanges":true},"key":{"type":"string","description":"Corresponds to the label key of reservation resource.\n","willReplaceOnChanges":true},"values":{"type":"array","items":{"type":"string"},"description":"Corresponds to the label values of reservation resource.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigShieldedInstanceConfig:WorkflowTemplatePlacementManagedClusterConfigGceClusterConfigShieldedInstanceConfig":{"properties":{"enableIntegrityMonitoring":{"type":"boolean","description":"Defines whether instances have [Integrity Monitoring](https://docs.cloud.google.com/compute/shielded-vm/docs/shielded-vm#integrity-monitoring) enabled.\n","willReplaceOnChanges":true},"enableSecureBoot":{"type":"boolean","description":"Defines whether instances have [Secure Boot](https://docs.cloud.google.com/compute/shielded-vm/docs/shielded-vm#secure-boot) enabled.\n","willReplaceOnChanges":true},"enableVtpm":{"type":"boolean","description":"Defines whether instances have the [vTPM](https://docs.cloud.google.com/compute/shielded-vm/docs/shielded-vm#vtpm) enabled.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfig:WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfig":{"properties":{"namespacedGkeDeploymentTarget":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfigNamespacedGkeDeploymentTarget:WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfigNamespacedGkeDeploymentTarget","description":"A target for the deployment.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfigNamespacedGkeDeploymentTarget:WorkflowTemplatePlacementManagedClusterConfigGkeClusterConfigNamespacedGkeDeploymentTarget":{"properties":{"clusterNamespace":{"type":"string","description":"A namespace within the GKE cluster to deploy into.\n","willReplaceOnChanges":true},"targetGkeCluster":{"type":"string","description":"The target GKE cluster to deploy to. Format: 'projects/{project}/locations/{location}/clusters/{cluster_id}'\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigInitializationAction:WorkflowTemplatePlacementManagedClusterConfigInitializationAction":{"properties":{"executableFile":{"type":"string","description":"Required. Cloud Storage URI of executable file.\n","willReplaceOnChanges":true},"executionTimeout":{"type":"string","description":"Amount of time executable has to complete. Default is 10 minutes (see JSON representation of [JSON Mapping - Language Guide (proto 3)](https://developers.google.com/protocol-buffers/docs/proto3#json)). Cluster creation fails with an explanatory error message (the name of the executable that caused the error and the exceeded timeout period) if the executable is not completed at end of the timeout period.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigLifecycleConfig:WorkflowTemplatePlacementManagedClusterConfigLifecycleConfig":{"properties":{"autoDeleteTime":{"type":"string","description":"The time when cluster will be auto-deleted (see JSON representation of [JSON Mapping - Language Guide (proto 3)](https://developers.google.com/protocol-buffers/docs/proto3#json)).\n","willReplaceOnChanges":true},"autoDeleteTtl":{"type":"string","description":"The lifetime duration of cluster. The cluster will be auto-deleted at the end of this period. Minimum value is 10 minutes; maximum value is 14 days (see JSON representation of [JSON Mapping - Language Guide (proto 3)](https://developers.google.com/protocol-buffers/docs/proto3#json)).\n","willReplaceOnChanges":true},"idleDeleteTtl":{"type":"string","description":"The duration to keep the cluster alive while idling (when no jobs are running). Passing this threshold will cause the cluster to be deleted. Minimum value is 5 minutes; maximum value is 14 days (see JSON representation of [JSON Mapping - Language Guide (proto 3)](https://developers.google.com/protocol-buffers/docs/proto3#json).\n","willReplaceOnChanges":true},"idleStartTime":{"type":"string","description":"Output only. The time when cluster became idle (most recent job finished) and became eligible for deletion due to idleness (see JSON representation of [JSON Mapping - Language Guide (proto 3)](https://developers.google.com/protocol-buffers/docs/proto3#json)).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["idleStartTime"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfig:WorkflowTemplatePlacementManagedClusterConfigMasterConfig":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfigAccelerator:WorkflowTemplatePlacementManagedClusterConfigMasterConfigAccelerator"},"description":"The Compute Engine accelerator configuration for these instances.\n","willReplaceOnChanges":true},"diskConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfigDiskConfig:WorkflowTemplatePlacementManagedClusterConfigMasterConfigDiskConfig","description":"Disk option config settings.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\n","willReplaceOnChanges":true},"instanceNames":{"type":"array","items":{"type":"string"},"description":"Output only. The list of instance names. Dataproc derives the names from \u003cspan pulumi-lang-nodejs=\"`clusterName`\" pulumi-lang-dotnet=\"`ClusterName`\" pulumi-lang-go=\"`clusterName`\" pulumi-lang-python=\"`cluster_name`\" pulumi-lang-yaml=\"`clusterName`\" pulumi-lang-java=\"`clusterName`\"\u003e`cluster_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`numInstances`\" pulumi-lang-dotnet=\"`NumInstances`\" pulumi-lang-go=\"`numInstances`\" pulumi-lang-python=\"`num_instances`\" pulumi-lang-yaml=\"`numInstances`\" pulumi-lang-java=\"`numInstances`\"\u003e`num_instances`\u003c/span\u003e, and the instance group.\n"},"isPreemptible":{"type":"boolean","description":"Output only. Specifies that this instance group contains preemptible instances.\n"},"machineType":{"type":"string","description":"The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/(https://docs.cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\n","willReplaceOnChanges":true},"managedGroupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfigManagedGroupConfig:WorkflowTemplatePlacementManagedClusterConfigMasterConfigManagedGroupConfig"},"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\n"},"minCpuPlatform":{"type":"string","description":"Specifies the minimum cpu platform for the Instance Group. See [Minimum CPU platform](https://docs.cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\n","willReplaceOnChanges":true},"numInstances":{"type":"integer","description":"The number of VM instances in the instance group. For master instance groups, must be set to 1.\n","willReplaceOnChanges":true},"preemptibility":{"type":"string","description":"Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["accelerators","diskConfig","instanceNames","isPreemptible","managedGroupConfigs","minCpuPlatform"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfigAccelerator:WorkflowTemplatePlacementManagedClusterConfigMasterConfigAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the accelerator cards of this type exposed to this instance.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See (https://docs.cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfigDiskConfig:WorkflowTemplatePlacementManagedClusterConfigMasterConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size in GB of the boot disk (default is 500GB).\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) or \"pd-standard\" (Persistent Disk Hard Disk Drive).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["numLocalSsds"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMasterConfigManagedGroupConfig:WorkflowTemplatePlacementManagedClusterConfigMasterConfigManagedGroupConfig":{"properties":{"instanceGroupManagerName":{"type":"string","description":"Output only. The name of the Instance Group Manager for this group.\n"},"instanceTemplateName":{"type":"string","description":"Output only. The name of the Instance Template used for the Managed Instance Group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceGroupManagerName","instanceTemplateName"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigMetastoreConfig:WorkflowTemplatePlacementManagedClusterConfigMetastoreConfig":{"properties":{"dataprocMetastoreService":{"type":"string","description":"Required. Resource name of an existing Dataproc Metastore service. Example: * `projects/`\n","willReplaceOnChanges":true}},"type":"object","required":["dataprocMetastoreService"]},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfig:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfig":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigAccelerator:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigAccelerator"},"description":"Optional. The Compute Engine accelerator configuration for these instances.\n","willReplaceOnChanges":true},"diskConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigDiskConfig:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigDiskConfig","description":"Optional. Disk option config settings.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/[image-id]` * `projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/family/[custom-image-family-name]` * `projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\n","willReplaceOnChanges":true},"instanceNames":{"type":"array","items":{"type":"string"},"description":"Output only. The list of instance names. Dataproc derives the names from \u003cspan pulumi-lang-nodejs=\"`clusterName`\" pulumi-lang-dotnet=\"`ClusterName`\" pulumi-lang-go=\"`clusterName`\" pulumi-lang-python=\"`cluster_name`\" pulumi-lang-yaml=\"`clusterName`\" pulumi-lang-java=\"`clusterName`\"\u003e`cluster_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`numInstances`\" pulumi-lang-dotnet=\"`NumInstances`\" pulumi-lang-go=\"`numInstances`\" pulumi-lang-python=\"`num_instances`\" pulumi-lang-yaml=\"`numInstances`\" pulumi-lang-java=\"`numInstances`\"\u003e`num_instances`\u003c/span\u003e, and the instance group.\n"},"isPreemptible":{"type":"boolean","description":"Output only. Specifies that this instance group contains preemptible instances.\n"},"machineType":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\n","willReplaceOnChanges":true},"managedGroupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigManagedGroupConfig:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigManagedGroupConfig"},"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\n"},"minCpuPlatform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc \u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\n","willReplaceOnChanges":true},"numInstances":{"type":"integer","description":"Optional. The number of VM instances in the instance group. For [HA cluster](https://www.terraform.io/dataproc/docs/concepts/configuring-clusters/high-availability)\u003cspan pulumi-lang-nodejs=\" masterConfig \" pulumi-lang-dotnet=\" MasterConfig \" pulumi-lang-go=\" masterConfig \" pulumi-lang-python=\" master_config \" pulumi-lang-yaml=\" masterConfig \" pulumi-lang-java=\" masterConfig \"\u003e master_config \u003c/span\u003egroups, **must be set to 3**. For standard cluster\u003cspan pulumi-lang-nodejs=\" masterConfig \" pulumi-lang-dotnet=\" MasterConfig \" pulumi-lang-go=\" masterConfig \" pulumi-lang-python=\" master_config \" pulumi-lang-yaml=\" masterConfig \" pulumi-lang-java=\" masterConfig \"\u003e master_config \u003c/span\u003egroups, **must be set to 1**.\n","willReplaceOnChanges":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["accelerators","diskConfig","instanceNames","isPreemptible","managedGroupConfigs","minCpuPlatform"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigAccelerator:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the accelerator cards of this type exposed to this instance.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See (https://docs.cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigDiskConfig:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size in GB of the boot disk (default is 500GB).\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) or \"pd-standard\" (Persistent Disk Hard Disk Drive).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["numLocalSsds"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigManagedGroupConfig:WorkflowTemplatePlacementManagedClusterConfigSecondaryWorkerConfigManagedGroupConfig":{"properties":{"instanceGroupManagerName":{"type":"string","description":"Output only. The name of the Instance Group Manager for this group.\n"},"instanceTemplateName":{"type":"string","description":"Output only. The name of the Instance Template used for the Managed Instance Group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceGroupManagerName","instanceTemplateName"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecurityConfig:WorkflowTemplatePlacementManagedClusterConfigSecurityConfig":{"properties":{"kerberosConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecurityConfigKerberosConfig:WorkflowTemplatePlacementManagedClusterConfigSecurityConfigKerberosConfig","description":"Kerberos related configuration.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSecurityConfigKerberosConfig:WorkflowTemplatePlacementManagedClusterConfigSecurityConfigKerberosConfig":{"properties":{"crossRealmTrustAdminServer":{"type":"string","description":"The admin server (IP or hostname) for the remote trusted realm in a cross realm trust relationship.\n","willReplaceOnChanges":true},"crossRealmTrustKdc":{"type":"string","description":"The KDC (IP or hostname) for the remote trusted realm in a cross realm trust relationship.\n","willReplaceOnChanges":true},"crossRealmTrustRealm":{"type":"string","description":"The remote realm the Dataproc on-cluster KDC will trust, should the user enable cross realm trust.\n","willReplaceOnChanges":true},"crossRealmTrustSharedPassword":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the shared password between the on-cluster Kerberos realm and the remote trusted realm, in a cross realm trust relationship.\n","willReplaceOnChanges":true},"enableKerberos":{"type":"boolean","description":"Flag to indicate whether to Kerberize the cluster (default: false). Set this field to true to enable Kerberos on a cluster.\n","willReplaceOnChanges":true},"kdcDbKey":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the master key of the KDC database.\n","willReplaceOnChanges":true},"keyPassword":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided key. For the self-signed certificate, this password is generated by Dataproc.\n","willReplaceOnChanges":true},"keystore":{"type":"string","description":"The Cloud Storage URI of the keystore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.\n","willReplaceOnChanges":true},"keystorePassword":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided keystore. For the self-signed certificate, this password is generated by Dataproc.\n","willReplaceOnChanges":true},"kmsKey":{"type":"string","description":"The uri of the KMS key used to encrypt various sensitive files.\n","willReplaceOnChanges":true},"realm":{"type":"string","description":"The name of the on-cluster Kerberos realm. If not specified, the uppercased domain of hostnames will be the realm.\n","willReplaceOnChanges":true},"rootPrincipalPassword":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the root principal password.\n","willReplaceOnChanges":true},"tgtLifetimeHours":{"type":"integer","description":"The lifetime of the ticket granting ticket, in hours. If not specified, or user specifies 0, then default value 10 will be used.\n","willReplaceOnChanges":true},"truststore":{"type":"string","description":"The Cloud Storage URI of the truststore file used for SSL encryption. If not provided, Dataproc will provide a self-signed certificate.\n","willReplaceOnChanges":true},"truststorePassword":{"type":"string","description":"The Cloud Storage URI of a KMS encrypted file containing the password to the user provided truststore. For the self-signed certificate, this password is generated by Dataproc.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigSoftwareConfig:WorkflowTemplatePlacementManagedClusterConfigSoftwareConfig":{"properties":{"imageVersion":{"type":"string","description":"The version of software inside the cluster. It must be one of the supported [Dataproc Versions](https://docs.cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#supported_dataproc_versions), such as \"1.2\" (including a subminor version, such as \"1.2.29\"), or the [\"preview\" version](https://docs.cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions#other_versions). If unspecified, it defaults to the latest Debian version.\n","willReplaceOnChanges":true},"optionalComponents":{"type":"array","items":{"type":"string"},"description":"The set of components to activate on the cluster.\n","willReplaceOnChanges":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"The properties to set on daemon config files.\n\nProperty keys are specified in `prefix:property` format, for example `core:hadoop.tmp.dir`. The following are supported prefixes and their mappings:\n\n* capacity-scheduler: `capacity-scheduler.xml`\n* core: `core-site.xml`\n* distcp: `distcp-default.xml`\n* hdfs: `hdfs-site.xml`\n* hive: `hive-site.xml`\n* mapred: `mapred-site.xml`\n* pig: `pig.properties`\n* spark: `spark-defaults.conf`\n* yarn: `yarn-site.xml`\n\n\nFor more information, see [Cluster properties](https://docs.cloud.google.com/dataproc/docs/concepts/cluster-properties).\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfig:WorkflowTemplatePlacementManagedClusterConfigWorkerConfig":{"properties":{"accelerators":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfigAccelerator:WorkflowTemplatePlacementManagedClusterConfigWorkerConfigAccelerator"},"description":"Optional. The Compute Engine accelerator configuration for these instances.\n","willReplaceOnChanges":true},"diskConfig":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfigDiskConfig:WorkflowTemplatePlacementManagedClusterConfigWorkerConfigDiskConfig","description":"Optional. Disk option config settings.\n","willReplaceOnChanges":true},"image":{"type":"string","description":"Optional. The Compute Engine image resource used for cluster instances. The URI can represent an image or image family. Image examples: * `https://www.googleapis.com/compute/beta/projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/[image-id]` * `projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/[image-id]` * `image-id` Image family examples. Dataproc will use the most recent image from the family: * `https://www.googleapis.com/compute/beta/projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/family/[custom-image-family-name]` * `projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/global/images/family/[custom-image-family-name]` If the URI is unspecified, it will be inferred from `SoftwareConfig.image_version` or the system default.\n","willReplaceOnChanges":true},"instanceNames":{"type":"array","items":{"type":"string"},"description":"Output only. The list of instance names. Dataproc derives the names from \u003cspan pulumi-lang-nodejs=\"`clusterName`\" pulumi-lang-dotnet=\"`ClusterName`\" pulumi-lang-go=\"`clusterName`\" pulumi-lang-python=\"`cluster_name`\" pulumi-lang-yaml=\"`clusterName`\" pulumi-lang-java=\"`clusterName`\"\u003e`cluster_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`numInstances`\" pulumi-lang-dotnet=\"`NumInstances`\" pulumi-lang-go=\"`numInstances`\" pulumi-lang-python=\"`num_instances`\" pulumi-lang-yaml=\"`numInstances`\" pulumi-lang-java=\"`numInstances`\"\u003e`num_instances`\u003c/span\u003e, and the instance group.\n"},"isPreemptible":{"type":"boolean","description":"Output only. Specifies that this instance group contains preemptible instances.\n"},"machineType":{"type":"string","description":"Optional. The Compute Engine machine type used for cluster instances. A full URL, partial URI, or short name are valid. Examples: * `https://www.googleapis.com/compute/v1/projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/zones/us-east1-a/machineTypes/n1-standard-2` * `projects/\u003cspan pulumi-lang-nodejs=\"[projectId]\" pulumi-lang-dotnet=\"[ProjectId]\" pulumi-lang-go=\"[projectId]\" pulumi-lang-python=\"[project_id]\" pulumi-lang-yaml=\"[projectId]\" pulumi-lang-java=\"[projectId]\"\u003e[project_id]\u003c/span\u003e/zones/us-east1-a/machineTypes/n1-standard-2` * `n1-standard-2` **Auto Zone Exception**: If you are using the Dataproc [Auto Zone Placement](https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the machine type resource, for example, `n1-standard-2`.\n","willReplaceOnChanges":true},"managedGroupConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfigManagedGroupConfig:WorkflowTemplatePlacementManagedClusterConfigWorkerConfigManagedGroupConfig"},"description":"Output only. The config for Compute Engine Instance Group Manager that manages this group. This is only used for preemptible instance groups.\n"},"minCpuPlatform":{"type":"string","description":"Optional. Specifies the minimum cpu platform for the Instance Group. See [Dataproc \u003e Minimum CPU Platform](https://cloud.google.com/dataproc/docs/concepts/compute/dataproc-min-cpu).\n","willReplaceOnChanges":true},"numInstances":{"type":"integer","description":"Optional. The number of VM instances in the instance group. For [HA cluster](https://www.terraform.io/dataproc/docs/concepts/configuring-clusters/high-availability)\u003cspan pulumi-lang-nodejs=\" masterConfig \" pulumi-lang-dotnet=\" MasterConfig \" pulumi-lang-go=\" masterConfig \" pulumi-lang-python=\" master_config \" pulumi-lang-yaml=\" masterConfig \" pulumi-lang-java=\" masterConfig \"\u003e master_config \u003c/span\u003egroups, **must be set to 3**. For standard cluster\u003cspan pulumi-lang-nodejs=\" masterConfig \" pulumi-lang-dotnet=\" MasterConfig \" pulumi-lang-go=\" masterConfig \" pulumi-lang-python=\" master_config \" pulumi-lang-yaml=\" masterConfig \" pulumi-lang-java=\" masterConfig \"\u003e master_config \u003c/span\u003egroups, **must be set to 1**.\n","willReplaceOnChanges":true},"preemptibility":{"type":"string","description":"Optional. Specifies the preemptibility of the instance group. The default value for master and worker groups is `NON_PREEMPTIBLE`. This default cannot be changed. The default value for secondary instances is `PREEMPTIBLE`. Possible values: PREEMPTIBILITY_UNSPECIFIED, NON_PREEMPTIBLE, PREEMPTIBLE\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["accelerators","diskConfig","instanceNames","isPreemptible","managedGroupConfigs","minCpuPlatform"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfigAccelerator:WorkflowTemplatePlacementManagedClusterConfigWorkerConfigAccelerator":{"properties":{"acceleratorCount":{"type":"integer","description":"The number of the accelerator cards of this type exposed to this instance.\n","willReplaceOnChanges":true},"acceleratorType":{"type":"string","description":"Full URL, partial URI, or short name of the accelerator type resource to expose to this instance. See (https://docs.cloud.google.com/dataproc/docs/concepts/configuring-clusters/auto-zone#using_auto_zone_placement) feature, you must use the short name of the accelerator type resource, for example, `nvidia-tesla-k80`.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfigDiskConfig:WorkflowTemplatePlacementManagedClusterConfigWorkerConfigDiskConfig":{"properties":{"bootDiskSizeGb":{"type":"integer","description":"Size in GB of the boot disk (default is 500GB).\n","willReplaceOnChanges":true},"bootDiskType":{"type":"string","description":"Type of the boot disk (default is \"pd-standard\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) or \"pd-standard\" (Persistent Disk Hard Disk Drive).\n","willReplaceOnChanges":true},"numLocalSsds":{"type":"integer","description":"Number of attached SSDs, from 0 to 4 (default is 0). If SSDs are not attached, the boot disk is used to store runtime logs and (https://hadoop.apache.org/docs/r1.2.1/hdfs_user_guide.html) data. If one or more SSDs are attached, this runtime bulk data is spread across them, and the boot disk contains only basic config and installed binaries.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["numLocalSsds"]}}},"gcp:dataproc/WorkflowTemplatePlacementManagedClusterConfigWorkerConfigManagedGroupConfig:WorkflowTemplatePlacementManagedClusterConfigWorkerConfigManagedGroupConfig":{"properties":{"instanceGroupManagerName":{"type":"string","description":"Output only. The name of the Instance Group Manager for this group.\n"},"instanceTemplateName":{"type":"string","description":"Output only. The name of the Instance Template used for the Managed Instance Group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["instanceGroupManagerName","instanceTemplateName"]}}},"gcp:dataproc/getMetastoreServiceEncryptionConfig:getMetastoreServiceEncryptionConfig":{"properties":{"kmsKey":{"type":"string","description":"The fully qualified customer provided Cloud KMS key name to use for customer data encryption.\nUse the following format: 'projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)'\n"}},"type":"object","required":["kmsKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceHiveMetastoreConfig:getMetastoreServiceHiveMetastoreConfig":{"properties":{"auxiliaryVersions":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceHiveMetastoreConfigAuxiliaryVersion:getMetastoreServiceHiveMetastoreConfigAuxiliaryVersion"},"description":"A mapping of Hive metastore version to the auxiliary version configuration.\nWhen specified, a secondary Hive metastore service is created along with the primary service.\nAll auxiliary versions must be less than the service's primary version.\nThe key is the auxiliary service name and it must match the regular expression a-z?.\nThis means that the first character must be a lowercase letter, and all the following characters must be hyphens, lowercase letters, or digits, except the last character, which cannot be a hyphen.\n"},"configOverrides":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of Hive metastore configuration key-value pairs to apply to the Hive metastore (configured in hive-site.xml).\nThe mappings override system defaults (some keys cannot be overridden)\n"},"endpointProtocol":{"type":"string","description":"The protocol to use for the metastore service endpoint. If unspecified, defaults to 'THRIFT'. Default value: \"THRIFT\" Possible values: [\"THRIFT\", \"GRPC\"]\n"},"kerberosConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceHiveMetastoreConfigKerberosConfig:getMetastoreServiceHiveMetastoreConfigKerberosConfig"},"description":"Information used to configure the Hive metastore service as a service principal in a Kerberos realm.\n"},"version":{"type":"string","description":"The Hive metastore schema version.\n"}},"type":"object","required":["auxiliaryVersions","configOverrides","endpointProtocol","kerberosConfigs","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceHiveMetastoreConfigAuxiliaryVersion:getMetastoreServiceHiveMetastoreConfigAuxiliaryVersion":{"properties":{"configOverrides":{"type":"object","additionalProperties":{"type":"string"},"description":"A mapping of Hive metastore configuration key-value pairs to apply to the auxiliary Hive metastore (configured in hive-site.xml) in addition to the primary version's overrides.\nIf keys are present in both the auxiliary version's overrides and the primary version's overrides, the value from the auxiliary version's overrides takes precedence.\n"},"key":{"type":"string"},"version":{"type":"string","description":"The Hive metastore version of the auxiliary service. It must be less than the primary Hive metastore service's version.\n"}},"type":"object","required":["configOverrides","key","version"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceHiveMetastoreConfigKerberosConfig:getMetastoreServiceHiveMetastoreConfigKerberosConfig":{"properties":{"keytabs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceHiveMetastoreConfigKerberosConfigKeytab:getMetastoreServiceHiveMetastoreConfigKerberosConfigKeytab"},"description":"A Kerberos keytab file that can be used to authenticate a service principal with a Kerberos Key Distribution Center (KDC).\n"},"krb5ConfigGcsUri":{"type":"string","description":"A Cloud Storage URI that specifies the path to a krb5.conf file. It is of the form gs://{bucket_name}/path/to/krb5.conf, although the file does not need to be named krb5.conf explicitly.\n"},"principal":{"type":"string","description":"A Kerberos principal that exists in the both the keytab the KDC to authenticate as. A typical principal is of the form \"primary/instance@REALM\", but there is no exact format.\n"}},"type":"object","required":["keytabs","krb5ConfigGcsUri","principal"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceHiveMetastoreConfigKerberosConfigKeytab:getMetastoreServiceHiveMetastoreConfigKerberosConfigKeytab":{"properties":{"cloudSecret":{"type":"string","description":"The relative resource name of a Secret Manager secret version, in the following form:\n\n\"projects/{projectNumber}/secrets/{secret_id}/versions/{version_id}\".\n"}},"type":"object","required":["cloudSecret"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceMaintenanceWindow:getMetastoreServiceMaintenanceWindow":{"properties":{"dayOfWeek":{"type":"string","description":"The day of week, when the window starts. Possible values: [\"MONDAY\", \"TUESDAY\", \"WEDNESDAY\", \"THURSDAY\", \"FRIDAY\", \"SATURDAY\", \"SUNDAY\"]\n"},"hourOfDay":{"type":"integer","description":"The hour of day (0-23) when the window starts.\n"}},"type":"object","required":["dayOfWeek","hourOfDay"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceMetadataIntegration:getMetastoreServiceMetadataIntegration":{"properties":{"dataCatalogConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceMetadataIntegrationDataCatalogConfig:getMetastoreServiceMetadataIntegrationDataCatalogConfig"},"description":"The integration config for the Data Catalog service.\n"}},"type":"object","required":["dataCatalogConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceMetadataIntegrationDataCatalogConfig:getMetastoreServiceMetadataIntegrationDataCatalogConfig":{"properties":{"enabled":{"type":"boolean","description":"Defines whether the metastore metadata should be synced to Data Catalog. The default value is to disable syncing metastore metadata to Data Catalog.\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceNetworkConfig:getMetastoreServiceNetworkConfig":{"properties":{"consumers":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceNetworkConfigConsumer:getMetastoreServiceNetworkConfigConsumer"},"description":"The consumer-side network configuration for the Dataproc Metastore instance.\n"},"customRoutesEnabled":{"type":"boolean","description":"Enables custom routes to be imported and exported for the Dataproc Metastore service's peered VPC network.\n"}},"type":"object","required":["consumers","customRoutesEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceNetworkConfigConsumer:getMetastoreServiceNetworkConfigConsumer":{"properties":{"endpointUri":{"type":"string","description":"The URI of the endpoint used to access the metastore service.\n"},"subnetwork":{"type":"string","description":"The subnetwork of the customer project from which an IP address is reserved and used as the Dataproc Metastore service's endpoint.\nIt is accessible to hosts in the subnet and to all hosts in a subnet in the same region and same network.\nThere must be at least one IP address available in the subnet's primary range. The subnet is specified in the following form:\n'projects/{projectNumber}/regions/{region_id}/subnetworks/{subnetwork_id}\n"}},"type":"object","required":["endpointUri","subnetwork"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceScalingConfig:getMetastoreServiceScalingConfig":{"properties":{"autoscalingConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceScalingConfigAutoscalingConfig:getMetastoreServiceScalingConfigAutoscalingConfig"},"description":"Represents the autoscaling configuration of a metastore service.\n"},"instanceSize":{"type":"string","description":"Metastore instance sizes. Possible values: [\"EXTRA_SMALL\", \"SMALL\", \"MEDIUM\", \"LARGE\", \"EXTRA_LARGE\"]\n"},"scalingFactor":{"type":"number","description":"Scaling factor, in increments of 0.1 for values less than 1.0, and increments of 1.0 for values greater than 1.0.\n"}},"type":"object","required":["autoscalingConfigs","instanceSize","scalingFactor"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceScalingConfigAutoscalingConfig:getMetastoreServiceScalingConfigAutoscalingConfig":{"properties":{"autoscalingEnabled":{"type":"boolean","description":"Defines whether autoscaling is enabled. The default value is false.\n"},"autoscalingFactor":{"type":"number","description":"Output only. The scaling factor of a service with autoscaling enabled.\n"},"limitConfigs":{"type":"array","items":{"$ref":"#/types/gcp:dataproc/getMetastoreServiceScalingConfigAutoscalingConfigLimitConfig:getMetastoreServiceScalingConfigAutoscalingConfigLimitConfig"},"description":"Represents the limit configuration of a metastore service.\n"}},"type":"object","required":["autoscalingEnabled","autoscalingFactor","limitConfigs"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceScalingConfigAutoscalingConfigLimitConfig:getMetastoreServiceScalingConfigAutoscalingConfigLimitConfig":{"properties":{"maxScalingFactor":{"type":"number","description":"The maximum scaling factor that the service will autoscale to. The default value is 6.0.\n"},"minScalingFactor":{"type":"number","description":"The minimum scaling factor that the service will autoscale to. The default value is 0.1.\n"}},"type":"object","required":["maxScalingFactor","minScalingFactor"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceScheduledBackup:getMetastoreServiceScheduledBackup":{"properties":{"backupLocation":{"type":"string","description":"A Cloud Storage URI of a folder, in the format gs://\u003cbucket_name\u003e/\u003cpath_inside_bucket\u003e. A sub-folder \u003cbackup_folder\u003e containing backup files will be stored below it.\n"},"cronSchedule":{"type":"string","description":"The scheduled interval in Cron format, see https://en.wikipedia.org/wiki/Cron The default is empty: scheduled backup is not enabled. Must be specified to enable scheduled backups.\n"},"enabled":{"type":"boolean","description":"Defines whether the scheduled backup is enabled. The default value is false.\n"},"timeZone":{"type":"string","description":"Specifies the time zone to be used when interpreting cronSchedule. Must be a time zone name from the time zone database (https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), e.g. America/Los_Angeles or Africa/Abidjan. If left unspecified, the default is UTC.\n"}},"type":"object","required":["backupLocation","cronSchedule","enabled","timeZone"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dataproc/getMetastoreServiceTelemetryConfig:getMetastoreServiceTelemetryConfig":{"properties":{"logFormat":{"type":"string","description":"The output format of the Dataproc Metastore service's logs. Default value: \"JSON\" Possible values: [\"LEGACY\", \"JSON\"]\n"}},"type":"object","required":["logFormat"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:datastream/ConnectionProfileBigqueryProfile:ConnectionProfileBigqueryProfile":{"type":"object"},"gcp:datastream/ConnectionProfileForwardSshConnectivity:ConnectionProfileForwardSshConnectivity":{"properties":{"hostname":{"type":"string","description":"Hostname for the SSH tunnel.\n"},"password":{"type":"string","description":"SSH password.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"port":{"type":"integer","description":"Port for the SSH tunnel.\n"},"privateKey":{"type":"string","description":"SSH private key.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"username":{"type":"string","description":"Username for the SSH tunnel.\n"}},"type":"object","required":["hostname","username"]},"gcp:datastream/ConnectionProfileGcsProfile:ConnectionProfileGcsProfile":{"properties":{"bucket":{"type":"string","description":"The Cloud Storage bucket name.\n"},"rootPath":{"type":"string","description":"The root path inside the Cloud Storage bucket.\n"}},"type":"object","required":["bucket"]},"gcp:datastream/ConnectionProfileMongodbProfile:ConnectionProfileMongodbProfile":{"properties":{"hostAddresses":{"type":"array","items":{"$ref":"#/types/gcp:datastream/ConnectionProfileMongodbProfileHostAddress:ConnectionProfileMongodbProfileHostAddress"},"description":"List of host addresses for a MongoDB cluster.\nStructure is documented below.\n"},"password":{"type":"string","description":"Password for the MongoDB connection. Mutually exclusive with\nsecretManagerStoredPassword.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"replicaSet":{"type":"string","description":"Name of the replica set.\n"},"secretManagerStoredPassword":{"type":"string","description":"A reference to a Secret Manager resource name storing the MongoDB\nconnection password. Mutually exclusive with password.\n"},"srvConnectionFormat":{"$ref":"#/types/gcp:datastream/ConnectionProfileMongodbProfileSrvConnectionFormat:ConnectionProfileMongodbProfileSrvConnectionFormat","description":"Srv connection format. Mutually exclusive with\nstandard_connection_Format.\n"},"sslConfig":{"$ref":"#/types/gcp:datastream/ConnectionProfileMongodbProfileSslConfig:ConnectionProfileMongodbProfileSslConfig","description":"SSL configuration for the MongoDB connection.\nStructure is documented below.\n"},"standardConnectionFormat":{"$ref":"#/types/gcp:datastream/ConnectionProfileMongodbProfileStandardConnectionFormat:ConnectionProfileMongodbProfileStandardConnectionFormat","description":"Standard connection format. Mutually exclusive with\nsrv_connection_format.\nStructure is documented below.\n"},"username":{"type":"string","description":"Username for the MongoDB connection.\n"}},"type":"object","required":["hostAddresses","username"]},"gcp:datastream/ConnectionProfileMongodbProfileHostAddress:ConnectionProfileMongodbProfileHostAddress":{"properties":{"hostname":{"type":"string","description":"Hostname for the connection.\n"},"port":{"type":"integer","description":"Port for the connection.\n"}},"type":"object","required":["hostname"]},"gcp:datastream/ConnectionProfileMongodbProfileSrvConnectionFormat:ConnectionProfileMongodbProfileSrvConnectionFormat":{"type":"object"},"gcp:datastream/ConnectionProfileMongodbProfileSslConfig:ConnectionProfileMongodbProfileSslConfig":{"properties":{"caCertificate":{"type":"string","description":"PEM-encoded certificate of the CA that signed the source database\nserver's certificate.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"caCertificateSet":{"type":"boolean","description":"(Output)\nIndicates whether the clientKey field is set.\n"},"clientCertificate":{"type":"string","description":"PEM-encoded certificate that will be used by the replica to\nauthenticate against the source database server. If this field\nis used then the 'clientKey' and the 'caCertificate' fields are\nmandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientCertificateSet":{"type":"boolean","description":"(Output)\nIndicates whether the clientCertificate field is set.\n"},"clientKey":{"type":"string","description":"PEM-encoded private key associated with the Client Certificate.\nIf this field is used then the 'client_certificate' and the\n'ca_certificate' fields are mandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientKeySet":{"type":"boolean","description":"(Output)\nIndicates whether the clientKey field is set.\n"},"secretManagerStoredClientKey":{"type":"string","description":"A reference to a Secret Manager resource name storing the\nPEM-encoded private key. Mutually exclusive with clientKey.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["caCertificateSet","clientCertificateSet","clientKeySet"]}}},"gcp:datastream/ConnectionProfileMongodbProfileStandardConnectionFormat:ConnectionProfileMongodbProfileStandardConnectionFormat":{"properties":{"directConnection":{"type":"boolean","description":"Specifies whether the client connects directly to the\nhost[:port] in the connection URI.\n"}},"type":"object"},"gcp:datastream/ConnectionProfileMysqlProfile:ConnectionProfileMysqlProfile":{"properties":{"hostname":{"type":"string","description":"Hostname for the MySQL connection.\n"},"password":{"type":"string","description":"Password for the MySQL connection.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"port":{"type":"integer","description":"Port for the MySQL connection.\n"},"secretManagerStoredPassword":{"type":"string","description":"A reference to a Secret Manager resource name storing the user's password.\n"},"sslConfig":{"$ref":"#/types/gcp:datastream/ConnectionProfileMysqlProfileSslConfig:ConnectionProfileMysqlProfileSslConfig","description":"SSL configuration for the MySQL connection.\nStructure is documented below.\n"},"username":{"type":"string","description":"Username for the MySQL connection.\n"}},"type":"object","required":["hostname","username"]},"gcp:datastream/ConnectionProfileMysqlProfileSslConfig:ConnectionProfileMysqlProfileSslConfig":{"properties":{"caCertificate":{"type":"string","description":"PEM-encoded certificate of the CA that signed the source database\nserver's certificate.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"caCertificateSet":{"type":"boolean","description":"(Output)\nIndicates whether the clientKey field is set.\n"},"clientCertificate":{"type":"string","description":"PEM-encoded certificate that will be used by the replica to\nauthenticate against the source database server. If this field\nis used then the 'clientKey' and the 'caCertificate' fields are\nmandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientCertificateSet":{"type":"boolean","description":"(Output)\nIndicates whether the clientCertificate field is set.\n"},"clientKey":{"type":"string","description":"PEM-encoded private key associated with the Client Certificate.\nIf this field is used then the 'client_certificate' and the\n'ca_certificate' fields are mandatory.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientKeySet":{"type":"boolean","description":"(Output)\nIndicates whether the clientKey field is set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["caCertificateSet","clientCertificateSet","clientKeySet"]}}},"gcp:datastream/ConnectionProfileOracleProfile:ConnectionProfileOracleProfile":{"properties":{"connectionAttributes":{"type":"object","additionalProperties":{"type":"string"},"description":"Connection string attributes\n"},"databaseService":{"type":"string","description":"Database for the Oracle connection.\n"},"hostname":{"type":"string","description":"Hostname for the Oracle connection.\n"},"password":{"type":"string","description":"Password for the Oracle connection.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"port":{"type":"integer","description":"Port for the Oracle connection.\n"},"secretManagerStoredPassword":{"type":"string","description":"A reference to a Secret Manager resource name storing the user's password.\n"},"username":{"type":"string","description":"Username for the Oracle connection.\n"}},"type":"object","required":["databaseService","hostname","username"]},"gcp:datastream/ConnectionProfilePostgresqlProfile:ConnectionProfilePostgresqlProfile":{"properties":{"database":{"type":"string","description":"Database for the PostgreSQL connection.\n"},"hostname":{"type":"string","description":"Hostname for the PostgreSQL connection.\n"},"password":{"type":"string","description":"Password for the PostgreSQL connection.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"port":{"type":"integer","description":"Port for the PostgreSQL connection.\n"},"secretManagerStoredPassword":{"type":"string","description":"A reference to a Secret Manager resource name storing the user's password.\n"},"sslConfig":{"$ref":"#/types/gcp:datastream/ConnectionProfilePostgresqlProfileSslConfig:ConnectionProfilePostgresqlProfileSslConfig","description":"SSL configuration for the PostgreSQL connection.\nStructure is documented below.\n"},"username":{"type":"string","description":"Username for the PostgreSQL connection.\n"}},"type":"object","required":["database","hostname","username"]},"gcp:datastream/ConnectionProfilePostgresqlProfileSslConfig:ConnectionProfilePostgresqlProfileSslConfig":{"properties":{"serverAndClientVerification":{"$ref":"#/types/gcp:datastream/ConnectionProfilePostgresqlProfileSslConfigServerAndClientVerification:ConnectionProfilePostgresqlProfileSslConfigServerAndClientVerification","description":"If this field is set, the communication will be encrypted with TLS encryption\nand both the server identity and the client identity will be authenticated.\nStructure is documented below.\n"},"serverVerification":{"$ref":"#/types/gcp:datastream/ConnectionProfilePostgresqlProfileSslConfigServerVerification:ConnectionProfilePostgresqlProfileSslConfigServerVerification","description":"If this field is set, the communication will be encrypted with TLS encryption\nand the server identity will be authenticated.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/ConnectionProfilePostgresqlProfileSslConfigServerAndClientVerification:ConnectionProfilePostgresqlProfileSslConfigServerAndClientVerification":{"properties":{"caCertificate":{"type":"string","description":"PEM-encoded server root CA certificate.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientCertificate":{"type":"string","description":"PEM-encoded certificate used by the source database to authenticate the\nclient identity (i.e., the Datastream's identity). This certificate is\nsigned by either a root certificate trusted by the server or one or more\nintermediate certificates (which is stored with the leaf certificate) to\nlink to this certificate to the trusted root certificate.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"clientKey":{"type":"string","description":"PEM-encoded private key associated with the client certificate.\nThis value will be used during the SSL/TLS handshake, allowing\nthe PostgreSQL server to authenticate the client's identity,\ni.e. identity of the stream.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object","required":["caCertificate","clientCertificate","clientKey"]},"gcp:datastream/ConnectionProfilePostgresqlProfileSslConfigServerVerification:ConnectionProfilePostgresqlProfileSslConfigServerVerification":{"properties":{"caCertificate":{"type":"string","description":"PEM-encoded server root CA certificate.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object","required":["caCertificate"]},"gcp:datastream/ConnectionProfilePrivateConnectivity:ConnectionProfilePrivateConnectivity":{"properties":{"privateConnection":{"type":"string","description":"A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`\n"}},"type":"object","required":["privateConnection"]},"gcp:datastream/ConnectionProfileSalesforceProfile:ConnectionProfileSalesforceProfile":{"properties":{"domain":{"type":"string","description":"Domain for the Salesforce Org.\n"},"oauth2ClientCredentials":{"$ref":"#/types/gcp:datastream/ConnectionProfileSalesforceProfileOauth2ClientCredentials:ConnectionProfileSalesforceProfileOauth2ClientCredentials","description":"OAuth credentials to use for Salesforce authentication.\nStructure is documented below.\n"},"userCredentials":{"$ref":"#/types/gcp:datastream/ConnectionProfileSalesforceProfileUserCredentials:ConnectionProfileSalesforceProfileUserCredentials","description":"User credentials to use for Salesforce authentication.\nStructure is documented below.\n"}},"type":"object","required":["domain"]},"gcp:datastream/ConnectionProfileSalesforceProfileOauth2ClientCredentials:ConnectionProfileSalesforceProfileOauth2ClientCredentials":{"properties":{"clientId":{"type":"string","description":"Client ID to use for authentication.\n"},"clientSecret":{"type":"string","description":"Client secret to use for authentication.\n"},"secretManagerStoredClientSecret":{"type":"string","description":"A reference to a Secret Manager resource name storing the client secret.\n"}},"type":"object"},"gcp:datastream/ConnectionProfileSalesforceProfileUserCredentials:ConnectionProfileSalesforceProfileUserCredentials":{"properties":{"password":{"type":"string","description":"Password of the user.\n"},"secretManagerStoredPassword":{"type":"string","description":"A reference to a Secret Manager resource name storing the user's password.\n"},"secretManagerStoredSecurityToken":{"type":"string","description":"A reference to a Secret Manager resource name storing the user's security token.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedSalesforceProfileOauth2ClientCredentials\"\" pulumi-lang-dotnet=\"\"NestedSalesforceProfileOauth2ClientCredentials\"\" pulumi-lang-go=\"\"nestedSalesforceProfileOauth2ClientCredentials\"\" pulumi-lang-python=\"\"nested_salesforce_profile_oauth2_client_credentials\"\" pulumi-lang-yaml=\"\"nestedSalesforceProfileOauth2ClientCredentials\"\" pulumi-lang-java=\"\"nestedSalesforceProfileOauth2ClientCredentials\"\"\u003e\"nested_salesforce_profile_oauth2_client_credentials\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`oauth2ClientCredentials`\" pulumi-lang-dotnet=\"`Oauth2ClientCredentials`\" pulumi-lang-go=\"`oauth2ClientCredentials`\" pulumi-lang-python=\"`oauth2_client_credentials`\" pulumi-lang-yaml=\"`oauth2ClientCredentials`\" pulumi-lang-java=\"`oauth2ClientCredentials`\"\u003e`oauth2_client_credentials`\u003c/span\u003e block supports:\n"},"securityToken":{"type":"string","description":"Security token of the user.\n"},"username":{"type":"string","description":"Username to use for authentication.\n"}},"type":"object"},"gcp:datastream/ConnectionProfileSpannerProfile:ConnectionProfileSpannerProfile":{"properties":{"database":{"type":"string","description":"The full project and resource path for Spanner database. Format:\nprojects/{project}/instances/{instance}/databases/{database}.\n"},"host":{"type":"string","description":"The regional Spanner endpoint. Format:\nhttps://spanner.{region}.rep.googleapis.com.\n"}},"type":"object","required":["database"]},"gcp:datastream/ConnectionProfileSqlServerProfile:ConnectionProfileSqlServerProfile":{"properties":{"database":{"type":"string","description":"Database for the SQL Server connection.\n"},"hostname":{"type":"string","description":"Hostname for the SQL Server connection.\n"},"password":{"type":"string","description":"Password for the SQL Server connection.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"port":{"type":"integer","description":"Port for the SQL Server connection.\n"},"secretManagerStoredPassword":{"type":"string","description":"A reference to a Secret Manager resource name storing the user's password.\n"},"username":{"type":"string","description":"Username for the SQL Server connection.\n"}},"type":"object","required":["database","hostname","username"]},"gcp:datastream/PrivateConnectionError:PrivateConnectionError":{"properties":{"details":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of messages that carry the error details.\n"},"message":{"type":"string","description":"A message containing more information about the error that occurred.\n"}},"type":"object"},"gcp:datastream/PrivateConnectionPscInterfaceConfig:PrivateConnectionPscInterfaceConfig":{"properties":{"networkAttachment":{"type":"string","description":"Fully qualified name of the network attachment that Datastream will connect to.\nFormat: projects/{project}/regions/{region}/networkAttachments/{name}\nTo get Datastream project for the accepted list:\n`gcloud datastream private-connections create [PC ID] --location=[LOCATION] --network-attachment=[NA URI] --validate-only --display-name=[ANY STRING]`\nAdd Datastream project to the attachment accepted list:\n`gcloud compute network-attachments update [NA URI] --region=[NA region] --producer-accept-list=[TP from prev command]`\n","willReplaceOnChanges":true}},"type":"object","required":["networkAttachment"]},"gcp:datastream/PrivateConnectionVpcPeeringConfig:PrivateConnectionVpcPeeringConfig":{"properties":{"subnet":{"type":"string","description":"A free subnet for peering. (CIDR of /29)\n","willReplaceOnChanges":true},"vpc":{"type":"string","description":"Fully qualified name of the VPC that Datastream will peer to.\nFormat: projects/{project}/global/{networks}/{name}\n","willReplaceOnChanges":true}},"type":"object","required":["subnet","vpc"]},"gcp:datastream/StreamBackfillAll:StreamBackfillAll":{"properties":{"mongodbExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMongodbExcludedObjects:StreamBackfillAllMongodbExcludedObjects","description":"MongoDB data source objects to avoid backfilling.\nStructure is documented below.\n"},"mysqlExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMysqlExcludedObjects:StreamBackfillAllMysqlExcludedObjects","description":"MySQL data source objects to avoid backfilling.\nStructure is documented below.\n"},"oracleExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjects:StreamBackfillAllOracleExcludedObjects","description":"PostgreSQL data source objects to avoid backfilling.\nStructure is documented below.\n"},"postgresqlExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjects:StreamBackfillAllPostgresqlExcludedObjects","description":"PostgreSQL data source objects to avoid backfilling.\nStructure is documented below.\n"},"salesforceExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSalesforceExcludedObjects:StreamBackfillAllSalesforceExcludedObjects","description":"Salesforce objects to avoid backfilling.\nStructure is documented below.\n"},"spannerExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSpannerExcludedObjects:StreamBackfillAllSpannerExcludedObjects","description":"Spanner objects to avoid backfilling.\nStructure is documented below.\n"},"sqlServerExcludedObjects":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSqlServerExcludedObjects:StreamBackfillAllSqlServerExcludedObjects","description":"SQL Server data source objects to avoid backfilling.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamBackfillAllMongodbExcludedObjects:StreamBackfillAllMongodbExcludedObjects":{"properties":{"databases":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMongodbExcludedObjectsDatabase:StreamBackfillAllMongodbExcludedObjectsDatabase"},"description":"MongoDB databases in the cluster.\nStructure is documented below.\n"}},"type":"object","required":["databases"]},"gcp:datastream/StreamBackfillAllMongodbExcludedObjectsDatabase:StreamBackfillAllMongodbExcludedObjectsDatabase":{"properties":{"collections":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMongodbExcludedObjectsDatabaseCollection:StreamBackfillAllMongodbExcludedObjectsDatabaseCollection"},"description":"Collections in the database.\nStructure is documented below.\n"},"database":{"type":"string","description":"Database name.\n"}},"type":"object","required":["database"]},"gcp:datastream/StreamBackfillAllMongodbExcludedObjectsDatabaseCollection:StreamBackfillAllMongodbExcludedObjectsDatabaseCollection":{"properties":{"collection":{"type":"string","description":"Collection name.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMongodbExcludedObjectsDatabaseCollectionField:StreamBackfillAllMongodbExcludedObjectsDatabaseCollectionField"},"description":"Fields in the collection.\nStructure is documented below.\n"}},"type":"object","required":["collection"]},"gcp:datastream/StreamBackfillAllMongodbExcludedObjectsDatabaseCollectionField:StreamBackfillAllMongodbExcludedObjectsDatabaseCollectionField":{"properties":{"field":{"type":"string","description":"Field name.\n"}},"type":"object"},"gcp:datastream/StreamBackfillAllMysqlExcludedObjects:StreamBackfillAllMysqlExcludedObjects":{"properties":{"mysqlDatabases":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMysqlExcludedObjectsMysqlDatabase:StreamBackfillAllMysqlExcludedObjectsMysqlDatabase"},"description":"MySQL databases on the server\nStructure is documented below.\n"}},"type":"object","required":["mysqlDatabases"]},"gcp:datastream/StreamBackfillAllMysqlExcludedObjectsMysqlDatabase:StreamBackfillAllMysqlExcludedObjectsMysqlDatabase":{"properties":{"database":{"type":"string","description":"Database name.\n"},"mysqlTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTable:StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTable"},"description":"Tables in the database.\nStructure is documented below.\n"}},"type":"object","required":["database"]},"gcp:datastream/StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTable:StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTable":{"properties":{"mysqlColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumn"},"description":"MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumn":{"properties":{"collation":{"type":"string","description":"Column collation.\n"},"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The MySQL data type. Full data types list can be found here:\nhttps://dev.mysql.com/doc/refman/8.0/en/data-types.html\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"Whether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"The ordinal position of the column in the table.\n"},"primaryKey":{"type":"boolean","description":"Whether or not the column represents a primary key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length"]}}},"gcp:datastream/StreamBackfillAllOracleExcludedObjects:StreamBackfillAllOracleExcludedObjects":{"properties":{"oracleSchemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchema:StreamBackfillAllOracleExcludedObjectsOracleSchema"},"description":"Oracle schemas/databases in the database server\nStructure is documented below.\n"}},"type":"object","required":["oracleSchemas"]},"gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchema:StreamBackfillAllOracleExcludedObjectsOracleSchema":{"properties":{"oracleTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable"},"description":"Tables in the database.\nStructure is documented below.\n"},"schema":{"type":"string","description":"Schema name.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTable":{"properties":{"oracleColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn"},"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn:StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The Oracle data type. Full data types list can be found here:\nhttps://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html\n"},"encoding":{"type":"string","description":"(Output)\nColumn encoding.\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"(Output)\nWhether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"(Output)\nWhether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encoding","length","nullable","ordinalPosition","precision","primaryKey","scale"]}}},"gcp:datastream/StreamBackfillAllPostgresqlExcludedObjects:StreamBackfillAllPostgresqlExcludedObjects":{"properties":{"postgresqlSchemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema"},"description":"PostgreSQL schemas on the server\nStructure is documented below.\n"}},"type":"object","required":["postgresqlSchemas"]},"gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchema":{"properties":{"postgresqlTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable"},"description":"Tables in the schema.\nStructure is documented below.\n"},"schema":{"type":"string","description":"Database name.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTable":{"properties":{"postgresqlColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn"},"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The PostgreSQL data type. Full data types list can be found here:\nhttps://www.postgresql.org/docs/current/datatype.html\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"Whether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"The ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"Whether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length","precision","scale"]}}},"gcp:datastream/StreamBackfillAllSalesforceExcludedObjects:StreamBackfillAllSalesforceExcludedObjects":{"properties":{"objects":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSalesforceExcludedObjectsObject:StreamBackfillAllSalesforceExcludedObjectsObject"},"description":"Salesforce objects in Salesforce Org.\nStructure is documented below.\n"}},"type":"object","required":["objects"]},"gcp:datastream/StreamBackfillAllSalesforceExcludedObjectsObject:StreamBackfillAllSalesforceExcludedObjectsObject":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSalesforceExcludedObjectsObjectField:StreamBackfillAllSalesforceExcludedObjectsObjectField"},"description":"Fields in the Salesforce object. When unspecified as part of include/exclude objects, includes/excludes everything/nothing.\nStructure is documented below.\n"},"objectName":{"type":"string","description":"Name of object in Salesforce Org.\n"}},"type":"object"},"gcp:datastream/StreamBackfillAllSalesforceExcludedObjectsObjectField:StreamBackfillAllSalesforceExcludedObjectsObjectField":{"properties":{"name":{"type":"string","description":"Field name.\n"}},"type":"object"},"gcp:datastream/StreamBackfillAllSpannerExcludedObjects:StreamBackfillAllSpannerExcludedObjects":{"properties":{"schemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSpannerExcludedObjectsSchema:StreamBackfillAllSpannerExcludedObjectsSchema"},"description":"Spanner schemas in the database\nStructure is documented below.\n"}},"type":"object","required":["schemas"]},"gcp:datastream/StreamBackfillAllSpannerExcludedObjectsSchema:StreamBackfillAllSpannerExcludedObjectsSchema":{"properties":{"schema":{"type":"string","description":"Schema name.\n"},"tables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSpannerExcludedObjectsSchemaTable:StreamBackfillAllSpannerExcludedObjectsSchemaTable"},"description":"Tables in the schema.\nStructure is documented below.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamBackfillAllSpannerExcludedObjectsSchemaTable:StreamBackfillAllSpannerExcludedObjectsSchemaTable":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSpannerExcludedObjectsSchemaTableColumn:StreamBackfillAllSpannerExcludedObjectsSchemaTableColumn"},"description":"Spanner columns in the table. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamBackfillAllSpannerExcludedObjectsSchemaTableColumn:StreamBackfillAllSpannerExcludedObjectsSchemaTableColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"(Output)\nThe Spanner data type. Full data types list can be found here:\nhttps://docs.cloud.google.com/spanner/docs/reference/standard-sql/data-types\n"},"isPrimaryKey":{"type":"boolean","description":"(Output)\nWhether the column is a primary key.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"}},"type":"object","required":["column"],"language":{"nodejs":{"requiredOutputs":["column","dataType","isPrimaryKey","ordinalPosition"]}}},"gcp:datastream/StreamBackfillAllSqlServerExcludedObjects:StreamBackfillAllSqlServerExcludedObjects":{"properties":{"schemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSqlServerExcludedObjectsSchema:StreamBackfillAllSqlServerExcludedObjectsSchema"},"description":"SQL Server schemas/databases in the database server\nStructure is documented below.\n"}},"type":"object","required":["schemas"]},"gcp:datastream/StreamBackfillAllSqlServerExcludedObjectsSchema:StreamBackfillAllSqlServerExcludedObjectsSchema":{"properties":{"schema":{"type":"string","description":"Schema name.\n"},"tables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSqlServerExcludedObjectsSchemaTable:StreamBackfillAllSqlServerExcludedObjectsSchemaTable"},"description":"Tables in the schema.\nStructure is documented below.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamBackfillAllSqlServerExcludedObjectsSchemaTable:StreamBackfillAllSqlServerExcludedObjectsSchemaTable":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamBackfillAllSqlServerExcludedObjectsSchemaTableColumn:StreamBackfillAllSqlServerExcludedObjectsSchemaTableColumn"},"description":"Spanner columns in the table. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamBackfillAllSqlServerExcludedObjectsSchemaTableColumn:StreamBackfillAllSqlServerExcludedObjectsSchemaTableColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"(Output)\nThe Spanner data type. Full data types list can be found here:\nhttps://docs.cloud.google.com/spanner/docs/reference/standard-sql/data-types\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"(Output)\nWhether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"(Output)\nWhether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length","nullable","ordinalPosition","precision","primaryKey","scale"]}}},"gcp:datastream/StreamBackfillNone:StreamBackfillNone":{"type":"object"},"gcp:datastream/StreamDestinationConfig:StreamDestinationConfig":{"properties":{"bigqueryDestinationConfig":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig","description":"A configuration for how data should be loaded to Google BigQuery.\nStructure is documented below.\n"},"destinationConnectionProfile":{"type":"string","description":"Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}\n","willReplaceOnChanges":true},"gcsDestinationConfig":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfig:StreamDestinationConfigGcsDestinationConfig","description":"A configuration for how data should be loaded to Cloud Storage.\nStructure is documented below.\n"}},"type":"object","required":["destinationConnectionProfile"]},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig":{"properties":{"appendOnly":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigAppendOnly:StreamDestinationConfigBigqueryDestinationConfigAppendOnly","description":"AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE\nevents) to a source table will be written to the destination Google BigQuery table, retaining the\nhistorical state of the data.\n","willReplaceOnChanges":true},"blmtConfig":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigBlmtConfig:StreamDestinationConfigBigqueryDestinationConfigBlmtConfig","description":"BigLake Managed Tables configuration for BigQuery streams.\nStructure is documented below.\n"},"dataFreshness":{"type":"string","description":"The guaranteed data freshness (in seconds) when querying tables created by the stream.\nEditing this field will only affect new tables created in the future, but existing tables\nwill not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n"},"merge":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigMerge:StreamDestinationConfigBigqueryDestinationConfigMerge","description":"Merge mode defines that all changes to a table will be merged at the destination Google BigQuery\ntable. This is the default write mode. When selected, BigQuery reflects the way the data is stored\nin the source database. With Merge mode, no historical record of the change events is kept.\n","willReplaceOnChanges":true},"singleTargetDataset":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset","description":"A single target dataset to which all data will be streamed.\nStructure is documented below.\n"},"sourceHierarchyDatasets":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets","description":"Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigAppendOnly:StreamDestinationConfigBigqueryDestinationConfigAppendOnly":{"type":"object"},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigBlmtConfig:StreamDestinationConfigBigqueryDestinationConfigBlmtConfig":{"properties":{"bucket":{"type":"string","description":"The Cloud Storage bucket name.\n"},"connectionName":{"type":"string","description":"The bigquery connection. Format: `{project}.{location}.{name}`\n"},"fileFormat":{"type":"string","description":"The file format.\n"},"rootPath":{"type":"string","description":"The root path inside the Cloud Storage bucket.\n"},"tableFormat":{"type":"string","description":"The table format.\n"}},"type":"object","required":["bucket","connectionName","fileFormat","tableFormat"]},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigMerge:StreamDestinationConfigBigqueryDestinationConfigMerge":{"type":"object"},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset":{"properties":{"datasetId":{"type":"string","description":"Dataset ID in the format projects/{project}/datasets/{dataset_id} or\n{project}:{dataset_id}\n"}},"type":"object","required":["datasetId"]},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets":{"properties":{"datasetTemplate":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate","description":"Dataset template used for dynamic dataset creation.\nStructure is documented below.\n"},"projectId":{"type":"string","description":"Optional. The project id of the BigQuery dataset. If not specified, the project will be inferred from the stream resource.\n"}},"type":"object","required":["datasetTemplate"]},"gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate:StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate":{"properties":{"datasetIdPrefix":{"type":"string","description":"If supplied, every created dataset will have its name prefixed by the provided value.\nThe prefix and name will be separated by an underscore. i.e. _.\n"},"kmsKeyName":{"type":"string","description":"Describes the Cloud KMS encryption key that will be used to protect destination BigQuery\ntable. The BigQuery Service Account associated with your project requires access to this\nencryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}.\nSee https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.\n","willReplaceOnChanges":true},"location":{"type":"string","description":"The geographic location where the dataset should reside.\nSee https://cloud.google.com/bigquery/docs/locations for supported locations.\n"}},"type":"object","required":["location"]},"gcp:datastream/StreamDestinationConfigGcsDestinationConfig:StreamDestinationConfigGcsDestinationConfig":{"properties":{"avroFileFormat":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfigAvroFileFormat:StreamDestinationConfigGcsDestinationConfigAvroFileFormat","description":"AVRO file format configuration.\n"},"fileRotationInterval":{"type":"string","description":"The maximum duration for which new events are added before a file is closed and a new file is created.\nA duration in seconds with up to nine fractional digits, terminated by 's'. Example: \"3.5s\". Defaults to 900s.\n"},"fileRotationMb":{"type":"integer","description":"The maximum file size to be saved in the bucket.\n"},"jsonFileFormat":{"$ref":"#/types/gcp:datastream/StreamDestinationConfigGcsDestinationConfigJsonFileFormat:StreamDestinationConfigGcsDestinationConfigJsonFileFormat","description":"JSON file format configuration.\nStructure is documented below.\n"},"path":{"type":"string","description":"Path inside the Cloud Storage bucket to write data to.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["fileRotationInterval","fileRotationMb"]}}},"gcp:datastream/StreamDestinationConfigGcsDestinationConfigAvroFileFormat:StreamDestinationConfigGcsDestinationConfigAvroFileFormat":{"type":"object"},"gcp:datastream/StreamDestinationConfigGcsDestinationConfigJsonFileFormat:StreamDestinationConfigGcsDestinationConfigJsonFileFormat":{"properties":{"compression":{"type":"string","description":"Compression of the loaded JSON file.\nPossible values are: `NO_COMPRESSION`, `GZIP`.\n"},"schemaFileFormat":{"type":"string","description":"The schema file format along JSON data files.\nPossible values are: `NO_SCHEMA_FILE`, `AVRO_SCHEMA_FILE`.\n"}},"type":"object"},"gcp:datastream/StreamRuleSet:StreamRuleSet":{"properties":{"customizationRules":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamRuleSetCustomizationRule:StreamRuleSetCustomizationRule"},"description":"List of customization rules to apply.\nStructure is documented below.\n"},"objectFilter":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilter:StreamRuleSetObjectFilter","description":"Object filter to apply the customization rules to.\nStructure is documented below.\n"}},"type":"object","required":["customizationRules","objectFilter"]},"gcp:datastream/StreamRuleSetCustomizationRule:StreamRuleSetCustomizationRule":{"properties":{"bigqueryClustering":{"$ref":"#/types/gcp:datastream/StreamRuleSetCustomizationRuleBigqueryClustering:StreamRuleSetCustomizationRuleBigqueryClustering","description":"BigQuery clustering rule.\nStructure is documented below.\n"},"bigqueryPartitioning":{"$ref":"#/types/gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioning:StreamRuleSetCustomizationRuleBigqueryPartitioning","description":"BigQuery partitioning rule.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamRuleSetCustomizationRuleBigqueryClustering:StreamRuleSetCustomizationRuleBigqueryClustering":{"properties":{"columns":{"type":"array","items":{"type":"string"},"description":"Column names to set as clustering columns.\n"}},"type":"object","required":["columns"]},"gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioning:StreamRuleSetCustomizationRuleBigqueryPartitioning":{"properties":{"ingestionTimePartition":{"$ref":"#/types/gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioningIngestionTimePartition:StreamRuleSetCustomizationRuleBigqueryPartitioningIngestionTimePartition","description":"A nested object resource.\nStructure is documented below.\n"},"integerRangePartition":{"$ref":"#/types/gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioningIntegerRangePartition:StreamRuleSetCustomizationRuleBigqueryPartitioningIntegerRangePartition","description":"A nested object resource.\nStructure is documented below.\n"},"requirePartitionFilter":{"type":"boolean","description":"If true, queries over the table require a partition filter.\n"},"timeUnitPartition":{"$ref":"#/types/gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioningTimeUnitPartition:StreamRuleSetCustomizationRuleBigqueryPartitioningTimeUnitPartition","description":"A nested object resource.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioningIngestionTimePartition:StreamRuleSetCustomizationRuleBigqueryPartitioningIngestionTimePartition":{"properties":{"partitioningTimeGranularity":{"type":"string","description":"Partition granularity.\nPossible values are: `PARTITIONING_TIME_GRANULARITY_UNSPECIFIED`, `PARTITIONING_TIME_GRANULARITY_HOUR`, `PARTITIONING_TIME_GRANULARITY_DAY`, `PARTITIONING_TIME_GRANULARITY_MONTH`, `PARTITIONING_TIME_GRANULARITY_YEAR`.\n"}},"type":"object"},"gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioningIntegerRangePartition:StreamRuleSetCustomizationRuleBigqueryPartitioningIntegerRangePartition":{"properties":{"column":{"type":"string","description":"The partitioning column.\n"},"end":{"type":"integer","description":"The ending value for range partitioning (exclusive).\n"},"interval":{"type":"integer","description":"The interval of each range within the partition.\n"},"start":{"type":"integer","description":"The starting value for range partitioning (inclusive).\n"}},"type":"object","required":["column","end","interval","start"]},"gcp:datastream/StreamRuleSetCustomizationRuleBigqueryPartitioningTimeUnitPartition:StreamRuleSetCustomizationRuleBigqueryPartitioningTimeUnitPartition":{"properties":{"column":{"type":"string","description":"The partitioning column.\n"},"partitioningTimeGranularity":{"type":"string","description":"Partition granularity.\nPossible values are: `PARTITIONING_TIME_GRANULARITY_UNSPECIFIED`, `PARTITIONING_TIME_GRANULARITY_HOUR`, `PARTITIONING_TIME_GRANULARITY_DAY`, `PARTITIONING_TIME_GRANULARITY_MONTH`, `PARTITIONING_TIME_GRANULARITY_YEAR`.\n"}},"type":"object","required":["column"]},"gcp:datastream/StreamRuleSetObjectFilter:StreamRuleSetObjectFilter":{"properties":{"sourceObjectIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifier","description":"Specific source object identifier.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifier":{"properties":{"mongodbIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierMongodbIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierMongodbIdentifier","description":"A nested object resource.\nStructure is documented below.\n"},"mysqlIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierMysqlIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierMysqlIdentifier","description":"A nested object resource.\nStructure is documented below.\n"},"oracleIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierOracleIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierOracleIdentifier","description":"A nested object resource.\nStructure is documented below.\n"},"postgresqlIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierPostgresqlIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierPostgresqlIdentifier","description":"A nested object resource.\nStructure is documented below.\n"},"salesforceIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierSalesforceIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierSalesforceIdentifier","description":"A nested object resource.\nStructure is documented below.\n"},"spannerIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierSpannerIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierSpannerIdentifier","description":"A nested object resource.\nStructure is documented below.\n"},"sqlServerIdentifier":{"$ref":"#/types/gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierSqlServerIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierSqlServerIdentifier","description":"A nested object resource.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierMongodbIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierMongodbIdentifier":{"properties":{"collection":{"type":"string","description":"The MongoDB collection name.\n"},"database":{"type":"string","description":"The MongoDB database name.\n"}},"type":"object","required":["collection","database"]},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierMysqlIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierMysqlIdentifier":{"properties":{"database":{"type":"string","description":"The database name.\n"},"table":{"type":"string","description":"The table name.\n"}},"type":"object","required":["database","table"]},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierOracleIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierOracleIdentifier":{"properties":{"schema":{"type":"string","description":"The schema name.\n"},"table":{"type":"string","description":"The table name.\n"}},"type":"object","required":["schema","table"]},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierPostgresqlIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierPostgresqlIdentifier":{"properties":{"schema":{"type":"string","description":"The schema name.\n"},"table":{"type":"string","description":"The table name.\n"}},"type":"object","required":["schema","table"]},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierSalesforceIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierSalesforceIdentifier":{"properties":{"objectName":{"type":"string","description":"The Salesforce object name.\n"}},"type":"object","required":["objectName"]},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierSpannerIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierSpannerIdentifier":{"properties":{"schema":{"type":"string","description":"The schema name.\n"},"table":{"type":"string","description":"The table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamRuleSetObjectFilterSourceObjectIdentifierSqlServerIdentifier:StreamRuleSetObjectFilterSourceObjectIdentifierSqlServerIdentifier":{"properties":{"schema":{"type":"string","description":"The schema name.\n"},"table":{"type":"string","description":"The table name.\n"}},"type":"object","required":["schema","table"]},"gcp:datastream/StreamSourceConfig:StreamSourceConfig":{"properties":{"mongodbSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfig:StreamSourceConfigMongodbSourceConfig","description":"MongoDB source configuration.\nStructure is documented below.\n"},"mysqlSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfig:StreamSourceConfigMysqlSourceConfig","description":"MySQL data source configuration.\nStructure is documented below.\n"},"oracleSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfig:StreamSourceConfigOracleSourceConfig","description":"MySQL data source configuration.\nStructure is documented below.\n"},"postgresqlSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfig:StreamSourceConfigPostgresqlSourceConfig","description":"PostgreSQL data source configuration.\nStructure is documented below.\n"},"salesforceSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfig:StreamSourceConfigSalesforceSourceConfig","description":"Salesforce data source configuration.\nStructure is documented below.\n"},"sourceConnectionProfile":{"type":"string","description":"Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}\n","willReplaceOnChanges":true},"spannerSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfig:StreamSourceConfigSpannerSourceConfig","description":"Spanner data source configuration.\nStructure is documented below.\n"},"sqlServerSourceConfig":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfig:StreamSourceConfigSqlServerSourceConfig","description":"SQL Server data source configuration.\nStructure is documented below.\n"}},"type":"object","required":["sourceConnectionProfile"]},"gcp:datastream/StreamSourceConfigMongodbSourceConfig:StreamSourceConfigMongodbSourceConfig":{"properties":{"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjects:StreamSourceConfigMongodbSourceConfigExcludeObjects","description":"MongoDB collections to include in the stream.\nStructure is documented below.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjects:StreamSourceConfigMongodbSourceConfigIncludeObjects","description":"MongoDB collections to include in the stream.\nStructure is documented below.\n"},"maxConcurrentBackfillTasks":{"type":"integer","description":"Optional. Maximum number of concurrent backfill tasks. The number\nshould be non-negative and less than or equal to 50. If not set\n(or set to 0), the system''s default value is used\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjects:StreamSourceConfigMongodbSourceConfigExcludeObjects":{"properties":{"databases":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabase:StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabase"},"description":"MongoDB databases in the cluster.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabase:StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabase":{"properties":{"collections":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollection:StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollection"},"description":"Collections in the database.\nStructure is documented below.\n"},"database":{"type":"string","description":"Database name.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollection:StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollection":{"properties":{"collection":{"type":"string","description":"Collection name.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollectionField:StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollectionField"},"description":"Fields in the collection.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollectionField:StreamSourceConfigMongodbSourceConfigExcludeObjectsDatabaseCollectionField":{"properties":{"field":{"type":"string","description":"Field name.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjects:StreamSourceConfigMongodbSourceConfigIncludeObjects":{"properties":{"databases":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabase:StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabase"},"description":"MongoDB databases in the cluster.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabase:StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabase":{"properties":{"collections":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollection:StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollection"},"description":"Collections in the database.\nStructure is documented below.\n"},"database":{"type":"string","description":"Database name.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollection:StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollection":{"properties":{"collection":{"type":"string","description":"Collection name.\n"},"fields":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollectionField:StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollectionField"},"description":"Fields in the collection.\nStructure is documented below.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollectionField:StreamSourceConfigMongodbSourceConfigIncludeObjectsDatabaseCollectionField":{"properties":{"field":{"type":"string","description":"Field name.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigMysqlSourceConfig:StreamSourceConfigMysqlSourceConfig":{"properties":{"binaryLogPosition":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigBinaryLogPosition:StreamSourceConfigMysqlSourceConfigBinaryLogPosition","description":"CDC reader reads from binary logs replication cdc method.\n"},"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjects:StreamSourceConfigMysqlSourceConfigExcludeObjects","description":"MySQL objects to exclude from the stream.\nStructure is documented below.\n"},"gtid":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigGtid:StreamSourceConfigMysqlSourceConfigGtid","description":"CDC reader reads from gtid based replication.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjects:StreamSourceConfigMysqlSourceConfigIncludeObjects","description":"MySQL objects to retrieve from the source.\nStructure is documented below.\n"},"maxConcurrentBackfillTasks":{"type":"integer","description":"Maximum number of concurrent backfill tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n"},"maxConcurrentCdcTasks":{"type":"integer","description":"Maximum number of concurrent CDC tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxConcurrentBackfillTasks","maxConcurrentCdcTasks"]}}},"gcp:datastream/StreamSourceConfigMysqlSourceConfigBinaryLogPosition:StreamSourceConfigMysqlSourceConfigBinaryLogPosition":{"type":"object"},"gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjects:StreamSourceConfigMysqlSourceConfigExcludeObjects":{"properties":{"mysqlDatabases":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase"},"description":"MySQL databases on the server\nStructure is documented below.\n"}},"type":"object","required":["mysqlDatabases"]},"gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabase":{"properties":{"database":{"type":"string","description":"Database name.\n"},"mysqlTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable"},"description":"Tables in the database.\nStructure is documented below.\n"}},"type":"object","required":["database"]},"gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTable":{"properties":{"mysqlColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn"},"description":"MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumn":{"properties":{"collation":{"type":"string","description":"Column collation.\n"},"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The MySQL data type. Full data types list can be found here:\nhttps://dev.mysql.com/doc/refman/8.0/en/data-types.html\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"Whether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"The ordinal position of the column in the table.\n"},"primaryKey":{"type":"boolean","description":"Whether or not the column represents a primary key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length"]}}},"gcp:datastream/StreamSourceConfigMysqlSourceConfigGtid:StreamSourceConfigMysqlSourceConfigGtid":{"type":"object"},"gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjects:StreamSourceConfigMysqlSourceConfigIncludeObjects":{"properties":{"mysqlDatabases":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase"},"description":"MySQL databases on the server\nStructure is documented below.\n"}},"type":"object","required":["mysqlDatabases"]},"gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabase":{"properties":{"database":{"type":"string","description":"Database name.\n"},"mysqlTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable"},"description":"Tables in the database.\nStructure is documented below.\n"}},"type":"object","required":["database"]},"gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTable":{"properties":{"mysqlColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn"},"description":"MySQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn:StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumn":{"properties":{"collation":{"type":"string","description":"Column collation.\n"},"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The MySQL data type. Full data types list can be found here:\nhttps://dev.mysql.com/doc/refman/8.0/en/data-types.html\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"Whether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"The ordinal position of the column in the table.\n"},"primaryKey":{"type":"boolean","description":"Whether or not the column represents a primary key.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length"]}}},"gcp:datastream/StreamSourceConfigOracleSourceConfig:StreamSourceConfigOracleSourceConfig":{"properties":{"dropLargeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigDropLargeObjects:StreamSourceConfigOracleSourceConfigDropLargeObjects","description":"Configuration to drop large object values.\n"},"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjects:StreamSourceConfigOracleSourceConfigExcludeObjects","description":"Oracle objects to exclude from the stream.\nStructure is documented below.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjects:StreamSourceConfigOracleSourceConfigIncludeObjects","description":"Oracle objects to retrieve from the source.\nStructure is documented below.\n"},"maxConcurrentBackfillTasks":{"type":"integer","description":"Maximum number of concurrent backfill tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n"},"maxConcurrentCdcTasks":{"type":"integer","description":"Maximum number of concurrent CDC tasks. The number should be non negative.\nIf not set (or set to 0), the system's default value will be used.\n"},"streamLargeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigStreamLargeObjects:StreamSourceConfigOracleSourceConfigStreamLargeObjects","description":"Configuration to drop large object values.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxConcurrentBackfillTasks","maxConcurrentCdcTasks"]}}},"gcp:datastream/StreamSourceConfigOracleSourceConfigDropLargeObjects:StreamSourceConfigOracleSourceConfigDropLargeObjects":{"type":"object"},"gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjects:StreamSourceConfigOracleSourceConfigExcludeObjects":{"properties":{"oracleSchemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema"},"description":"Oracle schemas/databases in the database server\nStructure is documented below.\n"}},"type":"object","required":["oracleSchemas"]},"gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchema":{"properties":{"oracleTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable"},"description":"Tables in the database.\nStructure is documented below.\n"},"schema":{"type":"string","description":"Schema name.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTable":{"properties":{"oracleColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn"},"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The Oracle data type. Full data types list can be found here:\nhttps://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html\n"},"encoding":{"type":"string","description":"(Output)\nColumn encoding.\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"(Output)\nWhether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"(Output)\nWhether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encoding","length","nullable","ordinalPosition","precision","primaryKey","scale"]}}},"gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjects:StreamSourceConfigOracleSourceConfigIncludeObjects":{"properties":{"oracleSchemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema"},"description":"Oracle schemas/databases in the database server\nStructure is documented below.\n"}},"type":"object","required":["oracleSchemas"]},"gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchema":{"properties":{"oracleTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable"},"description":"Tables in the database.\nStructure is documented below.\n"},"schema":{"type":"string","description":"Schema name.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTable":{"properties":{"oracleColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn"},"description":"Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn:StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The Oracle data type. Full data types list can be found here:\nhttps://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html\n"},"encoding":{"type":"string","description":"(Output)\nColumn encoding.\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"(Output)\nWhether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"(Output)\nWhether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["encoding","length","nullable","ordinalPosition","precision","primaryKey","scale"]}}},"gcp:datastream/StreamSourceConfigOracleSourceConfigStreamLargeObjects:StreamSourceConfigOracleSourceConfigStreamLargeObjects":{"type":"object"},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfig:StreamSourceConfigPostgresqlSourceConfig":{"properties":{"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjects:StreamSourceConfigPostgresqlSourceConfigExcludeObjects","description":"PostgreSQL objects to exclude from the stream.\nStructure is documented below.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjects:StreamSourceConfigPostgresqlSourceConfigIncludeObjects","description":"PostgreSQL objects to retrieve from the source.\nStructure is documented below.\n"},"maxConcurrentBackfillTasks":{"type":"integer","description":"Maximum number of concurrent backfill tasks. The number should be non\nnegative. If not set (or set to 0), the system's default value will be used.\n"},"publication":{"type":"string","description":"The name of the publication that includes the set of all tables\nthat are defined in the stream's include_objects.\n"},"replicationSlot":{"type":"string","description":"The name of the logical replication slot that's configured with\nthe pgoutput plugin.\n"}},"type":"object","required":["publication","replicationSlot"],"language":{"nodejs":{"requiredOutputs":["maxConcurrentBackfillTasks","publication","replicationSlot"]}}},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjects:StreamSourceConfigPostgresqlSourceConfigExcludeObjects":{"properties":{"postgresqlSchemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema"},"description":"PostgreSQL schemas on the server\nStructure is documented below.\n"}},"type":"object","required":["postgresqlSchemas"]},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchema":{"properties":{"postgresqlTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable"},"description":"Tables in the schema.\nStructure is documented below.\n"},"schema":{"type":"string","description":"Database name.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTable":{"properties":{"postgresqlColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn"},"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The PostgreSQL data type. Full data types list can be found here:\nhttps://www.postgresql.org/docs/current/datatype.html\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"Whether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"The ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"Whether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length","precision","scale"]}}},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjects:StreamSourceConfigPostgresqlSourceConfigIncludeObjects":{"properties":{"postgresqlSchemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema"},"description":"PostgreSQL schemas on the server\nStructure is documented below.\n"}},"type":"object","required":["postgresqlSchemas"]},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchema":{"properties":{"postgresqlTables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable"},"description":"Tables in the schema.\nStructure is documented below.\n"},"schema":{"type":"string","description":"Database name.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTable":{"properties":{"postgresqlColumns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn"},"description":"PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn:StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"The PostgreSQL data type. Full data types list can be found here:\nhttps://www.postgresql.org/docs/current/datatype.html\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"Whether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"The ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"Whether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length","precision","scale"]}}},"gcp:datastream/StreamSourceConfigSalesforceSourceConfig:StreamSourceConfigSalesforceSourceConfig":{"properties":{"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfigExcludeObjects:StreamSourceConfigSalesforceSourceConfigExcludeObjects","description":"Salesforce objects to exclude from the stream.\nStructure is documented below.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfigIncludeObjects:StreamSourceConfigSalesforceSourceConfigIncludeObjects","description":"Salesforce objects to retrieve from the source.\nStructure is documented below.\n"},"pollingInterval":{"type":"string","description":"Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be between 5 minutes and 24 hours.\n"}},"type":"object","required":["pollingInterval"]},"gcp:datastream/StreamSourceConfigSalesforceSourceConfigExcludeObjects:StreamSourceConfigSalesforceSourceConfigExcludeObjects":{"properties":{"objects":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfigExcludeObjectsObject:StreamSourceConfigSalesforceSourceConfigExcludeObjectsObject"},"description":"Salesforce objects in data source.\nStructure is documented below.\n"}},"type":"object","required":["objects"]},"gcp:datastream/StreamSourceConfigSalesforceSourceConfigExcludeObjectsObject:StreamSourceConfigSalesforceSourceConfigExcludeObjectsObject":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectField:StreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectField"},"description":"Fields in the Salesforce object. When unspecified as part of include/exclude objects, includes/excludes everything/nothing.\nStructure is documented below.\n"},"objectName":{"type":"string","description":"Name of object in Salesforce Org.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectField:StreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectField":{"properties":{"name":{"type":"string","description":"Field name.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigSalesforceSourceConfigIncludeObjects:StreamSourceConfigSalesforceSourceConfigIncludeObjects":{"properties":{"objects":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfigIncludeObjectsObject:StreamSourceConfigSalesforceSourceConfigIncludeObjectsObject"},"description":"Salesforce objects in Salesforce Org.\nStructure is documented below.\n"}},"type":"object","required":["objects"]},"gcp:datastream/StreamSourceConfigSalesforceSourceConfigIncludeObjectsObject:StreamSourceConfigSalesforceSourceConfigIncludeObjectsObject":{"properties":{"fields":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectField:StreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectField"},"description":"Fields in the Salesforce object. When unspecified as part of include/exclude objects, includes/excludes everything/nothing.\nStructure is documented below.\n"},"objectName":{"type":"string","description":"Name of object in Salesforce Org.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectField:StreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectField":{"properties":{"name":{"type":"string","description":"Field name.\n"}},"type":"object"},"gcp:datastream/StreamSourceConfigSpannerSourceConfig:StreamSourceConfigSpannerSourceConfig":{"properties":{"backfillDataBoostEnabled":{"type":"boolean","description":"Whether to use DataBoost for backfill queries.\n"},"changeStreamName":{"type":"string","description":"The Spanner change stream name to use.\n"},"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjects:StreamSourceConfigSpannerSourceConfigExcludeObjects","description":"Spanner objects to retrieve from the source.\nStructure is documented below.\n"},"fgacRole":{"type":"string","description":"The FGAC role to use for Spanner queries.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjects:StreamSourceConfigSpannerSourceConfigIncludeObjects","description":"Spanner objects to retrieve from the source.\nStructure is documented below.\n"},"maxConcurrentBackfillTasks":{"type":"integer","description":"Max concurrent backfill tasks.\n"},"maxConcurrentCdcTasks":{"type":"integer","description":"Max concurrent CDC tasks.\n"},"spannerRpcPriority":{"type":"string","description":"The RPC priority to use for Spanner queries.\nPossible values are: `LOW`, `MEDIUM`, `HIGH`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxConcurrentBackfillTasks","maxConcurrentCdcTasks"]}}},"gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjects:StreamSourceConfigSpannerSourceConfigExcludeObjects":{"properties":{"schemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjectsSchema:StreamSourceConfigSpannerSourceConfigExcludeObjectsSchema"},"description":"Spanner schemas in the database\nStructure is documented below.\n"}},"type":"object","required":["schemas"]},"gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjectsSchema:StreamSourceConfigSpannerSourceConfigExcludeObjectsSchema":{"properties":{"schema":{"type":"string","description":"Schema name.\n"},"tables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTable:StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTable"},"description":"Tables in the schema.\nStructure is documented below.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTable:StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTable":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTableColumn:StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTableColumn"},"description":"Spanner columns in the table. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTableColumn:StreamSourceConfigSpannerSourceConfigExcludeObjectsSchemaTableColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"(Output)\nThe Spanner data type. Full data types list can be found here:\nhttps://docs.cloud.google.com/spanner/docs/reference/standard-sql/data-types\n"},"isPrimaryKey":{"type":"boolean","description":"(Output)\nWhether the column is a primary key.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataType","isPrimaryKey","ordinalPosition"]}}},"gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjects:StreamSourceConfigSpannerSourceConfigIncludeObjects":{"properties":{"schemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjectsSchema:StreamSourceConfigSpannerSourceConfigIncludeObjectsSchema"},"description":"Spanner schemas in the database\nStructure is documented below.\n"}},"type":"object","required":["schemas"]},"gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjectsSchema:StreamSourceConfigSpannerSourceConfigIncludeObjectsSchema":{"properties":{"schema":{"type":"string","description":"Schema name.\n"},"tables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTable:StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTable"},"description":"Tables in the schema.\nStructure is documented below.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTable:StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTable":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTableColumn:StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTableColumn"},"description":"Spanner columns in the table. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTableColumn:StreamSourceConfigSpannerSourceConfigIncludeObjectsSchemaTableColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"(Output)\nThe Spanner data type. Full data types list can be found here:\nhttps://docs.cloud.google.com/spanner/docs/reference/standard-sql/data-types\n"},"isPrimaryKey":{"type":"boolean","description":"(Output)\nWhether the column is a primary key.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataType","isPrimaryKey","ordinalPosition"]}}},"gcp:datastream/StreamSourceConfigSqlServerSourceConfig:StreamSourceConfigSqlServerSourceConfig":{"properties":{"changeTables":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigChangeTables:StreamSourceConfigSqlServerSourceConfigChangeTables","description":"CDC reader reads from change tables.\n"},"excludeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjects:StreamSourceConfigSqlServerSourceConfigExcludeObjects","description":"SQL Server objects to exclude from the stream.\nStructure is documented below.\n"},"includeObjects":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjects:StreamSourceConfigSqlServerSourceConfigIncludeObjects","description":"SQL Server objects to retrieve from the source.\nStructure is documented below.\n"},"maxConcurrentBackfillTasks":{"type":"integer","description":"Max concurrent backfill tasks.\n"},"maxConcurrentCdcTasks":{"type":"integer","description":"Max concurrent CDC tasks.\n"},"transactionLogs":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigTransactionLogs:StreamSourceConfigSqlServerSourceConfigTransactionLogs","description":"CDC reader reads from transaction logs.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxConcurrentBackfillTasks","maxConcurrentCdcTasks"]}}},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigChangeTables:StreamSourceConfigSqlServerSourceConfigChangeTables":{"type":"object"},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjects:StreamSourceConfigSqlServerSourceConfigExcludeObjects":{"properties":{"schemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchema:StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchema"},"description":"Spanner schemas in the database\nStructure is documented below.\n"}},"type":"object","required":["schemas"]},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchema:StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchema":{"properties":{"schema":{"type":"string","description":"Schema name.\n"},"tables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTable:StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTable"},"description":"Tables in the schema.\nStructure is documented below.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTable:StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTable":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTableColumn:StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTableColumn"},"description":"Spanner columns in the table. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTableColumn:StreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemaTableColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"(Output)\nThe Spanner data type. Full data types list can be found here:\nhttps://docs.cloud.google.com/spanner/docs/reference/standard-sql/data-types\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"(Output)\nWhether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"(Output)\nWhether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length","nullable","ordinalPosition","precision","primaryKey","scale"]}}},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjects:StreamSourceConfigSqlServerSourceConfigIncludeObjects":{"properties":{"schemas":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchema:StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchema"},"description":"Spanner schemas in the database\nStructure is documented below.\n"}},"type":"object","required":["schemas"]},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchema:StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchema":{"properties":{"schema":{"type":"string","description":"Schema name.\n"},"tables":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTable:StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTable"},"description":"Tables in the schema.\nStructure is documented below.\n"}},"type":"object","required":["schema"]},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTable:StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTable":{"properties":{"columns":{"type":"array","items":{"$ref":"#/types/gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableColumn:StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableColumn"},"description":"Spanner columns in the table. When unspecified as part of include/exclude objects, includes/excludes everything.\nStructure is documented below.\n"},"table":{"type":"string","description":"Table name.\n"}},"type":"object","required":["table"]},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableColumn:StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableColumn":{"properties":{"column":{"type":"string","description":"Column name.\n"},"dataType":{"type":"string","description":"(Output)\nThe Spanner data type. Full data types list can be found here:\nhttps://docs.cloud.google.com/spanner/docs/reference/standard-sql/data-types\n"},"length":{"type":"integer","description":"(Output)\nColumn length.\n"},"nullable":{"type":"boolean","description":"(Output)\nWhether or not the column can accept a null value.\n"},"ordinalPosition":{"type":"integer","description":"(Output)\nThe ordinal position of the column in the table.\n"},"precision":{"type":"integer","description":"(Output)\nColumn precision.\n"},"primaryKey":{"type":"boolean","description":"(Output)\nWhether or not the column represents a primary key.\n"},"scale":{"type":"integer","description":"(Output)\nColumn scale.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["length","nullable","ordinalPosition","precision","primaryKey","scale"]}}},"gcp:datastream/StreamSourceConfigSqlServerSourceConfigTransactionLogs:StreamSourceConfigSqlServerSourceConfigTransactionLogs":{"type":"object"},"gcp:deploymentmanager/DeploymentLabel:DeploymentLabel":{"properties":{"key":{"type":"string","description":"Key for label.\n"},"value":{"type":"string","description":"Value of label.\n"}},"type":"object"},"gcp:deploymentmanager/DeploymentTarget:DeploymentTarget":{"properties":{"config":{"$ref":"#/types/gcp:deploymentmanager/DeploymentTargetConfig:DeploymentTargetConfig","description":"The root configuration file to use for this deployment.\nStructure is documented below.\n"},"imports":{"type":"array","items":{"$ref":"#/types/gcp:deploymentmanager/DeploymentTargetImport:DeploymentTargetImport"},"description":"Specifies import files for this configuration. This can be\nused to import templates or other files. For example, you might\nimport a text file in order to use the file in a template.\nStructure is documented below.\n"}},"type":"object","required":["config"]},"gcp:deploymentmanager/DeploymentTargetConfig:DeploymentTargetConfig":{"properties":{"content":{"type":"string","description":"The full YAML contents of your configuration file.\n"}},"type":"object","required":["content"]},"gcp:deploymentmanager/DeploymentTargetImport:DeploymentTargetImport":{"properties":{"content":{"type":"string","description":"The full contents of the template that you want to import.\n"},"name":{"type":"string","description":"The name of the template to import, as declared in the YAML\nconfiguration.\n"}},"type":"object"},"gcp:developerconnect/AccountConnectorProviderOauthConfig:AccountConnectorProviderOauthConfig":{"properties":{"scopes":{"type":"array","items":{"type":"string"},"description":"Required. User selected scopes to apply to the Oauth config\nIn the event of changing scopes, user records under AccountConnector will\nbe deleted and users will re-auth again.\n"},"systemProviderId":{"type":"string","description":"List of providers that are owned by Developer Connect.\nPossible values:\nGITHUB\nGITLAB\nGOOGLE\nSENTRY\nROVO\nNEW_RELIC\nDATASTAX\n","willReplaceOnChanges":true}},"type":"object","required":["scopes"]},"gcp:developerconnect/ConnectionBitbucketCloudConfig:ConnectionBitbucketCloudConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionBitbucketCloudConfigAuthorizerCredential:ConnectionBitbucketCloudConfigAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionBitbucketCloudConfigReadAuthorizerCredential:ConnectionBitbucketCloudConfigReadAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret used to verify webhook\nevents, formatted as `projects/*/secrets/*/versions/*`. This is used to\nvalidate and create webhooks.\n","willReplaceOnChanges":true},"workspace":{"type":"string","description":"Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud Platform.\n"}},"type":"object","required":["authorizerCredential","readAuthorizerCredential","webhookSecretSecretVersion","workspace"]},"gcp:developerconnect/ConnectionBitbucketCloudConfigAuthorizerCredential:ConnectionBitbucketCloudConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionBitbucketCloudConfigReadAuthorizerCredential:ConnectionBitbucketCloudConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionBitbucketDataCenterConfig:ConnectionBitbucketDataCenterConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionBitbucketDataCenterConfigAuthorizerCredential:ConnectionBitbucketDataCenterConfigAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"hostUri":{"type":"string","description":"Required. The URI of the Bitbucket Data Center host this connection is for.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionBitbucketDataCenterConfigReadAuthorizerCredential:ConnectionBitbucketDataCenterConfigReadAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"serverVersion":{"type":"string","description":"(Output)\nOutput only. Version of the Bitbucket Data Center server running on the \u003cspan pulumi-lang-nodejs=\"`hostUri`\" pulumi-lang-dotnet=\"`HostUri`\" pulumi-lang-go=\"`hostUri`\" pulumi-lang-python=\"`host_uri`\" pulumi-lang-yaml=\"`hostUri`\" pulumi-lang-java=\"`hostUri`\"\u003e`host_uri`\u003c/span\u003e.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:developerconnect/ConnectionBitbucketDataCenterConfigServiceDirectoryConfig:ConnectionBitbucketDataCenterConfigServiceDirectoryConfig","description":"ServiceDirectoryConfig represents Service Directory configuration for a\nconnection.\nStructure is documented below.\n"},"sslCaCertificate":{"type":"string","description":"Optional. SSL certificate authority to trust when making requests to Bitbucket Data\nCenter.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret used to verify webhook\nevents, formatted as `projects/*/secrets/*/versions/*`. This is used to\nvalidate webhooks.\n","willReplaceOnChanges":true}},"type":"object","required":["authorizerCredential","hostUri","readAuthorizerCredential","webhookSecretSecretVersion"],"language":{"nodejs":{"requiredOutputs":["authorizerCredential","hostUri","readAuthorizerCredential","serverVersion","webhookSecretSecretVersion"]}}},"gcp:developerconnect/ConnectionBitbucketDataCenterConfigAuthorizerCredential:ConnectionBitbucketDataCenterConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionBitbucketDataCenterConfigReadAuthorizerCredential:ConnectionBitbucketDataCenterConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionBitbucketDataCenterConfigServiceDirectoryConfig:ConnectionBitbucketDataCenterConfigServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"Required. The Service Directory service name.\nFormat:\nprojects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.\n"}},"type":"object","required":["service"]},"gcp:developerconnect/ConnectionCryptoKeyConfig:ConnectionCryptoKeyConfig":{"properties":{"keyReference":{"type":"string","description":"Required. The name of the key which is used to encrypt/decrypt customer data. For key\nin Cloud KMS, the key should be in the format of\n`projects/*/locations/*/keyRings/*/cryptoKeys/*`.\n"}},"type":"object","required":["keyReference"]},"gcp:developerconnect/ConnectionGithubConfig:ConnectionGithubConfig":{"properties":{"appInstallationId":{"type":"string","description":"Optional. GitHub App installation id.\n"},"authorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionGithubConfigAuthorizerCredential:ConnectionGithubConfigAuthorizerCredential","description":"Represents an OAuth token of the account that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"githubApp":{"type":"string","description":"Required. Immutable. The GitHub Application that was installed to the GitHub user or\norganization.\nPossible values:\nGIT_HUB_APP_UNSPECIFIED\nDEVELOPER_CONNECT\nFIREBASE\n","willReplaceOnChanges":true},"installationUri":{"type":"string","description":"(Output)\nOutput only. The URI to navigate to in order to manage the installation associated\nwith this GitHubConfig.\n"}},"type":"object","required":["githubApp"],"language":{"nodejs":{"requiredOutputs":["appInstallationId","authorizerCredential","githubApp","installationUri"]}}},"gcp:developerconnect/ConnectionGithubConfigAuthorizerCredential:ConnectionGithubConfigAuthorizerCredential":{"properties":{"oauthTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the OAuth token that authorizes\nthe connection. Format: `projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["oauthTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["oauthTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionGithubEnterpriseConfig:ConnectionGithubEnterpriseConfig":{"properties":{"appId":{"type":"string","description":"Optional. ID of the GitHub App created from the manifest.\n"},"appInstallationId":{"type":"string","description":"Optional. ID of the installation of the GitHub App.\n"},"appSlug":{"type":"string","description":"(Output)\nOutput only. The URL-friendly name of the GitHub App.\n"},"hostUri":{"type":"string","description":"Required. The URI of the GitHub Enterprise host this connection is for.\n"},"installationUri":{"type":"string","description":"(Output)\nOutput only. The URI to navigate to in order to manage the installation associated\nwith this GitHubEnterpriseConfig.\n"},"privateKeySecretVersion":{"type":"string","description":"Optional. SecretManager resource containing the private key of the GitHub App,\nformatted as `projects/*/secrets/*/versions/*`.\n"},"serverVersion":{"type":"string","description":"(Output)\nOutput only. GitHub Enterprise version installed at the host_uri.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:developerconnect/ConnectionGithubEnterpriseConfigServiceDirectoryConfig:ConnectionGithubEnterpriseConfigServiceDirectoryConfig","description":"ServiceDirectoryConfig represents Service Directory configuration for a\nconnection.\nStructure is documented below.\n"},"sslCaCertificate":{"type":"string","description":"Optional. SSL certificate to use for requests to GitHub Enterprise.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Optional. SecretManager resource containing the webhook secret of the GitHub App,\nformatted as `projects/*/secrets/*/versions/*`.\n"}},"type":"object","required":["hostUri"],"language":{"nodejs":{"requiredOutputs":["appSlug","hostUri","installationUri","serverVersion"]}}},"gcp:developerconnect/ConnectionGithubEnterpriseConfigServiceDirectoryConfig:ConnectionGithubEnterpriseConfigServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"Required. The Service Directory service name.\nFormat:\nprojects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.\n"}},"type":"object","required":["service"]},"gcp:developerconnect/ConnectionGitlabConfig:ConnectionGitlabConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionGitlabConfigAuthorizerCredential:ConnectionGitlabConfigAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionGitlabConfigReadAuthorizerCredential:ConnectionGitlabConfigReadAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret of a GitLab project,\nformatted as `projects/*/secrets/*/versions/*`. This is used to validate\nwebhooks.\n","willReplaceOnChanges":true}},"type":"object","required":["authorizerCredential","readAuthorizerCredential","webhookSecretSecretVersion"]},"gcp:developerconnect/ConnectionGitlabConfigAuthorizerCredential:ConnectionGitlabConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionGitlabConfigReadAuthorizerCredential:ConnectionGitlabConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionGitlabEnterpriseConfig:ConnectionGitlabEnterpriseConfig":{"properties":{"authorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionGitlabEnterpriseConfigAuthorizerCredential:ConnectionGitlabEnterpriseConfigAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"hostUri":{"type":"string","description":"Required. The URI of the GitLab Enterprise host this connection is for.\n"},"readAuthorizerCredential":{"$ref":"#/types/gcp:developerconnect/ConnectionGitlabEnterpriseConfigReadAuthorizerCredential:ConnectionGitlabEnterpriseConfigReadAuthorizerCredential","description":"Represents a personal access token that authorized the Connection,\nand associated metadata.\nStructure is documented below.\n"},"serverVersion":{"type":"string","description":"(Output)\nOutput only. Version of the GitLab Enterprise server running on the \u003cspan pulumi-lang-nodejs=\"`hostUri`\" pulumi-lang-dotnet=\"`HostUri`\" pulumi-lang-go=\"`hostUri`\" pulumi-lang-python=\"`host_uri`\" pulumi-lang-yaml=\"`hostUri`\" pulumi-lang-java=\"`hostUri`\"\u003e`host_uri`\u003c/span\u003e.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:developerconnect/ConnectionGitlabEnterpriseConfigServiceDirectoryConfig:ConnectionGitlabEnterpriseConfigServiceDirectoryConfig","description":"ServiceDirectoryConfig represents Service Directory configuration for a\nconnection.\nStructure is documented below.\n"},"sslCaCertificate":{"type":"string","description":"Optional. SSL Certificate Authority certificate to use for requests to GitLab\nEnterprise instance.\n"},"webhookSecretSecretVersion":{"type":"string","description":"Required. Immutable. SecretManager resource containing the webhook secret of a GitLab project,\nformatted as `projects/*/secrets/*/versions/*`. This is used to validate\nwebhooks.\n","willReplaceOnChanges":true}},"type":"object","required":["authorizerCredential","hostUri","readAuthorizerCredential","webhookSecretSecretVersion"],"language":{"nodejs":{"requiredOutputs":["authorizerCredential","hostUri","readAuthorizerCredential","serverVersion","webhookSecretSecretVersion"]}}},"gcp:developerconnect/ConnectionGitlabEnterpriseConfigAuthorizerCredential:ConnectionGitlabEnterpriseConfigAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionGitlabEnterpriseConfigReadAuthorizerCredential:ConnectionGitlabEnterpriseConfigReadAuthorizerCredential":{"properties":{"userTokenSecretVersion":{"type":"string","description":"Required. A SecretManager resource containing the user token that authorizes\nthe Developer Connect connection. Format:\n`projects/*/secrets/*/versions/*`.\n"},"username":{"type":"string","description":"(Output)\nOutput only. The username associated with this token.\n"}},"type":"object","required":["userTokenSecretVersion"],"language":{"nodejs":{"requiredOutputs":["userTokenSecretVersion","username"]}}},"gcp:developerconnect/ConnectionGitlabEnterpriseConfigServiceDirectoryConfig:ConnectionGitlabEnterpriseConfigServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"Required. The Service Directory service name.\nFormat:\nprojects/{project}/locations/{location}/namespaces/{namespace}/services/{service}.\n"}},"type":"object","required":["service"]},"gcp:developerconnect/ConnectionInstallationState:ConnectionInstallationState":{"properties":{"actionUri":{"type":"string","description":"Output only. Link to follow for next action. Empty string if the installation is already\ncomplete.\n"},"message":{"type":"string","description":"Output only. Message of what the user should do next to continue the installation.\nEmpty string if the installation is already complete.\n"},"stage":{"type":"string","description":"(Output)\nOutput only. Current step of the installation process.\nPossible values:\nSTAGE_UNSPECIFIED\nPENDING_CREATE_APP\nPENDING_USER_OAUTH\nPENDING_INSTALL_APP\nCOMPLETE\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["stage"]}}},"gcp:developerconnect/InsightsConfigArtifactConfig:InsightsConfigArtifactConfig":{"properties":{"googleArtifactAnalysis":{"$ref":"#/types/gcp:developerconnect/InsightsConfigArtifactConfigGoogleArtifactAnalysis:InsightsConfigArtifactConfigGoogleArtifactAnalysis","description":"Google Artifact Analysis configurations.\nStructure is documented below.\n"},"googleArtifactRegistry":{"$ref":"#/types/gcp:developerconnect/InsightsConfigArtifactConfigGoogleArtifactRegistry:InsightsConfigArtifactConfigGoogleArtifactRegistry","description":"Google Artifact Registry configurations.\nStructure is documented below.\n"},"uri":{"type":"string","description":"The URI of the artifact that is deployed.\ne.g. `us-docker.pkg.dev/my-project/my-repo/image`.\nThe URI does not include the tag / digest because it captures a lineage of\nartifacts.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:developerconnect/InsightsConfigArtifactConfigGoogleArtifactAnalysis:InsightsConfigArtifactConfigGoogleArtifactAnalysis":{"properties":{"projectId":{"type":"string","description":"The project id of the project where the provenance is stored.\n"}},"type":"object","required":["projectId"]},"gcp:developerconnect/InsightsConfigArtifactConfigGoogleArtifactRegistry:InsightsConfigArtifactConfigGoogleArtifactRegistry":{"properties":{"artifactRegistryPackage":{"type":"string","description":"The name of the artifact registry package.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The host project of Artifact Registry.\n"}},"type":"object","required":["artifactRegistryPackage","projectId"]},"gcp:developerconnect/InsightsConfigError:InsightsConfigError":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of google.rpc.Code.\n"},"details":{"type":"array","items":{"$ref":"#/types/gcp:developerconnect/InsightsConfigErrorDetail:InsightsConfigErrorDetail"},"description":"(Output)\nA list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use.\nStructure is documented below.\n"},"message":{"type":"string","description":"(Output)\nA developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","details","message"]}}},"gcp:developerconnect/InsightsConfigErrorDetail:InsightsConfigErrorDetail":{"properties":{"detailMessage":{"type":"string","description":"(Output)\nA message with details about the error.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["detailMessage"]}}},"gcp:developerconnect/InsightsConfigRuntimeConfig:InsightsConfigRuntimeConfig":{"properties":{"appHubWorkload":{"$ref":"#/types/gcp:developerconnect/InsightsConfigRuntimeConfigAppHubWorkload:InsightsConfigRuntimeConfigAppHubWorkload","description":"AppHubWorkload represents the App Hub Workload.\nStructure is documented below.\n"},"gkeWorkload":{"$ref":"#/types/gcp:developerconnect/InsightsConfigRuntimeConfigGkeWorkload:InsightsConfigRuntimeConfigGkeWorkload","description":"GKEWorkload represents the Google Kubernetes Engine runtime.\nStructure is documented below.\n"},"state":{"type":"string","description":"(Output)\nThe state of the Runtime.\nPossible values:\nSTATE_UNSPECIFIED\nLINKED\nUNLINKED\n"},"uri":{"type":"string","description":"The URI of the runtime configuration.\nFor GKE, this is the cluster name.\nFor Cloud Run, this is the service name.\n","willReplaceOnChanges":true}},"type":"object","required":["uri"],"language":{"nodejs":{"requiredOutputs":["state","uri"]}}},"gcp:developerconnect/InsightsConfigRuntimeConfigAppHubWorkload:InsightsConfigRuntimeConfigAppHubWorkload":{"properties":{"criticality":{"type":"string","description":"(Output)\nThe criticality of the App Hub Workload.\n"},"environment":{"type":"string","description":"(Output)\nThe environment of the App Hub Workload.\n"},"workload":{"type":"string","description":"(Output)\nOutput only. The name of the App Hub Workload.\nFormat:\n`projects/{project}/locations/{location}/applications/{application}/workloads/{workload}`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["criticality","environment","workload"]}}},"gcp:developerconnect/InsightsConfigRuntimeConfigGkeWorkload:InsightsConfigRuntimeConfigGkeWorkload":{"properties":{"cluster":{"type":"string","description":"The name of the GKE cluster.\nFormat:\n`projects/{project}/locations/{location}/clusters/{cluster}`.\n","willReplaceOnChanges":true},"deployment":{"type":"string","description":"(Output)\nThe name of the GKE deployment.\nFormat:\n`projects/{project}/locations/{location}/clusters/{cluster}/namespaces/{namespace}/deployments/{deployment}`.\n"}},"type":"object","required":["cluster"],"language":{"nodejs":{"requiredOutputs":["cluster","deployment"]}}},"gcp:developerconnect/InsightsConfigTargetProjects:InsightsConfigTargetProjects":{"properties":{"projectIds":{"type":"array","items":{"type":"string"},"description":"The project IDs. Format {project}.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/ConversationProfileAutomatedAgentConfig:ConversationProfileAutomatedAgentConfig":{"properties":{"agent":{"type":"string","description":"ID of the Dialogflow agent environment to use.\nExpects the format \"projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent/environments/\u003cEnvironmentID\u003e\"\n"},"sessionTtl":{"type":"string","description":"Configure lifetime of the Dialogflow session.\n"}},"type":"object","required":["agent"]},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfig:ConversationProfileHumanAgentAssistantConfig":{"properties":{"endUserSuggestionConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfig","description":"Configuration for agent assistance of end user participant.\nStructure is documented below.\n"},"humanAgentSuggestionConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfig","description":"Configuration for agent assistance of human agent participant.\nStructure is documented below.\n"},"messageAnalysisConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigMessageAnalysisConfig:ConversationProfileHumanAgentAssistantConfigMessageAnalysisConfig","description":"desc\nStructure is documented below.\n"},"notificationConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigNotificationConfig:ConversationProfileHumanAgentAssistantConfigNotificationConfig","description":"Pub/Sub topic on which to publish new agent assistant events.\nExpects the format \"projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/topics/\u003cTopic ID\u003e\"\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfig":{"properties":{"disableHighLatencyFeaturesSyncDelivery":{"type":"boolean","description":"When disableHighLatencyFeaturesSyncDelivery is true and using the AnalyzeContent API, we will not deliver the responses from high latency features in the API response. The humanAgentAssistantConfig.notification_config must be configured and enableEventBasedSuggestion must be set to true to receive the responses from high latency features in Pub/Sub. High latency feature(s): KNOWLEDGE_ASSIST\n"},"featureConfigs":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfig"},"description":"Configuration of different suggestion features. One feature can have only one config.\nStructure is documented below.\n"},"generators":{"type":"array","items":{"type":"string"},"description":"List of various generator resource names used in the conversation profile.\n"},"groupSuggestionResponses":{"type":"boolean","description":"If groupSuggestionResponses is false, and there are multiple featureConfigs in event based suggestion or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or StreamingAnalyzeContentResponse.\nIf groupSuggestionResponses set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfig":{"properties":{"conversationModelConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationModelConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationModelConfig","description":"Configs of custom conversation model.\nStructure is documented below.\n"},"conversationProcessConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationProcessConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationProcessConfig","description":"Config to process conversation.\nStructure is documented below.\n"},"disableAgentQueryLogging":{"type":"boolean","description":"Disable the logging of search queries sent by human agents. It can prevent those queries from being stored at answer records.\nThis feature is only supported for types: KNOWLEDGE_SEARCH.\n"},"enableConversationAugmentedQuery":{"type":"boolean","description":"Enable including conversation context during query answer generation.\nThis feature is only supported for types: KNOWLEDGE_SEARCH.\n"},"enableEventBasedSuggestion":{"type":"boolean","description":"Automatically iterates all participants and tries to compile suggestions.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST.\n"},"enableQuerySuggestionOnly":{"type":"boolean","description":"Enable query suggestion only.\nThis feature is only supported for types: KNOWLEDGE_ASSIST\n"},"enableQuerySuggestionWhenNoAnswer":{"type":"boolean","description":"Enable query suggestion even if we can't find its answer. By default, queries are suggested only if we find its answer.\nThis feature is only supported for types: KNOWLEDGE_ASSIST.\n"},"queryConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfig","description":"Configs of query.\nStructure is documented below.\n"},"suggestionFeature":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionFeature:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionFeature","description":"The suggestion feature.\nStructure is documented below.\n"},"suggestionTriggerSettings":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionTriggerSettings:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionTriggerSettings","description":"Settings of suggestion trigger.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationModelConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationModelConfig":{"properties":{"baselineModelVersion":{"type":"string","description":"Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0\n"},"model":{"type":"string","description":"Conversation model resource name. Format: projects/\u003cProject ID\u003e/conversationModels/\u003cModel ID\u003e.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationProcessConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigConversationProcessConfig":{"properties":{"recentSentencesCount":{"type":"integer","description":"Number of recent non-small-talk sentences to use as context for article and FAQ suggestion\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfig":{"properties":{"confidenceThreshold":{"type":"number","description":"Confidence threshold of query result.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION.\n"},"contextFilterSettings":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigContextFilterSettings:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigContextFilterSettings","description":"Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.\nStructure is documented below.\n"},"dialogflowQuerySource":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource","description":"Query from Dialogflow agent.\nThis feature is supported for types: DIALOGFLOW_ASSIST.\nStructure is documented below.\n"},"documentQuerySource":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDocumentQuerySource:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDocumentQuerySource","description":"Query from knowledge base document.\nThis feature is supported for types: SMART_REPLY, SMART_COMPOSE.\nStructure is documented below.\n"},"knowledgeBaseQuerySource":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigKnowledgeBaseQuerySource:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigKnowledgeBaseQuerySource","description":"Query from knowledgebase.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ.\nStructure is documented below.\n"},"maxResults":{"type":"integer","description":"Maximum number of results to return.\n"},"sections":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigSections:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigSections","description":"he customized sections chosen to return when requesting a summary of a conversation.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigContextFilterSettings:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigContextFilterSettings":{"properties":{"dropHandoffMessages":{"type":"boolean","description":"If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.\n"},"dropIvrMessages":{"type":"boolean","description":"If set to true, all messages from ivr stage are dropped.\n"},"dropVirtualAgentMessages":{"type":"boolean","description":"If set to true, all messages from virtual agent are dropped.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource":{"properties":{"agent":{"type":"string","description":"he name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent.\n"},"humanAgentSideConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig","description":"The Dialogflow assist configuration for human agent.\nStructure is documented below.\n"}},"type":"object","required":["agent"]},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig":{"properties":{"agent":{"type":"string","description":"The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDocumentQuerySource:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigDocumentQuerySource":{"properties":{"documents":{"type":"array","items":{"type":"string"},"description":"Knowledge documents to query from. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/knowledgeBases/\u003cKnowledgeBase ID\u003e/documents/\u003cDocument ID\u003e.\n"}},"type":"object","required":["documents"]},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigKnowledgeBaseQuerySource:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigKnowledgeBaseQuerySource":{"properties":{"knowledgeBases":{"type":"array","items":{"type":"string"},"description":"Knowledge bases to query. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/knowledgeBases/\u003cKnowledge Base ID\u003e.\n"}},"type":"object","required":["knowledgeBases"]},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigSections:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigQueryConfigSections":{"properties":{"sectionTypes":{"type":"array","items":{"type":"string"},"description":"The selected sections chosen to return when requesting a summary of a conversation\nIf not provided the default selection will be \"{SITUATION, ACTION, RESULT}\".\nEach value may be one of: `SECTION_TYPE_UNSPECIFIED`, `SITUATION`, `ACTION`, `RESOLUTION`, `REASON_FOR_CANCELLATION`, `CUSTOMER_SATISFACTION`, `ENTITIES`.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionFeature:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionFeature":{"properties":{"type":{"type":"string","description":"Type of Human Agent Assistant API feature to request.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionTriggerSettings:ConversationProfileHumanAgentAssistantConfigEndUserSuggestionConfigFeatureConfigSuggestionTriggerSettings":{"properties":{"noSmallTalk":{"type":"boolean","description":"Do not trigger if last utterance is small talk.\n"},"onlyEndUser":{"type":"boolean","description":"Only trigger suggestion if participant role of last utterance is END_USER.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfig":{"properties":{"disableHighLatencyFeaturesSyncDelivery":{"type":"boolean","description":"When disableHighLatencyFeaturesSyncDelivery is true and using the AnalyzeContent API, we will not deliver the responses from high latency features in the API response. The humanAgentAssistantConfig.notification_config must be configured and enableEventBasedSuggestion must be set to true to receive the responses from high latency features in Pub/Sub. High latency feature(s): KNOWLEDGE_ASSIST\n"},"featureConfigs":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfig"},"description":"Configuration of different suggestion features. One feature can have only one config.\nStructure is documented below.\n"},"generators":{"type":"array","items":{"type":"string"},"description":"List of various generator resource names used in the conversation profile.\n"},"groupSuggestionResponses":{"type":"boolean","description":"If groupSuggestionResponses is false, and there are multiple featureConfigs in event based suggestion or StreamingAnalyzeContent, we will try to deliver suggestions to customers as soon as we get new suggestion. Different type of suggestions based on the same context will be in separate Pub/Sub event or StreamingAnalyzeContentResponse.\nIf groupSuggestionResponses set to true. All the suggestions to the same participant based on the same context will be grouped into a single Pub/Sub event or StreamingAnalyzeContentResponse.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfig":{"properties":{"conversationModelConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationModelConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationModelConfig","description":"Configs of custom conversation model.\nStructure is documented below.\n"},"conversationProcessConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationProcessConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationProcessConfig","description":"Config to process conversation.\nStructure is documented below.\n"},"disableAgentQueryLogging":{"type":"boolean","description":"Disable the logging of search queries sent by human agents. It can prevent those queries from being stored at answer records.\nThis feature is only supported for types: KNOWLEDGE_SEARCH.\n"},"enableConversationAugmentedQuery":{"type":"boolean","description":"Enable including conversation context during query answer generation.\nThis feature is only supported for types: KNOWLEDGE_SEARCH.\n"},"enableEventBasedSuggestion":{"type":"boolean","description":"Automatically iterates all participants and tries to compile suggestions.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST.\n"},"enableQuerySuggestionOnly":{"type":"boolean","description":"Enable query suggestion only.\nThis feature is only supported for types: KNOWLEDGE_ASSIST\n"},"enableQuerySuggestionWhenNoAnswer":{"type":"boolean","description":"Enable query suggestion even if we can't find its answer. By default, queries are suggested only if we find its answer.\nThis feature is only supported for types: KNOWLEDGE_ASSIST.\n"},"queryConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfig","description":"Configs of query.\nStructure is documented below.\n"},"suggestionFeature":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionFeature:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionFeature","description":"The suggestion feature.\nStructure is documented below.\n"},"suggestionTriggerSettings":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionTriggerSettings:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionTriggerSettings","description":"Settings of suggestion trigger.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationModelConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationModelConfig":{"properties":{"baselineModelVersion":{"type":"string","description":"Version of current baseline model. It will be ignored if model is set. Valid versions are: Article Suggestion baseline model: - 0.9 - 1.0 (default) Summarization baseline model: - 1.0\n"},"model":{"type":"string","description":"Conversation model resource name. Format: projects/\u003cProject ID\u003e/conversationModels/\u003cModel ID\u003e.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationProcessConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigConversationProcessConfig":{"properties":{"recentSentencesCount":{"type":"integer","description":"Number of recent non-small-talk sentences to use as context for article and FAQ suggestion\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfig":{"properties":{"confidenceThreshold":{"type":"number","description":"Confidence threshold of query result.\nThis feature is only supported for types: ARTICLE_SUGGESTION, FAQ, SMART_REPLY, SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION.\n"},"contextFilterSettings":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigContextFilterSettings:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigContextFilterSettings","description":"Determines how recent conversation context is filtered when generating suggestions. If unspecified, no messages will be dropped.\nStructure is documented below.\n"},"dialogflowQuerySource":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource","description":"Query from Dialogflow agent.\nThis feature is supported for types: DIALOGFLOW_ASSIST.\nStructure is documented below.\n"},"maxResults":{"type":"integer","description":"Maximum number of results to return.\n"},"sections":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigSections:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigSections","description":"he customized sections chosen to return when requesting a summary of a conversation.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigContextFilterSettings:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigContextFilterSettings":{"properties":{"dropHandoffMessages":{"type":"boolean","description":"If set to true, the last message from virtual agent (hand off message) and the message before it (trigger message of hand off) are dropped.\n"},"dropIvrMessages":{"type":"boolean","description":"If set to true, all messages from ivr stage are dropped.\n"},"dropVirtualAgentMessages":{"type":"boolean","description":"If set to true, all messages from virtual agent are dropped.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySource":{"properties":{"agent":{"type":"string","description":"he name of a Dialogflow virtual agent used for end user side intent detection and suggestion. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent.\n"},"humanAgentSideConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig","description":"The Dialogflow assist configuration for human agent.\nStructure is documented below.\n"}},"type":"object","required":["agent"]},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigDialogflowQuerySourceHumanAgentSideConfig":{"properties":{"agent":{"type":"string","description":"The name of a dialogflow virtual agent used for intent detection and suggestion triggered by human agent. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agent.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigSections:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigQueryConfigSections":{"properties":{"sectionTypes":{"type":"array","items":{"type":"string"},"description":"The selected sections chosen to return when requesting a summary of a conversation\nIf not provided the default selection will be \"{SITUATION, ACTION, RESULT}\".\nEach value may be one of: `SECTION_TYPE_UNSPECIFIED`, `SITUATION`, `ACTION`, `RESOLUTION`, `REASON_FOR_CANCELLATION`, `CUSTOMER_SATISFACTION`, `ENTITIES`.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionFeature:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionFeature":{"properties":{"type":{"type":"string","description":"Type of Human Agent Assistant API feature to request.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionTriggerSettings:ConversationProfileHumanAgentAssistantConfigHumanAgentSuggestionConfigFeatureConfigSuggestionTriggerSettings":{"properties":{"noSmallTalk":{"type":"boolean","description":"Do not trigger if last utterance is small talk.\n"},"onlyEndUser":{"type":"boolean","description":"Only trigger suggestion if participant role of last utterance is END_USER.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigMessageAnalysisConfig:ConversationProfileHumanAgentAssistantConfigMessageAnalysisConfig":{"properties":{"enableEntityExtraction":{"type":"boolean","description":"Enable entity extraction in conversation messages on agent assist stage.\n"},"enableSentimentAnalysis":{"type":"boolean","description":"Enable sentiment analysis in conversation messages on agent assist stage. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentAssistantConfigNotificationConfig:ConversationProfileHumanAgentAssistantConfigNotificationConfig":{"properties":{"messageFormat":{"type":"string","description":"Format of the message\nPossible values are: `MESSAGE_FORMAT_UNSPECIFIED`, `PROTO`, `JSON`.\n"},"topic":{"type":"string","description":"Name of the Pub/Sub topic to publish conversation events\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentHandoffConfig:ConversationProfileHumanAgentHandoffConfig":{"properties":{"livePersonConfig":{"$ref":"#/types/gcp:diagflow/ConversationProfileHumanAgentHandoffConfigLivePersonConfig:ConversationProfileHumanAgentHandoffConfigLivePersonConfig","description":"Config for using LivePerson.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileHumanAgentHandoffConfigLivePersonConfig:ConversationProfileHumanAgentHandoffConfigLivePersonConfig":{"properties":{"accountNumber":{"type":"string","description":"Account number of the LivePerson account to connect.\n"}},"type":"object","required":["accountNumber"]},"gcp:diagflow/ConversationProfileLoggingConfig:ConversationProfileLoggingConfig":{"properties":{"enableStackdriverLogging":{"type":"boolean","description":"Whether to log conversation events\n"}},"type":"object"},"gcp:diagflow/ConversationProfileNewMessageEventNotificationConfig:ConversationProfileNewMessageEventNotificationConfig":{"properties":{"messageFormat":{"type":"string","description":"Format of the message\nPossible values are: `MESSAGE_FORMAT_UNSPECIFIED`, `PROTO`, `JSON`.\n"},"topic":{"type":"string","description":"Name of the Pub/Sub topic to publish conversation events\n"}},"type":"object"},"gcp:diagflow/ConversationProfileNewRecognitionResultNotificationConfig:ConversationProfileNewRecognitionResultNotificationConfig":{"properties":{"messageFormat":{"type":"string","description":"Format of message.\nPossible values are: `MESSAGE_FORMAT_UNSPECIFIED`, `PROTO`, `JSON`.\n"},"topic":{"type":"string","description":"Name of the Pub/Sub topic to publish conversation events like CONVERSATION_STARTED as serialized ConversationEvent protos.\nFor telephony integration to receive notification, make sure either this topic is in the same project as the conversation or you grant service-\u003cConversation Project Number\u003e@gcp-sa-dialogflow.iam.gserviceaccount.com the Dialogflow Service Agent role in the topic project.\nFor chat integration to receive notification, make sure API caller has been granted the Dialogflow Service Agent role for the topic.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/topics/\u003cTopic ID\u003e.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileNotificationConfig:ConversationProfileNotificationConfig":{"properties":{"messageFormat":{"type":"string","description":"Format of the message\nPossible values are: `MESSAGE_FORMAT_UNSPECIFIED`, `PROTO`, `JSON`.\n"},"topic":{"type":"string","description":"Name of the Pub/Sub topic to publish conversation events\n"}},"type":"object"},"gcp:diagflow/ConversationProfileSttConfig:ConversationProfileSttConfig":{"properties":{"audioEncoding":{"type":"string","description":"Audio encoding of the audio content to process.\nPossible values are: `AUDIO_ENCODING_UNSPECIFIED`, `AUDIO_ENCODING_LINEAR_16`, `AUDIO_ENCODING_FLAC`, `AUDIO_ENCODING_MULAW`, `AUDIO_ENCODING_AMR`, `AUDIO_ENCODING_AMR_WB`, `AUDIO_ENCODING_OGG_OPUS`, `AUDIOENCODING_SPEEX_WITH_HEADER_BYTE`.\n"},"enableWordInfo":{"type":"boolean","description":"If true, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words.\n"},"languageCode":{"type":"string","description":"The language of the supplied audio.\n"},"model":{"type":"string","description":"Which Speech model to select.\nLeave this field unspecified to use Agent Speech settings for model selection.\n"},"sampleRateHertz":{"type":"integer","description":"Sample rate (in Hertz) of the audio content sent in the query.\n"},"speechModelVariant":{"type":"string","description":"The speech model used in speech to text.\nPossible values are: `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE`, `USE_STANDARD`, `USE_ENHANCED`.\n"},"useTimeoutBasedEndpointing":{"type":"boolean","description":"Use timeout based endpointing, interpreting endpointer sensitivy as seconds of timeout value.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["languageCode"]}}},"gcp:diagflow/ConversationProfileTtsConfig:ConversationProfileTtsConfig":{"properties":{"effectsProfileIds":{"type":"array","items":{"type":"string"},"description":"An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given.\n"},"pitch":{"type":"number","description":"Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.\n"},"speakingRate":{"type":"number","description":"Speaking rate/speed, in the range [0.25, 4.0].\n"},"voice":{"$ref":"#/types/gcp:diagflow/ConversationProfileTtsConfigVoice:ConversationProfileTtsConfigVoice","description":"The desired voice of the synthesized audio.\nStructure is documented below.\n"},"volumeGainDb":{"type":"number","description":"Volume gain (in dB) of the normal native volume supported by the specific voice.\n"}},"type":"object"},"gcp:diagflow/ConversationProfileTtsConfigVoice:ConversationProfileTtsConfigVoice":{"properties":{"name":{"type":"string","description":"The name of the voice.\n"},"ssmlGender":{"type":"string","description":"The preferred gender of the voice.\nPossible values are: `SSML_VOICE_GENDER_UNSPECIFIED`, `SSML_VOICE_GENDER_MALE`, `SSML_VOICE_GENDER_FEMALE`, `SSML_VOICE_GENDER_NEUTRAL`.\n"}},"type":"object"},"gcp:diagflow/CxAgentAdvancedSettings:CxAgentAdvancedSettings":{"properties":{"audioExportGcsDestination":{"$ref":"#/types/gcp:diagflow/CxAgentAdvancedSettingsAudioExportGcsDestination:CxAgentAdvancedSettingsAudioExportGcsDestination","description":"If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels:\n* Agent level\n* Flow level\nStructure is documented below.\n"},"dtmfSettings":{"$ref":"#/types/gcp:diagflow/CxAgentAdvancedSettingsDtmfSettings:CxAgentAdvancedSettingsDtmfSettings","description":"Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"},"loggingSettings":{"$ref":"#/types/gcp:diagflow/CxAgentAdvancedSettingsLoggingSettings:CxAgentAdvancedSettingsLoggingSettings","description":"Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels:\n* Agent level\nStructure is documented below.\n"},"speechSettings":{"$ref":"#/types/gcp:diagflow/CxAgentAdvancedSettingsSpeechSettings:CxAgentAdvancedSettingsSpeechSettings","description":"Settings for speech to text detection. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxAgentAdvancedSettingsAudioExportGcsDestination:CxAgentAdvancedSettingsAudioExportGcsDestination":{"properties":{"uri":{"type":"string","description":"The Google Cloud Storage URI for the exported objects. Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.\nFormat: gs://bucket/object-name-or-prefix\n"}},"type":"object"},"gcp:diagflow/CxAgentAdvancedSettingsDtmfSettings:CxAgentAdvancedSettingsDtmfSettings":{"properties":{"enabled":{"type":"boolean","description":"If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).\n"},"finishDigit":{"type":"string","description":"The digit that terminates a DTMF digit sequence.\n"},"maxDigits":{"type":"integer","description":"Max length of DTMF digits.\n"}},"type":"object"},"gcp:diagflow/CxAgentAdvancedSettingsLoggingSettings:CxAgentAdvancedSettingsLoggingSettings":{"properties":{"enableConsentBasedRedaction":{"type":"boolean","description":"Enables consent-based end-user input redaction, if true, a pre-defined session parameter **$session.params.conversation-redaction** will be used to determine if the utterance should be redacted.\n"},"enableInteractionLogging":{"type":"boolean","description":"Enables DF Interaction logging.\n"},"enableStackdriverLogging":{"type":"boolean","description":"Enables Google Cloud Logging.\n"}},"type":"object"},"gcp:diagflow/CxAgentAdvancedSettingsSpeechSettings:CxAgentAdvancedSettingsSpeechSettings":{"properties":{"endpointerSensitivity":{"type":"integer","description":"Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.\n"},"models":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).\nAn object containing a list of **\"key\": value** pairs. Example: **{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }**.\n"},"noSpeechTimeout":{"type":"string","description":"Timeout before detecting no speech.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.5s\".\n"},"useTimeoutBasedEndpointing":{"type":"boolean","description":"Use timeout based endpointing, interpreting endpointer sensitivity as seconds of timeout value.\n"}},"type":"object"},"gcp:diagflow/CxAgentAnswerFeedbackSettings:CxAgentAnswerFeedbackSettings":{"properties":{"enableAnswerFeedback":{"type":"boolean","description":"If enabled, end users will be able to provide [answer feedback](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.sessions/submitAnswerFeedback#body.AnswerFeedback)\nto Dialogflow responses. Feature works only if interaction logging is enabled in the Dialogflow agent.\n"}},"type":"object"},"gcp:diagflow/CxAgentClientCertificateSettings:CxAgentClientCertificateSettings":{"properties":{"passphrase":{"type":"string","description":"The name of the SecretManager secret version resource storing the passphrase. 'passphrase' should be left unset if the private key is not encrypted. Format: **projects/{project}/secrets/{secret}/versions/{version}**\n"},"privateKey":{"type":"string","description":"The name of the SecretManager secret version resource storing the private key encoded in PEM format. Format: **projects/{project}/secrets/{secret}/versions/{version}**\n"},"sslCertificate":{"type":"string","description":"The ssl certificate encoded in PEM format. This string must include the begin header and end footer lines.\n"}},"type":"object","required":["privateKey","sslCertificate"]},"gcp:diagflow/CxAgentGenAppBuilderSettings:CxAgentGenAppBuilderSettings":{"properties":{"engine":{"type":"string","description":"The full name of the Gen App Builder engine related to this agent if there is one.\nFormat: projects/{Project ID}/locations/{Location ID}/collections/{Collection ID}/engines/{Engine ID}\n"}},"type":"object","required":["engine"]},"gcp:diagflow/CxAgentGitIntegrationSettings:CxAgentGitIntegrationSettings":{"properties":{"githubSettings":{"$ref":"#/types/gcp:diagflow/CxAgentGitIntegrationSettingsGithubSettings:CxAgentGitIntegrationSettingsGithubSettings","description":"Settings of integration with GitHub.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxAgentGitIntegrationSettingsGithubSettings:CxAgentGitIntegrationSettingsGithubSettings":{"properties":{"accessToken":{"type":"string","description":"The access token used to authenticate the access to the GitHub repository.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"branches":{"type":"array","items":{"type":"string"},"description":"A list of branches configured to be used from Dialogflow.\n"},"displayName":{"type":"string","description":"The unique repository display name for the GitHub repository.\n"},"repositoryUri":{"type":"string","description":"The GitHub repository URI related to the agent.\n"},"trackingBranch":{"type":"string","description":"The branch of the GitHub repository tracked for this agent.\n"}},"type":"object"},"gcp:diagflow/CxAgentPersonalizationSettings:CxAgentPersonalizationSettings":{"properties":{"defaultEndUserMetadata":{"type":"string","description":"Default end user metadata, used when processing DetectIntent requests. Recommended to be filled as a template instead of hard-coded value, for example { \"age\": \"$session.params.age\" }.\nThe data will be merged with the [QueryParameters.end_user_metadata](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/QueryParameters#FIELDS.end_user_metadata)\nin [DetectIntentRequest.query_params](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.sessions/detectIntent#body.request_body.FIELDS.query_params) during query processing.\nThis field uses JSON data as a string. The value provided must be a valid JSON representation documented in [Struct](https://protobuf.dev/reference/protobuf/google.protobuf/#struct).\n"}},"type":"object"},"gcp:diagflow/CxAgentSpeechToTextSettings:CxAgentSpeechToTextSettings":{"properties":{"enableSpeechAdaptation":{"type":"boolean","description":"Whether to use speech adaptation for speech recognition.\n"}},"type":"object"},"gcp:diagflow/CxAgentTextToSpeechSettings:CxAgentTextToSpeechSettings":{"properties":{"synthesizeSpeechConfigs":{"type":"string","description":"Configuration of how speech should be synthesized, mapping from [language](https://cloud.google.com/dialogflow/cx/docs/reference/language) to [SynthesizeSpeechConfig](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents#synthesizespeechconfig).\nThese settings affect:\n* The phone gateway synthesize configuration set via Agent.text_to_speech_settings.\n* How speech is synthesized when invoking session APIs. `Agent.text_to_speech_settings` only applies if `OutputAudioConfig.synthesize_speech_config` is not specified.\n"}},"type":"object"},"gcp:diagflow/CxEntityTypeEntity:CxEntityTypeEntity":{"properties":{"synonyms":{"type":"array","items":{"type":"string"},"description":"A collection of value synonyms. For example, if the entity type is vegetable, and value is scallions, a synonym could be green onions.\nFor KIND_LIST entity types: This collection must contain exactly one synonym equal to value.\n"},"value":{"type":"string","description":"The primary value associated with this entity entry. For example, if the entity type is vegetable, the value could be scallions.\nFor KIND_MAP entity types: A canonical value to be used in place of synonyms.\nFor KIND_LIST entity types: A string that can contain references to other entity types (with or without aliases).\n"}},"type":"object"},"gcp:diagflow/CxEntityTypeExcludedPhrase:CxEntityTypeExcludedPhrase":{"properties":{"value":{"type":"string","description":"The word or phrase to be excluded.\n"}},"type":"object"},"gcp:diagflow/CxEnvironmentVersionConfig:CxEnvironmentVersionConfig":{"properties":{"version":{"type":"string","description":"Format: projects/{{project}}/locations/{{location}}/agents/{{agent}}/flows/{{flow}}/versions/{{version}}.\n"}},"type":"object","required":["version"]},"gcp:diagflow/CxFlowAdvancedSettings:CxFlowAdvancedSettings":{"properties":{"audioExportGcsDestination":{"$ref":"#/types/gcp:diagflow/CxFlowAdvancedSettingsAudioExportGcsDestination:CxFlowAdvancedSettingsAudioExportGcsDestination","description":"If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels:\n* Agent level\n* Flow level\nStructure is documented below.\n"},"dtmfSettings":{"$ref":"#/types/gcp:diagflow/CxFlowAdvancedSettingsDtmfSettings:CxFlowAdvancedSettingsDtmfSettings","description":"Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"},"loggingSettings":{"$ref":"#/types/gcp:diagflow/CxFlowAdvancedSettingsLoggingSettings:CxFlowAdvancedSettingsLoggingSettings","description":"Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels:\n* Agent level\nStructure is documented below.\n"},"speechSettings":{"$ref":"#/types/gcp:diagflow/CxFlowAdvancedSettingsSpeechSettings:CxFlowAdvancedSettingsSpeechSettings","description":"Settings for speech to text detection. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxFlowAdvancedSettingsAudioExportGcsDestination:CxFlowAdvancedSettingsAudioExportGcsDestination":{"properties":{"uri":{"type":"string","description":"The Google Cloud Storage URI for the exported objects. Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.\nFormat: gs://bucket/object-name-or-prefix\n"}},"type":"object"},"gcp:diagflow/CxFlowAdvancedSettingsDtmfSettings:CxFlowAdvancedSettingsDtmfSettings":{"properties":{"enabled":{"type":"boolean","description":"If true, incoming audio is processed for DTMF (dual tone multi frequtectency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will de the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).\n"},"finishDigit":{"type":"string","description":"The digit that terminates a DTMF digit sequence.\n"},"maxDigits":{"type":"integer","description":"Max length of DTMF digits.\n"}},"type":"object"},"gcp:diagflow/CxFlowAdvancedSettingsLoggingSettings:CxFlowAdvancedSettingsLoggingSettings":{"properties":{"enableConsentBasedRedaction":{"type":"boolean","description":"Enables consent-based end-user input redaction, if true, a pre-defined session parameter **$session.params.conversation-redaction** will be used to determine if the utterance should be redacted.\n"},"enableInteractionLogging":{"type":"boolean","description":"Enables DF Interaction logging.\n"},"enableStackdriverLogging":{"type":"boolean","description":"Enables Google Cloud Logging.\n"}},"type":"object"},"gcp:diagflow/CxFlowAdvancedSettingsSpeechSettings:CxFlowAdvancedSettingsSpeechSettings":{"properties":{"endpointerSensitivity":{"type":"integer","description":"Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.\n"},"models":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).\nAn object containing a list of **\"key\": value** pairs. Example: **{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }**.\n"},"noSpeechTimeout":{"type":"string","description":"Timeout before detecting no speech.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"useTimeoutBasedEndpointing":{"type":"boolean","description":"Use timeout based endpointing, interpreting endpointer sensitivity as seconds of timeout value.\n"}},"type":"object"},"gcp:diagflow/CxFlowEventHandler:CxFlowEventHandler":{"properties":{"event":{"type":"string","description":"The name of the event to handle.\n"},"name":{"type":"string","description":"(Output)\nThe unique identifier of this event handler.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.\n"},"targetPage":{"type":"string","description":"The target page to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillment:CxFlowEventHandlerTriggerFulfillment","description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillment:CxFlowEventHandlerTriggerFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentConditionalCase:CxFlowEventHandlerTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"enableGenerativeFallback":{"type":"boolean","description":"If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessage:CxFlowEventHandlerTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentSetParameterAction:CxFlowEventHandlerTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentConditionalCase:CxFlowEventHandlerTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessage:CxFlowEventHandlerTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageConversationSuccess:CxFlowEventHandlerTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageLiveAgentHandoff:CxFlowEventHandlerTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageOutputAudioText:CxFlowEventHandlerTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessagePlayAudio:CxFlowEventHandlerTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageTelephonyTransferCall:CxFlowEventHandlerTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageText:CxFlowEventHandlerTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageConversationSuccess:CxFlowEventHandlerTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageLiveAgentHandoff:CxFlowEventHandlerTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageOutputAudioText:CxFlowEventHandlerTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessagePlayAudio:CxFlowEventHandlerTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageTelephonyTransferCall:CxFlowEventHandlerTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentMessageText:CxFlowEventHandlerTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowEventHandlerTriggerFulfillmentSetParameterAction:CxFlowEventHandlerTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettings:CxFlowKnowledgeConnectorSettings":{"properties":{"dataStoreConnections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsDataStoreConnection:CxFlowKnowledgeConnectorSettingsDataStoreConnection"},"description":"Optional. List of related data store connections.\nStructure is documented below.\n"},"enabled":{"type":"boolean","description":"Whether Knowledge Connector is enabled or not.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to. Format: projects/\u003cProjectID\u003e/locations/\u003cLocationID\u003e/agents/\u003cAgentID\u003e/flows/\u003cFlowID\u003e.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e: Only one of `targetPage` or `targetFlow` may be set.\n"},"targetPage":{"type":"string","description":"The target page to transition to. Format: projects/\u003cProjectID\u003e/locations/\u003cLocationID\u003e/agents/\u003cAgentID\u003e/flows/\u003cFlowID\u003e/pages/\u003cPageID\u003e.\nThe page must be in the same host flow (the flow that owns this `KnowledgeConnectorSettings`).\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e: Only one of `targetPage` or `targetFlow` may be set.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillment:CxFlowKnowledgeConnectorSettingsTriggerFulfillment","description":"The fulfillment to be triggered.\nWhen the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter $request.knowledge.answers (contains up to the 5 highest confidence answers) and $request.knowledge.questions (contains the corresponding questions) to construct the fulfillment.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsDataStoreConnection:CxFlowKnowledgeConnectorSettingsDataStoreConnection":{"properties":{"dataStore":{"type":"string","description":"The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}\n"},"dataStoreType":{"type":"string","description":"The type of the connected data store.\n* PUBLIC_WEB: A data store that contains public web content.\n* UNSTRUCTURED: A data store that contains unstructured private data.\n* STRUCTURED: A data store that contains structured data (for example FAQ).\nPossible values are: `PUBLIC_WEB`, `UNSTRUCTURED`, `STRUCTURED`.\n"},"documentProcessingMode":{"type":"string","description":"The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode.\n* DOCUMENTS: Documents are processed as documents.\n* CHUNKS: Documents are converted to chunks.\nPossible values are: `DOCUMENTS`, `CHUNKS`.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillment:CxFlowKnowledgeConnectorSettingsTriggerFulfillment":{"properties":{"advancedSettings":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings","description":"Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playbackInterruptionSettings at fulfillment level only overrides the playbackInterruptionSettings at the agent level, leaving other settings at the agent level unchanged.\nDTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel.\nHierarchy: Agent-\u003eFlow-\u003ePage-\u003eFulfillment/Parameter.\nStructure is documented below.\n"},"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"enableGenerativeFallback":{"type":"boolean","description":"If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessage:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings":{"properties":{"dtmfSettings":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings","description":"Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"},"loggingSettings":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings","description":"Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels:\n* Agent level\nStructure is documented below.\n"},"speechSettings":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings","description":"Settings for speech to text detection. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings":{"properties":{"enabled":{"type":"boolean","description":"If true, incoming audio is processed for DTMF (dual tone multi frequtectency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will de the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).\n"},"endpointingTimeoutDuration":{"type":"string","description":"Endpoint timeout setting for matching dtmf input to regex.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"finishDigit":{"type":"string","description":"The digit that terminates a DTMF digit sequence.\n"},"interdigitTimeoutDuration":{"type":"string","description":"Interdigit timeout setting for matching dtmf input to regex.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"maxDigits":{"type":"integer","description":"Max length of DTMF digits.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings":{"properties":{"enableConsentBasedRedaction":{"type":"boolean","description":"Enables consent-based end-user input redaction, if true, a pre-defined session parameter **$session.params.conversation-redaction** will be used to determine if the utterance should be redacted.\n"},"enableInteractionLogging":{"type":"boolean","description":"Enables DF Interaction logging.\n"},"enableStackdriverLogging":{"type":"boolean","description":"Enables Google Cloud Logging.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings":{"properties":{"endpointerSensitivity":{"type":"integer","description":"Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.\n"},"models":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).\nAn object containing a list of **\"key\": value** pairs. Example: **{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }**.\n"},"noSpeechTimeout":{"type":"string","description":"Timeout before detecting no speech.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"useTimeoutBasedEndpointing":{"type":"boolean","description":"Use timeout based endpointing, interpreting endpointer sensitivity as seconds of timeout value.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessage:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"endInteractions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction"},"description":"(Output)\nThis type has no fields.\nIndicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"knowledgeInfoCard":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard","description":"This type has no fields.\nRepresents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card.\nOtherwise, the info card response is skipped.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"mixedAudios":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio"},"description":"(Output)\nRepresents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via playAudio. This message is generated by Dialogflow only and not supposed to be defined by the user.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageText:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endInteractions","mixedAudios"]}}},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction":{"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard":{"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio":{"properties":{"segments":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment"},"description":"Segments this audio response is composed of.\n"}},"type":"object"},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.\n"},"audio":{"type":"string","description":"Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.\nA base64-encoded string.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`audio`\" pulumi-lang-dotnet=\"`Audio`\" pulumi-lang-go=\"`audio`\" pulumi-lang-python=\"`audio`\" pulumi-lang-yaml=\"`audio`\" pulumi-lang-java=\"`audio`\"\u003e`audio`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`uri`\" pulumi-lang-dotnet=\"`Uri`\" pulumi-lang-go=\"`uri`\" pulumi-lang-python=\"`uri`\" pulumi-lang-yaml=\"`uri`\" pulumi-lang-java=\"`uri`\"\u003e`uri`\u003c/span\u003e may be set.\n"},"uri":{"type":"string","description":"Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`audio`\" pulumi-lang-dotnet=\"`Audio`\" pulumi-lang-go=\"`audio`\" pulumi-lang-python=\"`audio`\" pulumi-lang-yaml=\"`audio`\" pulumi-lang-java=\"`audio`\"\u003e`audio`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`uri`\" pulumi-lang-dotnet=\"`Uri`\" pulumi-lang-go=\"`uri`\" pulumi-lang-python=\"`uri`\" pulumi-lang-yaml=\"`uri`\" pulumi-lang-java=\"`uri`\"\u003e`uri`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageText:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction:CxFlowKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxFlowNluSettings:CxFlowNluSettings":{"properties":{"classificationThreshold":{"type":"number","description":"To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold.\nIf the returned score value is less than the threshold value, then a no-match event will be triggered. The score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used.\n"},"modelTrainingMode":{"type":"string","description":"Indicates NLU model training mode.\n* MODEL_TRAINING_MODE_AUTOMATIC: NLU model training is automatically triggered when a flow gets modified. User can also manually trigger model training in this mode.\n* MODEL_TRAINING_MODE_MANUAL: User needs to manually trigger NLU model training. Best for large flows whose models take long time to train.\nPossible values are: `MODEL_TRAINING_MODE_AUTOMATIC`, `MODEL_TRAINING_MODE_MANUAL`.\n"},"modelType":{"type":"string","description":"Indicates the type of NLU model.\n* MODEL_TYPE_STANDARD: Use standard NLU model.\n* MODEL_TYPE_ADVANCED: Use advanced NLU model.\nPossible values are: `MODEL_TYPE_STANDARD`, `MODEL_TYPE_ADVANCED`.\n"}},"type":"object"},"gcp:diagflow/CxFlowTransitionRoute:CxFlowTransitionRoute":{"properties":{"condition":{"type":"string","description":"The condition to evaluate against form parameters or session parameters.\nAt least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.\n"},"intent":{"type":"string","description":"The unique identifier of an Intent.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e. Indicates that the transition can only happen when the given intent is matched. At least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.\n"},"name":{"type":"string","description":"(Output)\nThe unique identifier of this transition route.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.\n"},"targetPage":{"type":"string","description":"The target page to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillment:CxFlowTransitionRouteTriggerFulfillment","description":"The fulfillment to call when the condition is satisfied. At least one of triggerFulfillment and target must be specified. When both are defined, triggerFulfillment is executed first.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillment:CxFlowTransitionRouteTriggerFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentConditionalCase:CxFlowTransitionRouteTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessage:CxFlowTransitionRouteTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentSetParameterAction:CxFlowTransitionRouteTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentConditionalCase:CxFlowTransitionRouteTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessage:CxFlowTransitionRouteTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageConversationSuccess:CxFlowTransitionRouteTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff:CxFlowTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageOutputAudioText:CxFlowTransitionRouteTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessagePlayAudio:CxFlowTransitionRouteTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall:CxFlowTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageText:CxFlowTransitionRouteTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageConversationSuccess:CxFlowTransitionRouteTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff:CxFlowTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageOutputAudioText:CxFlowTransitionRouteTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessagePlayAudio:CxFlowTransitionRouteTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall:CxFlowTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentMessageText:CxFlowTransitionRouteTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxFlowTransitionRouteTriggerFulfillmentSetParameterAction:CxFlowTransitionRouteTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxGenerativeSettingsFallbackSettings:CxGenerativeSettingsFallbackSettings":{"properties":{"promptTemplates":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxGenerativeSettingsFallbackSettingsPromptTemplate:CxGenerativeSettingsFallbackSettingsPromptTemplate"},"description":"Stored prompts that can be selected, for example default templates like \"conservative\" or \"chatty\", or user defined ones.\nStructure is documented below.\n"},"selectedPrompt":{"type":"string","description":"Display name of the selected prompt.\n"}},"type":"object"},"gcp:diagflow/CxGenerativeSettingsFallbackSettingsPromptTemplate:CxGenerativeSettingsFallbackSettingsPromptTemplate":{"properties":{"displayName":{"type":"string","description":"Prompt name.\n"},"frozen":{"type":"boolean","description":"If the flag is true, the prompt is frozen and cannot be modified by users.\n"},"promptText":{"type":"string","description":"Prompt text that is sent to a LLM on no-match default, placeholders are filled downstream. For example: \"Here is a conversation $conversation, a response is: \"\n"}},"type":"object"},"gcp:diagflow/CxGenerativeSettingsGenerativeSafetySettings:CxGenerativeSettingsGenerativeSafetySettings":{"properties":{"bannedPhrases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxGenerativeSettingsGenerativeSafetySettingsBannedPhrase:CxGenerativeSettingsGenerativeSafetySettingsBannedPhrase"},"description":"Banned phrases for generated text.\nStructure is documented below.\n"},"defaultBannedPhraseMatchStrategy":{"type":"string","description":"Optional. Default phrase match strategy for banned phrases.\nSee [PhraseMatchStrategy](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/GenerativeSettings#phrasematchstrategy) for valid values.\n"}},"type":"object"},"gcp:diagflow/CxGenerativeSettingsGenerativeSafetySettingsBannedPhrase:CxGenerativeSettingsGenerativeSafetySettingsBannedPhrase":{"properties":{"languageCode":{"type":"string","description":"Language code of the phrase.\n"},"text":{"type":"string","description":"Text input which can be used for prompt or banned phrases.\n"}},"type":"object","required":["languageCode","text"]},"gcp:diagflow/CxGenerativeSettingsKnowledgeConnectorSettings:CxGenerativeSettingsKnowledgeConnectorSettings":{"properties":{"agent":{"type":"string","description":"Name of the virtual agent. Used for LLM prompt. Can be left empty.\n"},"agentIdentity":{"type":"string","description":"Identity of the agent, e.g. \"virtual agent\", \"AI assistant\".\n"},"agentScope":{"type":"string","description":"Agent scope, e.g. \"Example company website\", \"internal Example company website for employees\", \"manual of car owner\".\n"},"business":{"type":"string","description":"Name of the company, organization or other entity that the agent represents. Used for knowledge connector LLM prompt and for knowledge search.\n"},"businessDescription":{"type":"string","description":"Company description, used for LLM prompt, e.g. \"a family company selling freshly roasted coffee beans\".``\n"},"disableDataStoreFallback":{"type":"boolean","description":"Whether to disable fallback to Data Store search results (in case the LLM couldn't pick a proper answer). Per default the feature is enabled.\n"}},"type":"object"},"gcp:diagflow/CxGenerativeSettingsLlmModelSettings:CxGenerativeSettingsLlmModelSettings":{"properties":{"model":{"type":"string","description":"The selected LLM model.\n"},"promptText":{"type":"string","description":"The custom prompt to use.\n"}},"type":"object"},"gcp:diagflow/CxGeneratorLlmModelSettings:CxGeneratorLlmModelSettings":{"properties":{"model":{"type":"string","description":"The selected LLM model.\n"},"promptText":{"type":"string","description":"The custom prompt to use.\n"}},"type":"object"},"gcp:diagflow/CxGeneratorModelParameter:CxGeneratorModelParameter":{"properties":{"maxDecodeSteps":{"type":"integer","description":"The maximum number of tokens to generate.\n"},"temperature":{"type":"number","description":"The temperature used for sampling. Temperature sampling occurs after both topP and topK have been applied.\nValid range: [0.0, 1.0] Low temperature = less random. High temperature = more random.\n"},"topK":{"type":"integer","description":"If set, the sampling process in each step is limited to the topK tokens with highest probabilities.\nValid range: [1, 40] or 1000+. Small topK = less random. Large topK = more random.\n"},"topP":{"type":"number","description":"If set, only the tokens comprising the top topP probability mass are considered.\nIf both topP and topK are set, topP will be used for further refining candidates selected with topK.\nValid range: (0.0, 1.0]. Small topP = less random. Large topP = more random.\n"}},"type":"object"},"gcp:diagflow/CxGeneratorPlaceholder:CxGeneratorPlaceholder":{"properties":{"id":{"type":"string","description":"Unique ID used to map custom placeholder to parameters in fulfillment.\n"},"name":{"type":"string","description":"Custom placeholder value in the prompt text.\n"}},"type":"object"},"gcp:diagflow/CxGeneratorPromptText:CxGeneratorPromptText":{"properties":{"text":{"type":"string","description":"Text input which can be used for prompt or banned phrases.\n"}},"type":"object"},"gcp:diagflow/CxIntentParameter:CxIntentParameter":{"properties":{"entityType":{"type":"string","description":"The entity type of the parameter.\nFormat: projects/-/locations/-/agents/-/entityTypes/\u003cSystem Entity Type ID\u003e for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e for developer entity types.\n"},"id":{"type":"string","description":"The unique identifier of the parameter. This field is used by training phrases to annotate their parts.\n"},"isList":{"type":"boolean","description":"Indicates whether the parameter represents a list of values.\n"},"redact":{"type":"boolean","description":"Indicates whether the parameter content should be redacted in log. If redaction is enabled, the parameter content will be replaced by parameter name during logging.\nNote: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.\n"}},"type":"object","required":["entityType","id"]},"gcp:diagflow/CxIntentTrainingPhrase:CxIntentTrainingPhrase":{"properties":{"id":{"type":"string","description":"(Output)\nThe unique identifier of the training phrase.\n"},"parts":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxIntentTrainingPhrasePart:CxIntentTrainingPhrasePart"},"description":"The ordered list of training phrase parts. The parts are concatenated in order to form the training phrase.\nNote: The API does not automatically annotate training phrases like the Dialogflow Console does.\nNote: Do not forget to include whitespace at part boundaries, so the training phrase is well formatted when the parts are concatenated.\nIf the training phrase does not need to be annotated with parameters, you just need a single part with only the Part.text field set.\nIf you want to annotate the training phrase, you must create multiple parts, where the fields of each part are populated in one of two ways:\nPart.text is set to a part of the phrase that has no parameters.\nPart.text is set to a part of the phrase that you want to annotate, and the parameterId field is set.\nStructure is documented below.\n"},"repeatCount":{"type":"integer","description":"Indicates how many times this example was added to the intent.\n"}},"type":"object","required":["parts"],"language":{"nodejs":{"requiredOutputs":["id","parts"]}}},"gcp:diagflow/CxIntentTrainingPhrasePart:CxIntentTrainingPhrasePart":{"properties":{"parameterId":{"type":"string","description":"The parameter used to annotate this part of the training phrase. This field is required for annotated parts of the training phrase.\n"},"text":{"type":"string","description":"The text for this part.\n"}},"type":"object","required":["text"]},"gcp:diagflow/CxPageAdvancedSettings:CxPageAdvancedSettings":{"properties":{"dtmfSettings":{"$ref":"#/types/gcp:diagflow/CxPageAdvancedSettingsDtmfSettings:CxPageAdvancedSettingsDtmfSettings","description":"Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageAdvancedSettingsDtmfSettings:CxPageAdvancedSettingsDtmfSettings":{"properties":{"enabled":{"type":"boolean","description":"If true, incoming audio is processed for DTMF (dual tone multi frequtectency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will de the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).\n"},"finishDigit":{"type":"string","description":"The digit that terminates a DTMF digit sequence.\n"},"maxDigits":{"type":"integer","description":"Max length of DTMF digits.\n"}},"type":"object"},"gcp:diagflow/CxPageEntryFulfillment:CxPageEntryFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentConditionalCase:CxPageEntryFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessage:CxPageEntryFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentSetParameterAction:CxPageEntryFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxPageEntryFulfillmentConditionalCase:CxPageEntryFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxPageEntryFulfillmentMessage:CxPageEntryFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessageConversationSuccess:CxPageEntryFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessageLiveAgentHandoff:CxPageEntryFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessageOutputAudioText:CxPageEntryFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessagePlayAudio:CxPageEntryFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessageTelephonyTransferCall:CxPageEntryFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxPageEntryFulfillmentMessageText:CxPageEntryFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageEntryFulfillmentMessageConversationSuccess:CxPageEntryFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageEntryFulfillmentMessageLiveAgentHandoff:CxPageEntryFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageEntryFulfillmentMessageOutputAudioText:CxPageEntryFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageEntryFulfillmentMessagePlayAudio:CxPageEntryFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxPageEntryFulfillmentMessageTelephonyTransferCall:CxPageEntryFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxPageEntryFulfillmentMessageText:CxPageEntryFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageEntryFulfillmentSetParameterAction:CxPageEntryFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxPageEventHandler:CxPageEventHandler":{"properties":{"event":{"type":"string","description":"The name of the event to handle.\n"},"name":{"type":"string","description":"(Output)\nThe unique identifier of this event handler.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.\n"},"targetPage":{"type":"string","description":"The target page to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillment:CxPageEventHandlerTriggerFulfillment","description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:diagflow/CxPageEventHandlerTriggerFulfillment:CxPageEventHandlerTriggerFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentConditionalCase:CxPageEventHandlerTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessage:CxPageEventHandlerTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentSetParameterAction:CxPageEventHandlerTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentConditionalCase:CxPageEventHandlerTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessage:CxPageEventHandlerTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageConversationSuccess:CxPageEventHandlerTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoff:CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageOutputAudioText:CxPageEventHandlerTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessagePlayAudio:CxPageEventHandlerTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCall:CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageText:CxPageEventHandlerTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageConversationSuccess:CxPageEventHandlerTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoff:CxPageEventHandlerTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageOutputAudioText:CxPageEventHandlerTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessagePlayAudio:CxPageEventHandlerTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCall:CxPageEventHandlerTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentMessageText:CxPageEventHandlerTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageEventHandlerTriggerFulfillmentSetParameterAction:CxPageEventHandlerTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxPageForm:CxPageForm":{"properties":{"parameters":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameter:CxPageFormParameter"},"description":"Parameters to collect from the user.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameter:CxPageFormParameter":{"properties":{"advancedSettings":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterAdvancedSettings:CxPageFormParameterAdvancedSettings","description":"Hierarchical advanced settings for this parameter. The settings exposed at the lower level overrides the settings exposed at the higher level.\nHierarchy: Agent-\u003eFlow-\u003ePage-\u003eFulfillment/Parameter.\nStructure is documented below.\n"},"defaultValue":{"type":"string","description":"The default value of an optional parameter. If the parameter is required, the default value will be ignored.\n"},"displayName":{"type":"string","description":"The human-readable name of the parameter, unique within the form.\n"},"entityType":{"type":"string","description":"The entity type of the parameter.\nFormat: projects/-/locations/-/agents/-/entityTypes/\u003cSystem Entity Type ID\u003e for system entity types (for example, projects/-/locations/-/agents/-/entityTypes/sys.date), or projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/entityTypes/\u003cEntity Type ID\u003e for developer entity types.\n"},"fillBehavior":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehavior:CxPageFormParameterFillBehavior","description":"Defines fill behavior for the parameter.\nStructure is documented below.\n"},"isList":{"type":"boolean","description":"Indicates whether the parameter represents a list of values.\n"},"redact":{"type":"boolean","description":"Indicates whether the parameter content should be redacted in log.\nIf redaction is enabled, the parameter content will be replaced by parameter name during logging. Note: the parameter content is subject to redaction if either parameter level redaction or entity type level redaction is enabled.\n"},"required":{"type":"boolean","description":"Indicates whether the parameter is required. Optional parameters will not trigger prompts; however, they are filled if the user specifies them.\nRequired parameters must be filled before form filling concludes.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterAdvancedSettings:CxPageFormParameterAdvancedSettings":{"properties":{"dtmfSettings":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterAdvancedSettingsDtmfSettings:CxPageFormParameterAdvancedSettingsDtmfSettings","description":"Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterAdvancedSettingsDtmfSettings:CxPageFormParameterAdvancedSettingsDtmfSettings":{"properties":{"enabled":{"type":"boolean","description":"If true, incoming audio is processed for DTMF (dual tone multi frequtectency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will de the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).\n"},"finishDigit":{"type":"string","description":"The digit that terminates a DTMF digit sequence.\n"},"maxDigits":{"type":"integer","description":"Max length of DTMF digits.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehavior:CxPageFormParameterFillBehavior":{"properties":{"initialPromptFulfillment":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillment:CxPageFormParameterFillBehaviorInitialPromptFulfillment","description":"The fulfillment to provide the initial prompt that the agent can present to the user in order to fill the parameter.\nStructure is documented below.\n"},"repromptEventHandlers":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandler:CxPageFormParameterFillBehaviorRepromptEventHandler"},"description":"The handlers for parameter-level events, used to provide reprompt for the parameter or transition to a different page/flow. The supported events are:\n* sys.no-match-\u003cN\u003e, where N can be from 1 to 6\n* sys.no-match-default\n* sys.no-input-\u003cN\u003e, where N can be from 1 to 6\n* sys.no-input-default\n* sys.invalid-parameter\n[initialPromptFulfillment][initialPromptFulfillment] provides the first prompt for the parameter.\nIf the user's response does not fill the parameter, a no-match/no-input event will be triggered, and the fulfillment associated with the sys.no-match-1/sys.no-input-1 handler (if defined) will be called to provide a prompt. The sys.no-match-2/sys.no-input-2 handler (if defined) will respond to the next no-match/no-input event, and so on.\nA sys.no-match-default or sys.no-input-default handler will be used to handle all following no-match/no-input events after all numbered no-match/no-input handlers for the parameter are consumed.\nA sys.invalid-parameter handler can be defined to handle the case where the parameter values have been invalidated by webhook. For example, if the user's response fill the parameter, however the parameter was invalidated by webhook, the fulfillment associated with the sys.invalid-parameter handler (if defined) will be called to provide a prompt.\nIf the event handler for the corresponding event can't be found on the parameter, initialPromptFulfillment will be re-prompted.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillment:CxPageFormParameterFillBehaviorInitialPromptFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCase:CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessage:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterAction:CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCase:CxPageFormParameterFillBehaviorInitialPromptFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessage:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccess:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoff:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioText:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudio:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCall:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageText:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccess:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoff:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioText:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudio:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCall:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageText:CxPageFormParameterFillBehaviorInitialPromptFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterAction:CxPageFormParameterFillBehaviorInitialPromptFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandler:CxPageFormParameterFillBehaviorRepromptEventHandler":{"properties":{"event":{"type":"string","description":"The name of the event to handle.\n"},"name":{"type":"string","description":"(Output)\nThe unique identifier of this event handler.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.\n"},"targetPage":{"type":"string","description":"The target page to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillment:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillment","description":"The fulfillment to call when the event occurs. Handling webhook errors with a fulfillment enabled with webhook could cause infinite loop. It is invalid to specify such fulfillment for a handler handling webhooks.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillment:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCase:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessage:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterAction:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCase:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessage:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccess:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoff:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioText:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudio:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCall:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageText:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccess:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoff:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioText:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudio:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCall:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageText:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterAction:CxPageFormParameterFillBehaviorRepromptEventHandlerTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettings:CxPageKnowledgeConnectorSettings":{"properties":{"dataStoreConnections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsDataStoreConnection:CxPageKnowledgeConnectorSettingsDataStoreConnection"},"description":"Optional. List of related data store connections.\nStructure is documented below.\n"},"enabled":{"type":"boolean","description":"Whether Knowledge Connector is enabled or not.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to. Format: projects/\u003cProjectID\u003e/locations/\u003cLocationID\u003e/agents/\u003cAgentID\u003e/flows/\u003cFlowID\u003e.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e: Only one of `targetPage` or `targetFlow` may be set.\n"},"targetPage":{"type":"string","description":"The target page to transition to. Format: projects/\u003cProjectID\u003e/locations/\u003cLocationID\u003e/agents/\u003cAgentID\u003e/flows/\u003cFlowID\u003e/pages/\u003cPageID\u003e.\nThe page must be in the same host flow (the flow that owns this `KnowledgeConnectorSettings`).\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e: Only one of `targetPage` or `targetFlow` may be set.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillment:CxPageKnowledgeConnectorSettingsTriggerFulfillment","description":"The fulfillment to be triggered.\nWhen the answers from the Knowledge Connector are selected by Dialogflow, you can utitlize the request scoped parameter $request.knowledge.answers (contains up to the 5 highest confidence answers) and $request.knowledge.questions (contains the corresponding questions) to construct the fulfillment.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsDataStoreConnection:CxPageKnowledgeConnectorSettingsDataStoreConnection":{"properties":{"dataStore":{"type":"string","description":"The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}\n"},"dataStoreType":{"type":"string","description":"The type of the connected data store.\n* PUBLIC_WEB: A data store that contains public web content.\n* UNSTRUCTURED: A data store that contains unstructured private data.\n* STRUCTURED: A data store that contains structured data (for example FAQ).\nPossible values are: `PUBLIC_WEB`, `UNSTRUCTURED`, `STRUCTURED`.\n"},"documentProcessingMode":{"type":"string","description":"The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode.\n* DOCUMENTS: Documents are processed as documents.\n* CHUNKS: Documents are converted to chunks.\nPossible values are: `DOCUMENTS`, `CHUNKS`.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillment:CxPageKnowledgeConnectorSettingsTriggerFulfillment":{"properties":{"advancedSettings":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings","description":"Hierarchical advanced settings for agent/flow/page/fulfillment/parameter. Settings exposed at lower level overrides the settings exposed at higher level. Overriding occurs at the sub-setting level. For example, the playbackInterruptionSettings at fulfillment level only overrides the playbackInterruptionSettings at the agent level, leaving other settings at the agent level unchanged.\nDTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel.\nHierarchy: Agent-\u003eFlow-\u003ePage-\u003eFulfillment/Parameter.\nStructure is documented below.\n"},"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase:CxPageKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"enableGenerativeFallback":{"type":"boolean","description":"If the flag is true, the agent will utilize LLM to generate a text response. If LLM generation fails, the defined responses in the fulfillment will be respected. This flag is only useful for fulfillments associated with no-match event handlers.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessage:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction:CxPageKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettings":{"properties":{"dtmfSettings":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings","description":"Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"},"loggingSettings":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings","description":"Settings for logging. Settings for Dialogflow History, Contact Center messages, StackDriver logs, and speech logging. Exposed at the following levels:\n* Agent level\nStructure is documented below.\n"},"speechSettings":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings","description":"Settings for speech to text detection. Exposed at the following levels:\n* Agent level\n* Flow level\n* Page level\n* Parameter level\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsDtmfSettings":{"properties":{"enabled":{"type":"boolean","description":"If true, incoming audio is processed for DTMF (dual tone multi frequtectency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will de the event (e.g. a \"3\" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).\n"},"endpointingTimeoutDuration":{"type":"string","description":"Endpoint timeout setting for matching dtmf input to regex.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"finishDigit":{"type":"string","description":"The digit that terminates a DTMF digit sequence.\n"},"interdigitTimeoutDuration":{"type":"string","description":"Interdigit timeout setting for matching dtmf input to regex.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"maxDigits":{"type":"integer","description":"Max length of DTMF digits.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsLoggingSettings":{"properties":{"enableConsentBasedRedaction":{"type":"boolean","description":"Enables consent-based end-user input redaction, if true, a pre-defined session parameter **$session.params.conversation-redaction** will be used to determine if the utterance should be redacted.\n"},"enableInteractionLogging":{"type":"boolean","description":"Enables DF Interaction logging.\n"},"enableStackdriverLogging":{"type":"boolean","description":"Enables Google Cloud Logging.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings:CxPageKnowledgeConnectorSettingsTriggerFulfillmentAdvancedSettingsSpeechSettings":{"properties":{"endpointerSensitivity":{"type":"integer","description":"Sensitivity of the speech model that detects the end of speech. Scale from 0 to 100.\n"},"models":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping from language to Speech-to-Text model. The mapped Speech-to-Text model will be selected for requests from its corresponding language. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).\nAn object containing a list of **\"key\": value** pairs. Example: **{ \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }**.\n"},"noSpeechTimeout":{"type":"string","description":"Timeout before detecting no speech.\nA duration in seconds with up to nine fractional digits, ending with 's'. Example: \"3.500s\".\n"},"useTimeoutBasedEndpointing":{"type":"boolean","description":"Use timeout based endpointing, interpreting endpointer sensitivity as seconds of timeout value.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase:CxPageKnowledgeConnectorSettingsTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessage:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"endInteractions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction"},"description":"(Output)\nThis type has no fields.\nIndicates that interaction with the Dialogflow agent has ended. This message is generated by Dialogflow only and not supposed to be defined by the user.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"knowledgeInfoCard":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard","description":"This type has no fields.\nRepresents info card response. If the response contains generative knowledge prediction, Dialogflow will return a payload with Infobot Messenger compatible info card.\nOtherwise, the info card response is skipped.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"mixedAudios":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio"},"description":"(Output)\nRepresents an audio message that is composed of both segments synthesized from the Dialogflow agent prompts and ones hosted externally at the specified URIs. The external URIs are specified via playAudio. This message is generated by Dialogflow only and not supposed to be defined by the user.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageText:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endInteractions","mixedAudios"]}}},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageEndInteraction":{"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageKnowledgeInfoCard":{"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudio":{"properties":{"segments":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment"},"description":"Segments this audio response is composed of.\n"}},"type":"object"},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageMixedAudioSegment":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this segment can be interrupted by the end user's speech and the client should then start the next Dialogflow request.\n"},"audio":{"type":"string","description":"Raw audio synthesized from the Dialogflow agent's response using the output config specified in the request.\nA base64-encoded string.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`audio`\" pulumi-lang-dotnet=\"`Audio`\" pulumi-lang-go=\"`audio`\" pulumi-lang-python=\"`audio`\" pulumi-lang-yaml=\"`audio`\" pulumi-lang-java=\"`audio`\"\u003e`audio`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`uri`\" pulumi-lang-dotnet=\"`Uri`\" pulumi-lang-go=\"`uri`\" pulumi-lang-python=\"`uri`\" pulumi-lang-yaml=\"`uri`\" pulumi-lang-java=\"`uri`\"\u003e`uri`\u003c/span\u003e may be set.\n"},"uri":{"type":"string","description":"Client-specific URI that points to an audio clip accessible to the client. Dialogflow does not impose any validation on it.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`audio`\" pulumi-lang-dotnet=\"`Audio`\" pulumi-lang-go=\"`audio`\" pulumi-lang-python=\"`audio`\" pulumi-lang-yaml=\"`audio`\" pulumi-lang-java=\"`audio`\"\u003e`audio`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`uri`\" pulumi-lang-dotnet=\"`Uri`\" pulumi-lang-go=\"`uri`\" pulumi-lang-python=\"`uri`\" pulumi-lang-yaml=\"`uri`\" pulumi-lang-java=\"`uri`\"\u003e`uri`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageText:CxPageKnowledgeConnectorSettingsTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction:CxPageKnowledgeConnectorSettingsTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxPageTransitionRoute:CxPageTransitionRoute":{"properties":{"condition":{"type":"string","description":"The condition to evaluate against form parameters or session parameters.\nAt least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.\n"},"intent":{"type":"string","description":"The unique identifier of an Intent.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e. Indicates that the transition can only happen when the given intent is matched. At least one of intent or condition must be specified. When both intent and condition are specified, the transition can only happen when both are fulfilled.\n"},"name":{"type":"string","description":"(Output)\nThe unique identifier of this transition route.\n"},"targetFlow":{"type":"string","description":"The target flow to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.\n"},"targetPage":{"type":"string","description":"The target page to transition to.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"},"triggerFulfillment":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillment:CxPageTransitionRouteTriggerFulfillment","description":"The fulfillment to call when the condition is satisfied. At least one of triggerFulfillment and target must be specified. When both are defined, triggerFulfillment is executed first.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillment:CxPageTransitionRouteTriggerFulfillment":{"properties":{"conditionalCases":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentConditionalCase:CxPageTransitionRouteTriggerFulfillmentConditionalCase"},"description":"Conditional cases for this fulfillment.\nStructure is documented below.\n"},"messages":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessage:CxPageTransitionRouteTriggerFulfillmentMessage"},"description":"The list of rich message responses to present to the user.\nStructure is documented below.\n"},"returnPartialResponses":{"type":"boolean","description":"Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks.\n"},"setParameterActions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentSetParameterAction:CxPageTransitionRouteTriggerFulfillmentSetParameterAction"},"description":"Set parameter values before executing the webhook.\nStructure is documented below.\n"},"tag":{"type":"string","description":"The tag used by the webhook to identify which fulfillment is being called. This field is required if webhook is specified.\n"},"webhook":{"type":"string","description":"The webhook to call. Format: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/webhooks/\u003cWebhook ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentConditionalCase:CxPageTransitionRouteTriggerFulfillmentConditionalCase":{"properties":{"cases":{"type":"string","description":"A JSON encoded list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored.\nSee [Case](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/Fulfillment#case) for the schema.\n"}},"type":"object"},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessage:CxPageTransitionRouteTriggerFulfillmentMessage":{"properties":{"channel":{"type":"string","description":"The channel which the response is associated with. Clients can specify the channel via QueryParameters.channel, and only associated channel response will be returned.\n"},"conversationSuccess":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccess:CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccess","description":"Indicates that the conversation succeeded, i.e., the bot handled the issue that the customer talked to it about.\nDialogflow only uses this to determine which conversations should be counted as successful and doesn't process the metadata in this message in any way. Note that Dialogflow also considers conversations that get to the conversation end page as successful even if they don't return ConversationSuccess.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates that the conversation succeeded.\n* In a webhook response when you determine that you handled the customer issue.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"liveAgentHandoff":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff:CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff","description":"Indicates that the conversation should be handed off to a live agent.\nDialogflow only uses this to determine which conversations were handed off to a human agent for measurement purposes. What else to do with this signal is up to you and your handoff procedures.\nYou may set this, for example:\n* In the entryFulfillment of a Page if entering the page indicates something went extremely wrong in the conversation.\n* In a webhook response when you determine that the customer issue can only be handled by a human.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"outputAudioText":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioText:CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioText","description":"A text or ssml response that is preferentially used for TTS output audio synthesis, as described in the comment on the ResponseMessage message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"payload":{"type":"string","description":"Returns a response containing a custom, platform-specific payload.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\n"},"playAudio":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessagePlayAudio:CxPageTransitionRouteTriggerFulfillmentMessagePlayAudio","description":"Specifies an audio clip to be played by the client as part of the response.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"telephonyTransferCall":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall:CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall","description":"Represents the signal that telles the client to transfer the phone call connected to the agent to a third-party endpoint.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageText:CxPageTransitionRouteTriggerFulfillmentMessageText","description":"The text response message.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`message`\" pulumi-lang-dotnet=\"`Message`\" pulumi-lang-go=\"`message`\" pulumi-lang-python=\"`message`\" pulumi-lang-yaml=\"`message`\" pulumi-lang-java=\"`message`\"\u003e`message`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`payload`\" pulumi-lang-dotnet=\"`Payload`\" pulumi-lang-go=\"`payload`\" pulumi-lang-python=\"`payload`\" pulumi-lang-yaml=\"`payload`\" pulumi-lang-java=\"`payload`\"\u003e`payload`\u003c/span\u003e, `conversationSuccess`, `outputAudioText`, `liveAgentHandoff`, `endInteraction`, `playAudio`, `mixedAudio`, `telephonyTransferCall`, or `knowledgeInfoCard` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccess:CxPageTransitionRouteTriggerFulfillmentMessageConversationSuccess":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff:CxPageTransitionRouteTriggerFulfillmentMessageLiveAgentHandoff":{"properties":{"metadata":{"type":"string","description":"Custom metadata. Dialogflow doesn't impose any structure on this.\n"}},"type":"object"},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioText:CxPageTransitionRouteTriggerFulfillmentMessageOutputAudioText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"ssml":{"type":"string","description":"The SSML text to be synthesized. For more information, see SSML.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"},"text":{"type":"string","description":"The raw text to be synthesized.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`source`\" pulumi-lang-dotnet=\"`Source`\" pulumi-lang-go=\"`source`\" pulumi-lang-python=\"`source`\" pulumi-lang-yaml=\"`source`\" pulumi-lang-java=\"`source`\"\u003e`source`\u003c/span\u003e: Only one of \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ssml`\" pulumi-lang-dotnet=\"`Ssml`\" pulumi-lang-go=\"`ssml`\" pulumi-lang-python=\"`ssml`\" pulumi-lang-yaml=\"`ssml`\" pulumi-lang-java=\"`ssml`\"\u003e`ssml`\u003c/span\u003e may be set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessagePlayAudio:CxPageTransitionRouteTriggerFulfillmentMessagePlayAudio":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-dotnet=\"\"NestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-go=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-python=\"\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\" pulumi-lang-yaml=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\" pulumi-lang-java=\"\"nestedKnowledgeConnectorSettingsTriggerFulfillmentMessagesMixedAudio\"\"\u003e\"nested_knowledge_connector_settings_trigger_fulfillment_messages_mixed_audio\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`mixedAudio`\" pulumi-lang-dotnet=\"`MixedAudio`\" pulumi-lang-go=\"`mixedAudio`\" pulumi-lang-python=\"`mixed_audio`\" pulumi-lang-yaml=\"`mixedAudio`\" pulumi-lang-java=\"`mixedAudio`\"\u003e`mixed_audio`\u003c/span\u003e block contains:\n"},"audioUri":{"type":"string","description":"URI of the audio clip. Dialogflow does not impose any validation on this value. It is specific to the client that reads it.\n"}},"type":"object","required":["audioUri"],"language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption","audioUri"]}}},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall:CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall":{"properties":{"phoneNumber":{"type":"string","description":"Transfer the call to a phone number in E.164 format.\n"}},"type":"object","required":["phoneNumber"]},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentMessageText:CxPageTransitionRouteTriggerFulfillmentMessageText":{"properties":{"allowPlaybackInterruption":{"type":"boolean","description":"(Output)\nWhether the playback of this message can be interrupted by the end user's speech and the client can then starts the next Dialogflow request.\n"},"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text response variants. If multiple variants are defined, only one text response variant is returned at runtime.\nrequired: true\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowPlaybackInterruption"]}}},"gcp:diagflow/CxPageTransitionRouteTriggerFulfillmentSetParameterAction:CxPageTransitionRouteTriggerFulfillmentSetParameterAction":{"properties":{"parameter":{"type":"string","description":"Display name of the parameter.\n"},"value":{"type":"string","description":"The new JSON-encoded value of the parameter. A null value clears the parameter.\n"}},"type":"object"},"gcp:diagflow/CxPlaybookInstruction:CxPlaybookInstruction":{"properties":{"guidelines":{"type":"string","description":"General guidelines for the playbook. These are unstructured instructions that are not directly part of the goal, e.g. \"Always be polite\". It's valid for this text to be long and used instead of steps altogether.\n"},"steps":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxPlaybookInstructionStep:CxPlaybookInstructionStep"},"description":"Ordered list of step by step execution instructions to accomplish target goal.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxPlaybookInstructionStep:CxPlaybookInstructionStep":{"properties":{"steps":{"type":"string","description":"Sub-processing needed to execute the current step.\nThis field uses JSON data as a string. The value provided must be a valid JSON representation documented in [Step](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.playbooks#step).\n"},"text":{"type":"string","description":"Step instruction in text format.\n"}},"type":"object"},"gcp:diagflow/CxPlaybookLlmModelSettings:CxPlaybookLlmModelSettings":{"properties":{"model":{"type":"string","description":"The selected LLM model.\n"},"promptText":{"type":"string","description":"The custom prompt to use.\n"}},"type":"object"},"gcp:diagflow/CxSecuritySettingsAudioExportSettings:CxSecuritySettingsAudioExportSettings":{"properties":{"audioExportPattern":{"type":"string","description":"Filename pattern for exported audio.\n"},"audioFormat":{"type":"string","description":"File format for exported audio file. Currently only in telephony recordings.\n* MULAW: G.711 mu-law PCM with 8kHz sample rate.\n* MP3: MP3 file format.\n* OGG: OGG Vorbis.\nPossible values are: `MULAW`, `MP3`, `OGG`.\n"},"enableAudioRedaction":{"type":"boolean","description":"Enable audio redaction if it is true.\n"},"gcsBucket":{"type":"string","description":"Cloud Storage bucket to export audio record to. Setting this field would grant the Storage Object Creator role to the Dialogflow Service Agent. API caller that tries to modify this field should have the permission of storage.buckets.setIamPolicy.\n"}},"type":"object"},"gcp:diagflow/CxSecuritySettingsInsightsExportSettings:CxSecuritySettingsInsightsExportSettings":{"properties":{"enableInsightsExport":{"type":"boolean","description":"If enabled, we will automatically exports conversations to Insights and Insights runs its analyzers.\n"}},"type":"object","required":["enableInsightsExport"]},"gcp:diagflow/CxTestCaseLastTestResult:CxTestCaseLastTestResult":{"properties":{"conversationTurns":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurn:CxTestCaseLastTestResultConversationTurn"},"description":"The conversation turns uttered during the test case replay in chronological order.\nStructure is documented below.\n"},"environment":{"type":"string","description":"Environment where the test was run. If not set, it indicates the draft environment.\n"},"name":{"type":"string","description":"The unique identifier of the page.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"},"testResult":{"type":"string","description":"Whether the test case passed in the agent environment.\n* PASSED: The test passed.\n* FAILED: The test did not pass.\nPossible values are: `PASSED`, `FAILED`.\n"},"testTime":{"type":"string","description":"The time that the test was run. A timestamp in RFC3339 text format.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurn:CxTestCaseLastTestResultConversationTurn":{"properties":{"userInput":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInput:CxTestCaseLastTestResultConversationTurnUserInput","description":"The user input.\nStructure is documented below.\n"},"virtualAgentOutput":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutput:CxTestCaseLastTestResultConversationTurnVirtualAgentOutput","description":"The virtual agent output.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInput:CxTestCaseLastTestResultConversationTurnUserInput":{"properties":{"enableSentimentAnalysis":{"type":"boolean","description":"Whether sentiment analysis is enabled.\n"},"injectedParameters":{"type":"string","description":"Parameters that need to be injected into the conversation during intent detection.\n"},"input":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInput:CxTestCaseLastTestResultConversationTurnUserInputInput","description":"User input. Supports text input, event input, dtmf input in the test case.\nStructure is documented below.\n"},"isWebhookEnabled":{"type":"boolean","description":"If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInput:CxTestCaseLastTestResultConversationTurnUserInputInput":{"properties":{"dtmf":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInputDtmf:CxTestCaseLastTestResultConversationTurnUserInputInputDtmf","description":"The DTMF event to be handled.\nStructure is documented below.\n"},"event":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInputEvent:CxTestCaseLastTestResultConversationTurnUserInputInputEvent","description":"The event to be triggered.\nStructure is documented below.\n"},"languageCode":{"type":"string","description":"The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes.\nNote that queries in the same session do not necessarily need to specify the same language.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInputText:CxTestCaseLastTestResultConversationTurnUserInputInputText","description":"The natural language text to be processed.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInputDtmf:CxTestCaseLastTestResultConversationTurnUserInputInputDtmf":{"properties":{"digits":{"type":"string","description":"The dtmf digits.\n"},"finishDigit":{"type":"string","description":"The finish digit (if any).\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInputEvent:CxTestCaseLastTestResultConversationTurnUserInputInputEvent":{"properties":{"event":{"type":"string","description":"Name of the event.\n"}},"type":"object","required":["event"]},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnUserInputInputText:CxTestCaseLastTestResultConversationTurnUserInputInputText":{"properties":{"text":{"type":"string","description":"The natural language text to be processed. Text length must not exceed 256 characters.\n"}},"type":"object","required":["text"]},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutput:CxTestCaseLastTestResultConversationTurnVirtualAgentOutput":{"properties":{"currentPage":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputCurrentPage:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputCurrentPage","description":"The [Page](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.flows.pages#Page) on which the utterance was spoken.\nStructure is documented below.\n"},"differences":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputDifference:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputDifference"},"description":"The list of differences between the original run and the replay for this output, if any.\nStructure is documented below.\n"},"sessionParameters":{"type":"string","description":"The session parameters available to the bot at this point.\n"},"status":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputStatus:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputStatus","description":"Response error from the agent in the test result. If set, other output is empty.\nStructure is documented below.\n"},"textResponses":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTextResponse:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTextResponse"},"description":"The text responses from the agent for the turn.\nStructure is documented below.\n"},"triggeredIntent":{"$ref":"#/types/gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTriggeredIntent:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTriggeredIntent","description":"The [Intent](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.intents#Intent) that triggered the response.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputCurrentPage:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputCurrentPage":{"properties":{"displayName":{"type":"string","description":"(Output)\nThe human-readable name of the page, unique within the flow.\n"},"name":{"type":"string","description":"The unique identifier of the page.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputDifference:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputDifference":{"properties":{"description":{"type":"string","description":"A human readable description of the diff, showing the actual output vs expected output.\n"},"type":{"type":"string","description":"The type of diff.\n* INTENT: The intent.\n* PAGE: The page.\n* PARAMETERS: The parameters.\n* UTTERANCE: The message utterance.\n* FLOW: The flow.\nPossible values are: `INTENT`, `PAGE`, `PARAMETERS`, `UTTERANCE`, `FLOW`.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputStatus:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputStatus":{"properties":{"code":{"type":"integer","description":"The status code, which should be an enum value of google.rpc.Code.\n"},"details":{"type":"string","description":"A JSON encoded list of messages that carry the error details.\n"},"message":{"type":"string","description":"A developer-facing error message.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTextResponse:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTextResponse":{"properties":{"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text responses.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTriggeredIntent:CxTestCaseLastTestResultConversationTurnVirtualAgentOutputTriggeredIntent":{"properties":{"displayName":{"type":"string","description":"(Output)\nThe human-readable name of the intent, unique within the agent.\n"},"name":{"type":"string","description":"The unique identifier of the intent.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurn:CxTestCaseTestCaseConversationTurn":{"properties":{"userInput":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInput:CxTestCaseTestCaseConversationTurnUserInput","description":"The user input.\nStructure is documented below.\n"},"virtualAgentOutput":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutput:CxTestCaseTestCaseConversationTurnVirtualAgentOutput","description":"The virtual agent output.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInput:CxTestCaseTestCaseConversationTurnUserInput":{"properties":{"enableSentimentAnalysis":{"type":"boolean","description":"Whether sentiment analysis is enabled.\n"},"injectedParameters":{"type":"string","description":"Parameters that need to be injected into the conversation during intent detection.\n"},"input":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInput:CxTestCaseTestCaseConversationTurnUserInputInput","description":"User input. Supports text input, event input, dtmf input in the test case.\nStructure is documented below.\n"},"isWebhookEnabled":{"type":"boolean","description":"If webhooks should be allowed to trigger in response to the user utterance. Often if parameters are injected, webhooks should not be enabled.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInput:CxTestCaseTestCaseConversationTurnUserInputInput":{"properties":{"dtmf":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInputDtmf:CxTestCaseTestCaseConversationTurnUserInputInputDtmf","description":"The DTMF event to be handled.\nStructure is documented below.\n"},"event":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInputEvent:CxTestCaseTestCaseConversationTurnUserInputInputEvent","description":"The event to be triggered.\nStructure is documented below.\n"},"languageCode":{"type":"string","description":"The language of the input. See [Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language) for a list of the currently supported language codes.\nNote that queries in the same session do not necessarily need to specify the same language.\n"},"text":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInputText:CxTestCaseTestCaseConversationTurnUserInputInputText","description":"The natural language text to be processed.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInputDtmf:CxTestCaseTestCaseConversationTurnUserInputInputDtmf":{"properties":{"digits":{"type":"string","description":"The dtmf digits.\n"},"finishDigit":{"type":"string","description":"The finish digit (if any).\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInputEvent:CxTestCaseTestCaseConversationTurnUserInputInputEvent":{"properties":{"event":{"type":"string","description":"Name of the event.\n"}},"type":"object","required":["event"]},"gcp:diagflow/CxTestCaseTestCaseConversationTurnUserInputInputText:CxTestCaseTestCaseConversationTurnUserInputInputText":{"properties":{"text":{"type":"string","description":"The natural language text to be processed. Text length must not exceed 256 characters.\n"}},"type":"object","required":["text"]},"gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutput:CxTestCaseTestCaseConversationTurnVirtualAgentOutput":{"properties":{"currentPage":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutputCurrentPage:CxTestCaseTestCaseConversationTurnVirtualAgentOutputCurrentPage","description":"The [Page](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.flows.pages#Page) on which the utterance was spoken.\nStructure is documented below.\n"},"sessionParameters":{"type":"string","description":"The session parameters available to the bot at this point.\n"},"textResponses":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutputTextResponse:CxTestCaseTestCaseConversationTurnVirtualAgentOutputTextResponse"},"description":"The text responses from the agent for the turn.\nStructure is documented below.\n"},"triggeredIntent":{"$ref":"#/types/gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutputTriggeredIntent:CxTestCaseTestCaseConversationTurnVirtualAgentOutputTriggeredIntent","description":"The [Intent](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.intents#Intent) that triggered the response.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutputCurrentPage:CxTestCaseTestCaseConversationTurnVirtualAgentOutputCurrentPage":{"properties":{"displayName":{"type":"string","description":"(Output)\nThe human-readable name of the page, unique within the flow.\n"},"name":{"type":"string","description":"The unique identifier of the page.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutputTextResponse:CxTestCaseTestCaseConversationTurnVirtualAgentOutputTextResponse":{"properties":{"texts":{"type":"array","items":{"type":"string"},"description":"A collection of text responses.\n"}},"type":"object"},"gcp:diagflow/CxTestCaseTestCaseConversationTurnVirtualAgentOutputTriggeredIntent:CxTestCaseTestCaseConversationTurnVirtualAgentOutputTriggeredIntent":{"properties":{"displayName":{"type":"string","description":"(Output)\nThe human-readable name of the intent, unique within the agent.\n"},"name":{"type":"string","description":"The unique identifier of the intent.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/intents/\u003cIntent ID\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"gcp:diagflow/CxTestCaseTestConfig:CxTestCaseTestConfig":{"properties":{"flow":{"type":"string","description":"Flow name to start the test case with.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e.\nOnly one of flow and page should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.\n"},"page":{"type":"string","description":"The page to start the test case with.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/flows/\u003cFlow ID\u003e/pages/\u003cPage ID\u003e.\nOnly one of flow and page should be set to indicate the starting point of the test case. If neither is set, the test case will start with start page on the default start flow.\n"},"trackingParameters":{"type":"array","items":{"type":"string"},"description":"Session parameters to be compared when calculating differences.\n"}},"type":"object"},"gcp:diagflow/CxToolConnectorSpec:CxToolConnectorSpec":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxToolConnectorSpecAction:CxToolConnectorSpecAction"},"description":"Actions for the tool to use.\nStructure is documented below.\n"},"endUserAuthConfig":{"$ref":"#/types/gcp:diagflow/CxToolConnectorSpecEndUserAuthConfig:CxToolConnectorSpecEndUserAuthConfig","description":"Integration Connectors end-user authentication configuration.\nIf configured, the end-user authentication fields will be passed in the Integration Connectors API request\nand override the admin, default authentication configured for the Connection.\nNote: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise,\nthe ConnectorTool creation will fail.\nSee: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override        properties:\nStructure is documented below.\n"},"name":{"type":"string","description":"The full resource name of the referenced Integration Connectors Connection.\nFormat: projects/*/locations/*/connections/*\n"}},"type":"object","required":["actions","name"]},"gcp:diagflow/CxToolConnectorSpecAction:CxToolConnectorSpecAction":{"properties":{"connectionActionId":{"type":"string","description":"ID of a Connection action for the tool to use. This field is part of a required union field \u003cspan pulumi-lang-nodejs=\"`actionSpec`\" pulumi-lang-dotnet=\"`ActionSpec`\" pulumi-lang-go=\"`actionSpec`\" pulumi-lang-python=\"`action_spec`\" pulumi-lang-yaml=\"`actionSpec`\" pulumi-lang-java=\"`actionSpec`\"\u003e`action_spec`\u003c/span\u003e.\n"},"entityOperation":{"$ref":"#/types/gcp:diagflow/CxToolConnectorSpecActionEntityOperation:CxToolConnectorSpecActionEntityOperation","description":"Entity operation configuration for the tool to use. This field is part of a required union field \u003cspan pulumi-lang-nodejs=\"`actionSpec`\" pulumi-lang-dotnet=\"`ActionSpec`\" pulumi-lang-go=\"`actionSpec`\" pulumi-lang-python=\"`action_spec`\" pulumi-lang-yaml=\"`actionSpec`\" pulumi-lang-java=\"`actionSpec`\"\u003e`action_spec`\u003c/span\u003e.\nStructure is documented below.\n"},"inputFields":{"type":"array","items":{"type":"string"},"description":"Entity fields to use as inputs for the operation.\nIf no fields are specified, all fields of the Entity will be used.\n"},"outputFields":{"type":"array","items":{"type":"string"},"description":"Entity fields to return from the operation.\nIf no fields are specified, all fields of the Entity will be returned.\n"}},"type":"object"},"gcp:diagflow/CxToolConnectorSpecActionEntityOperation:CxToolConnectorSpecActionEntityOperation":{"properties":{"entityId":{"type":"string","description":"ID of the entity.\n"},"operation":{"type":"string","description":"The operation to perform on the entity.\nPossible values are: `LIST`, `CREATE`, `UPDATE`, `DELETE`, `GET`.\n"}},"type":"object","required":["entityId","operation"]},"gcp:diagflow/CxToolConnectorSpecEndUserAuthConfig:CxToolConnectorSpecEndUserAuthConfig":{"properties":{"oauth2AuthCodeConfig":{"$ref":"#/types/gcp:diagflow/CxToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig:CxToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig","description":"Oauth 2.0 Authorization Code authentication. This field is part of a union field \u003cspan pulumi-lang-nodejs=\"`endUserAuthConfig`\" pulumi-lang-dotnet=\"`EndUserAuthConfig`\" pulumi-lang-go=\"`endUserAuthConfig`\" pulumi-lang-python=\"`end_user_auth_config`\" pulumi-lang-yaml=\"`endUserAuthConfig`\" pulumi-lang-java=\"`endUserAuthConfig`\"\u003e`end_user_auth_config`\u003c/span\u003e. Only one of `oauth2AuthCodeConfig` or `oauth2JwtBearerConfig` may be set.\nStructure is documented below.\n"},"oauth2JwtBearerConfig":{"$ref":"#/types/gcp:diagflow/CxToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig:CxToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig","description":"JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field \u003cspan pulumi-lang-nodejs=\"`endUserAuthConfig`\" pulumi-lang-dotnet=\"`EndUserAuthConfig`\" pulumi-lang-go=\"`endUserAuthConfig`\" pulumi-lang-python=\"`end_user_auth_config`\" pulumi-lang-yaml=\"`endUserAuthConfig`\" pulumi-lang-java=\"`endUserAuthConfig`\"\u003e`end_user_auth_config`\u003c/span\u003e. Only one of `oauth2AuthCodeConfig` or `oauth2JwtBearerConfig` may be set.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-dotnet=\"\"NestedConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-go=\"\"nestedConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-python=\"\"nested_connector_spec_end_user_auth_config_oauth2_auth_code_config\"\" pulumi-lang-yaml=\"\"nestedConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-java=\"\"nestedConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\"\u003e\"nested_connector_spec_end_user_auth_config_oauth2_auth_code_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`oauth2AuthCodeConfig`\" pulumi-lang-dotnet=\"`Oauth2AuthCodeConfig`\" pulumi-lang-go=\"`oauth2AuthCodeConfig`\" pulumi-lang-python=\"`oauth2_auth_code_config`\" pulumi-lang-yaml=\"`oauth2AuthCodeConfig`\" pulumi-lang-java=\"`oauth2AuthCodeConfig`\"\u003e`oauth2_auth_code_config`\u003c/span\u003e block supports:\n"}},"type":"object"},"gcp:diagflow/CxToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig:CxToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig":{"properties":{"oauthToken":{"type":"string","description":"Oauth token value or parameter name to pass it through.\n"}},"type":"object","required":["oauthToken"]},"gcp:diagflow/CxToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig:CxToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig":{"properties":{"clientKey":{"type":"string","description":"Client key value or parameter name to pass it through.\n"},"issuer":{"type":"string","description":"Issuer value or parameter name to pass it through.\n"},"subject":{"type":"string","description":"Subject value or parameter name to pass it through.\n"}},"type":"object","required":["clientKey","issuer","subject"]},"gcp:diagflow/CxToolDataStoreSpec:CxToolDataStoreSpec":{"properties":{"dataStoreConnections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxToolDataStoreSpecDataStoreConnection:CxToolDataStoreSpecDataStoreConnection"},"description":"List of data stores to search.\nStructure is documented below.\n"},"fallbackPrompt":{"$ref":"#/types/gcp:diagflow/CxToolDataStoreSpecFallbackPrompt:CxToolDataStoreSpecFallbackPrompt","description":"Fallback prompt configurations to use.\n"}},"type":"object","required":["dataStoreConnections","fallbackPrompt"]},"gcp:diagflow/CxToolDataStoreSpecDataStoreConnection:CxToolDataStoreSpecDataStoreConnection":{"properties":{"dataStore":{"type":"string","description":"The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}\n"},"dataStoreType":{"type":"string","description":"The type of the connected data store.\nSee [DataStoreType](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/DataStoreConnection#datastoretype) for valid values.\n"},"documentProcessingMode":{"type":"string","description":"The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode.\nSee [DocumentProcessingMode](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/DataStoreConnection#documentprocessingmode) for valid values.\n"}},"type":"object"},"gcp:diagflow/CxToolDataStoreSpecFallbackPrompt:CxToolDataStoreSpecFallbackPrompt":{"type":"object"},"gcp:diagflow/CxToolFunctionSpec:CxToolFunctionSpec":{"properties":{"inputSchema":{"type":"string","description":"Optional. The JSON schema is encapsulated in a [google.protobuf.Struct](https://protobuf.dev/reference/protobuf/google.protobuf/#struct) to describe the input of the function.\nThis input is a JSON object that contains the function's parameters as properties of the object\n"},"outputSchema":{"type":"string","description":"Optional. The JSON schema is encapsulated in a [google.protobuf.Struct](https://protobuf.dev/reference/protobuf/google.protobuf/#struct) to describe the output of the function.\nThis output is a JSON object that contains the function's parameters as properties of the object\n"}},"type":"object"},"gcp:diagflow/CxToolOpenApiSpec:CxToolOpenApiSpec":{"properties":{"authentication":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecAuthentication:CxToolOpenApiSpecAuthentication","description":"Optional. Authentication information required by the API.\nStructure is documented below.\n"},"serviceDirectoryConfig":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecServiceDirectoryConfig:CxToolOpenApiSpecServiceDirectoryConfig","description":"Optional. Service Directory configuration.\nStructure is documented below.\n"},"textSchema":{"type":"string","description":"The OpenAPI schema specified as a text.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e: only one of `textSchema` may be set.\n"},"tlsConfig":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecTlsConfig:CxToolOpenApiSpecTlsConfig","description":"Optional. TLS configuration for the HTTPS verification.\nStructure is documented below.\n"}},"type":"object","required":["textSchema"]},"gcp:diagflow/CxToolOpenApiSpecAuthentication:CxToolOpenApiSpecAuthentication":{"properties":{"apiKeyConfig":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecAuthenticationApiKeyConfig:CxToolOpenApiSpecAuthenticationApiKeyConfig","description":"Config for API key auth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n"},"bearerTokenConfig":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecAuthenticationBearerTokenConfig:CxToolOpenApiSpecAuthenticationBearerTokenConfig","description":"Config for bearer token auth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n"},"oauthConfig":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecAuthenticationOauthConfig:CxToolOpenApiSpecAuthenticationOauthConfig","description":"Config for OAuth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n"},"serviceAgentAuthConfig":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecAuthenticationServiceAgentAuthConfig:CxToolOpenApiSpecAuthenticationServiceAgentAuthConfig","description":"Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/CxToolOpenApiSpecAuthenticationApiKeyConfig:CxToolOpenApiSpecAuthenticationApiKeyConfig":{"properties":{"apiKey":{"type":"string","description":"Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"keyName":{"type":"string","description":"The parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n"},"requestLocation":{"type":"string","description":"Key location in the request.\nSee [RequestLocation](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#requestlocation) for valid values.\n"},"secretVersionForApiKey":{"type":"string","description":"Optional. The name of the SecretManager secret version resource storing the API key.\nIf this field is set, the apiKey field will be ignored.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n"}},"type":"object","required":["keyName","requestLocation"]},"gcp:diagflow/CxToolOpenApiSpecAuthenticationBearerTokenConfig:CxToolOpenApiSpecAuthenticationBearerTokenConfig":{"properties":{"secretVersionForToken":{"type":"string","description":"Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the \u003cspan pulumi-lang-nodejs=\"`token`\" pulumi-lang-dotnet=\"`Token`\" pulumi-lang-go=\"`token`\" pulumi-lang-python=\"`token`\" pulumi-lang-yaml=\"`token`\" pulumi-lang-java=\"`token`\"\u003e`token`\u003c/span\u003e field will be ignored.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n"},"token":{"type":"string","description":"Optional. The text token appended to the text Bearer to the request Authorization header.\n[Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true}},"type":"object"},"gcp:diagflow/CxToolOpenApiSpecAuthenticationOauthConfig:CxToolOpenApiSpecAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"The client ID from the OAuth provider.\n"},"clientSecret":{"type":"string","description":"Optional. The client secret from the OAuth provider. If the `secretVersionForClientSecret` field is set, this field will be ignored.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true},"oauthGrantType":{"type":"string","description":"OAuth grant types.\nSee [OauthGrantType](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#oauthgranttype) for valid values\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"Optional. The OAuth scopes to grant.\n"},"secretVersionForClientSecret":{"type":"string","description":"Optional. The name of the SecretManager secret version resource storing the client secret.\nIf this field is set, the clientSecret field will be ignored.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n"},"tokenEndpoint":{"type":"string","description":"The token endpoint in the OAuth provider to exchange for an access token.\n"}},"type":"object","required":["clientId","oauthGrantType","tokenEndpoint"]},"gcp:diagflow/CxToolOpenApiSpecAuthenticationServiceAgentAuthConfig:CxToolOpenApiSpecAuthenticationServiceAgentAuthConfig":{"properties":{"serviceAgentAuth":{"type":"string","description":"Optional. Indicate the auth token type generated from the Diglogflow service agent.\nThe generated token is sent in the Authorization header.\nSee [ServiceAgentAuth](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#serviceagentauth) for valid values.\n"}},"type":"object"},"gcp:diagflow/CxToolOpenApiSpecServiceDirectoryConfig:CxToolOpenApiSpecServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"The name of [Service Directory](https://cloud.google.com/service-directory/docs) service.\nFormat: projects/\u003cProjectID\u003e/locations/\u003cLocationID\u003e/namespaces/\u003cNamespaceID\u003e/services/\u003cServiceID\u003e. LocationID of the service directory must be the same as the location of the agent.\n"}},"type":"object","required":["service"]},"gcp:diagflow/CxToolOpenApiSpecTlsConfig:CxToolOpenApiSpecTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxToolOpenApiSpecTlsConfigCaCert:CxToolOpenApiSpecTlsConfigCaCert"},"description":"Specifies a list of allowed custom CA certificates for HTTPS verification.\nStructure is documented below.\n"}},"type":"object","required":["caCerts"]},"gcp:diagflow/CxToolOpenApiSpecTlsConfigCaCert:CxToolOpenApiSpecTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store.\nIf this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates.\nN.B. Make sure the HTTPS server certificates are signed with \"subject alt name\".\nFor instance a certificate can be self-signed using the following command:\n```\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n```\nA base64-encoded string.\n"},"displayName":{"type":"string","description":"The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.\n"}},"type":"object","required":["cert","displayName"]},"gcp:diagflow/CxToolVersionTool:CxToolVersionTool":{"properties":{"connectorSpec":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolConnectorSpec:CxToolVersionToolConnectorSpec","description":"(Optional, Beta)\nIntegration connectors tool specification.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e: Only one of `openApiSpec`, `dataStoreSpec`, `functionSpec`, or `connectorSpec` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"dataStoreSpec":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolDataStoreSpec:CxToolVersionToolDataStoreSpec","description":"Data store search tool specification.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"High level description of the Tool and its usage.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"The human-readable name of the tool, unique within the agent.\n","willReplaceOnChanges":true},"functionSpec":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolFunctionSpec:CxToolVersionToolFunctionSpec","description":"Client side executed function specification.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"(Output)\nThe unique identifier of the Tool.\nFormat: projects/\u003cProject ID\u003e/locations/\u003cLocation ID\u003e/agents/\u003cAgent ID\u003e/tools/\u003cTool ID\u003e.\n"},"openApiSpec":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpec:CxToolVersionToolOpenApiSpec","description":"OpenAPI specification of the Tool.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`specification`\" pulumi-lang-dotnet=\"`Specification`\" pulumi-lang-go=\"`specification`\" pulumi-lang-python=\"`specification`\" pulumi-lang-yaml=\"`specification`\" pulumi-lang-java=\"`specification`\"\u003e`specification`\u003c/span\u003e: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"toolType":{"type":"string","description":"(Output)\nThe tool type.\n"}},"type":"object","required":["description","displayName"],"language":{"nodejs":{"requiredOutputs":["description","displayName","name","toolType"]}}},"gcp:diagflow/CxToolVersionToolConnectorSpec:CxToolVersionToolConnectorSpec":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolConnectorSpecAction:CxToolVersionToolConnectorSpecAction"},"description":"Actions for the tool to use.\nStructure is documented below.\n","willReplaceOnChanges":true},"endUserAuthConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolConnectorSpecEndUserAuthConfig:CxToolVersionToolConnectorSpecEndUserAuthConfig","description":"Integration Connectors end-user authentication configuration.\nIf configured, the end-user authentication fields will be passed in the Integration Connectors API request\nand override the admin, default authentication configured for the Connection.\nNote: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise,\nthe ConnectorTool creation will fail.\nSee: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override        properties:\nStructure is documented below.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The full resource name of the referenced Integration Connectors Connection.\nFormat: projects/*/locations/*/connections/*\n","willReplaceOnChanges":true}},"type":"object","required":["actions","name"]},"gcp:diagflow/CxToolVersionToolConnectorSpecAction:CxToolVersionToolConnectorSpecAction":{"properties":{"connectionActionId":{"type":"string","description":"ID of a Connection action for the tool to use. This field is part of a required union field \u003cspan pulumi-lang-nodejs=\"`actionSpec`\" pulumi-lang-dotnet=\"`ActionSpec`\" pulumi-lang-go=\"`actionSpec`\" pulumi-lang-python=\"`action_spec`\" pulumi-lang-yaml=\"`actionSpec`\" pulumi-lang-java=\"`actionSpec`\"\u003e`action_spec`\u003c/span\u003e.\n","willReplaceOnChanges":true},"entityOperation":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolConnectorSpecActionEntityOperation:CxToolVersionToolConnectorSpecActionEntityOperation","description":"Entity operation configuration for the tool to use. This field is part of a required union field \u003cspan pulumi-lang-nodejs=\"`actionSpec`\" pulumi-lang-dotnet=\"`ActionSpec`\" pulumi-lang-go=\"`actionSpec`\" pulumi-lang-python=\"`action_spec`\" pulumi-lang-yaml=\"`actionSpec`\" pulumi-lang-java=\"`actionSpec`\"\u003e`action_spec`\u003c/span\u003e.\nStructure is documented below.\n","willReplaceOnChanges":true},"inputFields":{"type":"array","items":{"type":"string"},"description":"Entity fields to use as inputs for the operation.\nIf no fields are specified, all fields of the Entity will be used.\n","willReplaceOnChanges":true},"outputFields":{"type":"array","items":{"type":"string"},"description":"Entity fields to return from the operation.\nIf no fields are specified, all fields of the Entity will be returned.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolConnectorSpecActionEntityOperation:CxToolVersionToolConnectorSpecActionEntityOperation":{"properties":{"entityId":{"type":"string","description":"ID of the entity.\n","willReplaceOnChanges":true},"operation":{"type":"string","description":"The operation to perform on the entity.\nPossible values are: `LIST`, `CREATE`, `UPDATE`, `DELETE`, `GET`.\n","willReplaceOnChanges":true}},"type":"object","required":["entityId","operation"]},"gcp:diagflow/CxToolVersionToolConnectorSpecEndUserAuthConfig:CxToolVersionToolConnectorSpecEndUserAuthConfig":{"properties":{"oauth2AuthCodeConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig:CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig","description":"Oauth 2.0 Authorization Code authentication. This field is part of a union field \u003cspan pulumi-lang-nodejs=\"`endUserAuthConfig`\" pulumi-lang-dotnet=\"`EndUserAuthConfig`\" pulumi-lang-go=\"`endUserAuthConfig`\" pulumi-lang-python=\"`end_user_auth_config`\" pulumi-lang-yaml=\"`endUserAuthConfig`\" pulumi-lang-java=\"`endUserAuthConfig`\"\u003e`end_user_auth_config`\u003c/span\u003e. Only one of `oauth2AuthCodeConfig` or `oauth2JwtBearerConfig` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"oauth2JwtBearerConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig:CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig","description":"JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field \u003cspan pulumi-lang-nodejs=\"`endUserAuthConfig`\" pulumi-lang-dotnet=\"`EndUserAuthConfig`\" pulumi-lang-go=\"`endUserAuthConfig`\" pulumi-lang-python=\"`end_user_auth_config`\" pulumi-lang-yaml=\"`endUserAuthConfig`\" pulumi-lang-java=\"`endUserAuthConfig`\"\u003e`end_user_auth_config`\u003c/span\u003e. Only one of `oauth2AuthCodeConfig` or `oauth2JwtBearerConfig` may be set.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-dotnet=\"\"NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-go=\"\"nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-python=\"\"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config\"\" pulumi-lang-yaml=\"\"nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\" pulumi-lang-java=\"\"nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig\"\"\u003e\"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`oauth2AuthCodeConfig`\" pulumi-lang-dotnet=\"`Oauth2AuthCodeConfig`\" pulumi-lang-go=\"`oauth2AuthCodeConfig`\" pulumi-lang-python=\"`oauth2_auth_code_config`\" pulumi-lang-yaml=\"`oauth2AuthCodeConfig`\" pulumi-lang-java=\"`oauth2AuthCodeConfig`\"\u003e`oauth2_auth_code_config`\u003c/span\u003e block supports:\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig:CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig":{"properties":{"oauthToken":{"type":"string","description":"Oauth token value or parameter name to pass it through.\n","willReplaceOnChanges":true}},"type":"object","required":["oauthToken"]},"gcp:diagflow/CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig:CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig":{"properties":{"clientKey":{"type":"string","description":"Client key value or parameter name to pass it through.\n","willReplaceOnChanges":true},"issuer":{"type":"string","description":"Issuer value or parameter name to pass it through.\n","willReplaceOnChanges":true},"subject":{"type":"string","description":"Subject value or parameter name to pass it through.\n","willReplaceOnChanges":true}},"type":"object","required":["clientKey","issuer","subject"]},"gcp:diagflow/CxToolVersionToolDataStoreSpec:CxToolVersionToolDataStoreSpec":{"properties":{"dataStoreConnections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolDataStoreSpecDataStoreConnection:CxToolVersionToolDataStoreSpecDataStoreConnection"},"description":"List of data stores to search.\nStructure is documented below.\n","willReplaceOnChanges":true},"fallbackPrompt":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolDataStoreSpecFallbackPrompt:CxToolVersionToolDataStoreSpecFallbackPrompt","description":"Fallback prompt configurations to use.\n","willReplaceOnChanges":true}},"type":"object","required":["dataStoreConnections","fallbackPrompt"]},"gcp:diagflow/CxToolVersionToolDataStoreSpecDataStoreConnection:CxToolVersionToolDataStoreSpecDataStoreConnection":{"properties":{"dataStore":{"type":"string","description":"The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}\n","willReplaceOnChanges":true},"dataStoreType":{"type":"string","description":"The type of the connected data store.\nSee [DataStoreType](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/DataStoreConnection#datastoretype) for valid values.\n","willReplaceOnChanges":true},"documentProcessingMode":{"type":"string","description":"The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode.\nSee [DocumentProcessingMode](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/DataStoreConnection#documentprocessingmode) for valid values.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolDataStoreSpecFallbackPrompt:CxToolVersionToolDataStoreSpecFallbackPrompt":{"type":"object"},"gcp:diagflow/CxToolVersionToolFunctionSpec:CxToolVersionToolFunctionSpec":{"properties":{"inputSchema":{"type":"string","description":"Optional. The JSON schema is encapsulated in a [google.protobuf.Struct](https://protobuf.dev/reference/protobuf/google.protobuf/#struct) to describe the input of the function.\nThis input is a JSON object that contains the function's parameters as properties of the object\n","willReplaceOnChanges":true},"outputSchema":{"type":"string","description":"Optional. The JSON schema is encapsulated in a [google.protobuf.Struct](https://protobuf.dev/reference/protobuf/google.protobuf/#struct) to describe the output of the function.\nThis output is a JSON object that contains the function's parameters as properties of the object\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolOpenApiSpec:CxToolVersionToolOpenApiSpec":{"properties":{"authentication":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecAuthentication:CxToolVersionToolOpenApiSpecAuthentication","description":"Optional. Authentication information required by the API.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceDirectoryConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecServiceDirectoryConfig:CxToolVersionToolOpenApiSpecServiceDirectoryConfig","description":"Optional. Service Directory configuration.\nStructure is documented below.\n","willReplaceOnChanges":true},"textSchema":{"type":"string","description":"The OpenAPI schema specified as a text.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`schema`\" pulumi-lang-dotnet=\"`Schema`\" pulumi-lang-go=\"`schema`\" pulumi-lang-python=\"`schema`\" pulumi-lang-yaml=\"`schema`\" pulumi-lang-java=\"`schema`\"\u003e`schema`\u003c/span\u003e: only one of `textSchema` may be set.\n","willReplaceOnChanges":true},"tlsConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecTlsConfig:CxToolVersionToolOpenApiSpecTlsConfig","description":"Optional. TLS configuration for the HTTPS verification.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["textSchema"]},"gcp:diagflow/CxToolVersionToolOpenApiSpecAuthentication:CxToolVersionToolOpenApiSpecAuthentication":{"properties":{"apiKeyConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig:CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig","description":"Config for API key auth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"bearerTokenConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig:CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig","description":"Config for bearer token auth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"oauthConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationOauthConfig:CxToolVersionToolOpenApiSpecAuthenticationOauthConfig","description":"Config for OAuth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"serviceAgentAuthConfig":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig:CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig","description":"Config for [Diglogflow service agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent) auth.\nThis field is part of a union field \u003cspan pulumi-lang-nodejs=\"`authConfig`\" pulumi-lang-dotnet=\"`AuthConfig`\" pulumi-lang-go=\"`authConfig`\" pulumi-lang-python=\"`auth_config`\" pulumi-lang-yaml=\"`authConfig`\" pulumi-lang-java=\"`authConfig`\"\u003e`auth_config`\u003c/span\u003e: Only one of `apiKeyConfig`, `oauthConfig`, `serviceAgentAuthConfig`, or `bearerTokenConfig` may be set.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig:CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig":{"properties":{"apiKey":{"type":"string","description":"Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"keyName":{"type":"string","description":"The parameter name or the header name of the API key.\nE.g., If the API request is \"https://example.com/act?X-Api-Key=\", \"X-Api-Key\" would be the parameter name.\n","willReplaceOnChanges":true},"requestLocation":{"type":"string","description":"Key location in the request.\nSee [RequestLocation](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#requestlocation) for valid values.\n","willReplaceOnChanges":true},"secretVersionForApiKey":{"type":"string","description":"Optional. The name of the SecretManager secret version resource storing the API key.\nIf this field is set, the apiKey field will be ignored.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n","willReplaceOnChanges":true}},"type":"object","required":["keyName","requestLocation"]},"gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig:CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig":{"properties":{"secretVersionForToken":{"type":"string","description":"Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the \u003cspan pulumi-lang-nodejs=\"`token`\" pulumi-lang-dotnet=\"`Token`\" pulumi-lang-go=\"`token`\" pulumi-lang-python=\"`token`\" pulumi-lang-yaml=\"`token`\" pulumi-lang-java=\"`token`\"\u003e`token`\u003c/span\u003e field will be ignored.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n","willReplaceOnChanges":true},"token":{"type":"string","description":"Optional. The text token appended to the text Bearer to the request Authorization header.\n[Session parameters reference](https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be used to pass the token dynamically, e.g. `$session.params.parameter-id`.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationOauthConfig:CxToolVersionToolOpenApiSpecAuthenticationOauthConfig":{"properties":{"clientId":{"type":"string","description":"The client ID from the OAuth provider.\n","willReplaceOnChanges":true},"clientSecret":{"type":"string","description":"Optional. The client secret from the OAuth provider. If the `secretVersionForClientSecret` field is set, this field will be ignored.\n**Note**: This property is sensitive and will not be displayed in the plan.\n","secret":true,"willReplaceOnChanges":true},"oauthGrantType":{"type":"string","description":"OAuth grant types.\nSee [OauthGrantType](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#oauthgranttype) for valid values\n","willReplaceOnChanges":true},"scopes":{"type":"array","items":{"type":"string"},"description":"Optional. The OAuth scopes to grant.\n","willReplaceOnChanges":true},"secretVersionForClientSecret":{"type":"string","description":"Optional. The name of the SecretManager secret version resource storing the client secret.\nIf this field is set, the clientSecret field will be ignored.\nFormat: projects/{project}/secrets/{secret}/versions/{version}\n","willReplaceOnChanges":true},"tokenEndpoint":{"type":"string","description":"The token endpoint in the OAuth provider to exchange for an access token.\n","willReplaceOnChanges":true}},"type":"object","required":["clientId","oauthGrantType","tokenEndpoint"]},"gcp:diagflow/CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig:CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig":{"properties":{"serviceAgentAuth":{"type":"string","description":"Optional. Indicate the auth token type generated from the Diglogflow service agent.\nThe generated token is sent in the Authorization header.\nSee [ServiceAgentAuth](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools#serviceagentauth) for valid values.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:diagflow/CxToolVersionToolOpenApiSpecServiceDirectoryConfig:CxToolVersionToolOpenApiSpecServiceDirectoryConfig":{"properties":{"service":{"type":"string","description":"The name of [Service Directory](https://cloud.google.com/service-directory/docs) service.\nFormat: projects/\u003cProjectID\u003e/locations/\u003cLocationID\u003e/namespaces/\u003cNamespaceID\u003e/services/\u003cServiceID\u003e. LocationID of the service directory must be the same as the location of the agent.\n","willReplaceOnChanges":true}},"type":"object","required":["service"]},"gcp:diagflow/CxToolVersionToolOpenApiSpecTlsConfig:CxToolVersionToolOpenApiSpecTlsConfig":{"properties":{"caCerts":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxToolVersionToolOpenApiSpecTlsConfigCaCert:CxToolVersionToolOpenApiSpecTlsConfigCaCert"},"description":"Specifies a list of allowed custom CA certificates for HTTPS verification.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","required":["caCerts"]},"gcp:diagflow/CxToolVersionToolOpenApiSpecTlsConfigCaCert:CxToolVersionToolOpenApiSpecTlsConfigCaCert":{"properties":{"cert":{"type":"string","description":"The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store.\nIf this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates.\nN.B. Make sure the HTTPS server certificates are signed with \"subject alt name\".\nFor instance a certificate can be self-signed using the following command:\n```\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n```\nA base64-encoded string.\n","willReplaceOnChanges":true},"displayName":{"type":"string","description":"The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.\n","willReplaceOnChanges":true}},"type":"object","required":["cert","displayName"]},"gcp:diagflow/CxVersionNluSetting:CxVersionNluSetting":{"properties":{"classificationThreshold":{"type":"number","description":"To filter out false positive results and still get variety in matched natural language inputs for your agent, you can tune the machine learning classification threshold. If the returned score value is less than the threshold value, then a no-match event will be triggered.\nThe score values range from 0.0 (completely uncertain) to 1.0 (completely certain). If set to 0.0, the default of 0.3 is used.\n"},"modelTrainingMode":{"type":"string","description":"Indicates NLU model training mode.\n* MODEL_TRAINING_MODE_AUTOMATIC: NLU model training is automatically triggered when a flow gets modified. User can also manually trigger model training in this mode.\n* MODEL_TRAINING_MODE_MANUAL: User needs to manually trigger NLU model training. Best for large flows whose models take long time to train.\nPossible values are: `MODEL_TRAINING_MODE_AUTOMATIC`, `MODEL_TRAINING_MODE_MANUAL`.\n"},"modelType":{"type":"string","description":"Indicates the type of NLU model.\n* MODEL_TYPE_STANDARD: Use standard NLU model.\n* MODEL_TYPE_ADVANCED: Use advanced NLU model.\nPossible values are: `MODEL_TYPE_STANDARD`, `MODEL_TYPE_ADVANCED`.\n"}},"type":"object"},"gcp:diagflow/CxWebhookGenericWebService:CxWebhookGenericWebService":{"properties":{"allowedCaCerts":{"type":"array","items":{"type":"string"},"description":"Specifies a list of allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, Dialogflow will use Google's default trust store\nto verify certificates.\nN.B. Make sure the HTTPS server certificates are signed with \"subject alt\nname\". For instance a certificate can be self-signed using the following\ncommand,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n"},"httpMethod":{"type":"string","description":"HTTP method for the flexible webhook calls. Standard webhook always uses\nPOST.\nPossible values are: `POST`, `GET`, `HEAD`, `PUT`, `DELETE`, `PATCH`, `OPTIONS`.\n"},"oauthConfig":{"$ref":"#/types/gcp:diagflow/CxWebhookGenericWebServiceOauthConfig:CxWebhookGenericWebServiceOauthConfig","description":"Represents configuration of OAuth client credential flow for 3rd party\nAPI authentication.\nStructure is documented below.\n"},"parameterMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"Maps the values extracted from specific fields of the flexible webhook\nresponse into session parameters.\n- Key: session parameter name\n- Value: field path in the webhook response\n"},"requestBody":{"type":"string","description":"Defines a custom JSON object as request body to send to flexible webhook.\n"},"requestHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The HTTP request headers to send together with webhook requests.\n"},"secretVersionForUsernamePassword":{"type":"string","description":"The SecretManager secret version resource storing the username:password\npair for HTTP Basic authentication.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\n"},"secretVersionsForRequestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxWebhookGenericWebServiceSecretVersionsForRequestHeader:CxWebhookGenericWebServiceSecretVersionsForRequestHeader"},"description":"The HTTP request headers to send together with webhook requests. Header\nvalues are stored in SecretManager secret versions.\nWhen the same header name is specified in both \u003cspan pulumi-lang-nodejs=\"`requestHeaders`\" pulumi-lang-dotnet=\"`RequestHeaders`\" pulumi-lang-go=\"`requestHeaders`\" pulumi-lang-python=\"`request_headers`\" pulumi-lang-yaml=\"`requestHeaders`\" pulumi-lang-java=\"`requestHeaders`\"\u003e`request_headers`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`secretVersionsForRequestHeaders`\" pulumi-lang-dotnet=\"`SecretVersionsForRequestHeaders`\" pulumi-lang-go=\"`secretVersionsForRequestHeaders`\" pulumi-lang-python=\"`secret_versions_for_request_headers`\" pulumi-lang-yaml=\"`secretVersionsForRequestHeaders`\" pulumi-lang-java=\"`secretVersionsForRequestHeaders`\"\u003e`secret_versions_for_request_headers`\u003c/span\u003e, the value in\n\u003cspan pulumi-lang-nodejs=\"`secretVersionsForRequestHeaders`\" pulumi-lang-dotnet=\"`SecretVersionsForRequestHeaders`\" pulumi-lang-go=\"`secretVersionsForRequestHeaders`\" pulumi-lang-python=\"`secret_versions_for_request_headers`\" pulumi-lang-yaml=\"`secretVersionsForRequestHeaders`\" pulumi-lang-java=\"`secretVersionsForRequestHeaders`\"\u003e`secret_versions_for_request_headers`\u003c/span\u003e will be used.\nStructure is documented below.\n"},"serviceAccountAuthConfig":{"$ref":"#/types/gcp:diagflow/CxWebhookGenericWebServiceServiceAccountAuthConfig:CxWebhookGenericWebServiceServiceAccountAuthConfig","description":"Configuration for authentication using a service account.\nStructure is documented below.\n"},"serviceAgentAuth":{"type":"string","description":"Indicate the auth token type generated from the [Diglogflow service\nagent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent).\nThe generated token is sent in the Authorization header.\nPossible values are: `NONE`, `ID_TOKEN`, `ACCESS_TOKEN`.\n"},"uri":{"type":"string","description":"The webhook URI for receiving POST requests. It must use https protocol.\n"},"webhookType":{"type":"string","description":"Type of the webhook.\nPossible values are: `STANDARD`, `FLEXIBLE`.\n"}},"type":"object","required":["uri"]},"gcp:diagflow/CxWebhookGenericWebServiceOauthConfig:CxWebhookGenericWebServiceOauthConfig":{"properties":{"clientId":{"type":"string","description":"The client ID provided by the 3rd party platform.\n"},"clientSecret":{"type":"string","description":"The client secret provided by the 3rd party platform.  If the\n\u003cspan pulumi-lang-nodejs=\"`secretVersionForClientSecret`\" pulumi-lang-dotnet=\"`SecretVersionForClientSecret`\" pulumi-lang-go=\"`secretVersionForClientSecret`\" pulumi-lang-python=\"`secret_version_for_client_secret`\" pulumi-lang-yaml=\"`secretVersionForClientSecret`\" pulumi-lang-java=\"`secretVersionForClientSecret`\"\u003e`secret_version_for_client_secret`\u003c/span\u003e field is set, this field will be\nignored.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"The OAuth scopes to grant.\n"},"secretVersionForClientSecret":{"type":"string","description":"The name of the SecretManager secret version resource storing the\nclient secret. If this field is set, the \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e field will be\nignored.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\n"},"tokenEndpoint":{"type":"string","description":"The token endpoint provided by the 3rd party platform to exchange an\naccess token.\n"}},"type":"object","required":["clientId","tokenEndpoint"]},"gcp:diagflow/CxWebhookGenericWebServiceSecretVersionsForRequestHeader:CxWebhookGenericWebServiceSecretVersionsForRequestHeader":{"properties":{"key":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"secretVersion":{"type":"string","description":"The SecretManager secret version resource storing the header value.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\n"}},"type":"object","required":["key","secretVersion"]},"gcp:diagflow/CxWebhookGenericWebServiceServiceAccountAuthConfig:CxWebhookGenericWebServiceServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"The email address of the service account used to authenticate the webhook call.\nDialogflow uses this service account to exchange an access token and the access\ntoken is then sent in the **Authorization** header of the webhook request.\nThe service account must have the **roles/iam.serviceAccountTokenCreator** role\ngranted to the\n[Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents?_gl=1*1jsujvh*_ga*NjYxMzU3OTg2LjE3Njc3MzQ4NjM.*_ga_WH2QY8WWF5*czE3Njc3MzQ2MjgkbzIkZzEkdDE3Njc3MzQ3NzQkajYwJGwwJGgw#dialogflow-service-agent).\n"}},"type":"object","required":["serviceAccount"]},"gcp:diagflow/CxWebhookServiceDirectory:CxWebhookServiceDirectory":{"properties":{"genericWebService":{"$ref":"#/types/gcp:diagflow/CxWebhookServiceDirectoryGenericWebService:CxWebhookServiceDirectoryGenericWebService","description":"Represents configuration for a generic web service.\nStructure is documented below.\n"},"service":{"type":"string","description":"The name of Service Directory service.\n"}},"type":"object","required":["service"]},"gcp:diagflow/CxWebhookServiceDirectoryGenericWebService:CxWebhookServiceDirectoryGenericWebService":{"properties":{"allowedCaCerts":{"type":"array","items":{"type":"string"},"description":"Specifies a list of allowed custom CA certificates (in DER format) for\nHTTPS verification. This overrides the default SSL trust store. If this\nis empty or unspecified, Dialogflow will use Google's default trust store\nto verify certificates.\nN.B. Make sure the HTTPS server certificates are signed with \"subject alt\nname\". For instance a certificate can be self-signed using the following\ncommand,\nopenssl x509 -req -days 200 -in example.com.csr \\\n-signkey example.com.key \\\n-out example.com.crt \\\n-extfile \u003c(printf \"\\nsubjectAltName='DNS:www.example.com'\")\n"},"httpMethod":{"type":"string","description":"HTTP method for the flexible webhook calls. Standard webhook always uses\nPOST.\nPossible values are: `POST`, `GET`, `HEAD`, `PUT`, `DELETE`, `PATCH`, `OPTIONS`.\n"},"oauthConfig":{"$ref":"#/types/gcp:diagflow/CxWebhookServiceDirectoryGenericWebServiceOauthConfig:CxWebhookServiceDirectoryGenericWebServiceOauthConfig","description":"Represents configuration of OAuth client credential flow for 3rd party\nAPI authentication.\nStructure is documented below.\n"},"parameterMapping":{"type":"object","additionalProperties":{"type":"string"},"description":"Maps the values extracted from specific fields of the flexible webhook\nresponse into session parameters.\n- Key: session parameter name\n- Value: field path in the webhook response\n"},"requestBody":{"type":"string","description":"Defines a custom JSON object as request body to send to flexible webhook.\n"},"requestHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The HTTP request headers to send together with webhook requests.\n"},"secretVersionForUsernamePassword":{"type":"string","description":"The SecretManager secret version resource storing the username:password\npair for HTTP Basic authentication.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\n"},"secretVersionsForRequestHeaders":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/CxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeader:CxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeader"},"description":"The HTTP request headers to send together with webhook requests. Header\nvalues are stored in SecretManager secret versions.\nWhen the same header name is specified in both \u003cspan pulumi-lang-nodejs=\"`requestHeaders`\" pulumi-lang-dotnet=\"`RequestHeaders`\" pulumi-lang-go=\"`requestHeaders`\" pulumi-lang-python=\"`request_headers`\" pulumi-lang-yaml=\"`requestHeaders`\" pulumi-lang-java=\"`requestHeaders`\"\u003e`request_headers`\u003c/span\u003e and\n\u003cspan pulumi-lang-nodejs=\"`secretVersionsForRequestHeaders`\" pulumi-lang-dotnet=\"`SecretVersionsForRequestHeaders`\" pulumi-lang-go=\"`secretVersionsForRequestHeaders`\" pulumi-lang-python=\"`secret_versions_for_request_headers`\" pulumi-lang-yaml=\"`secretVersionsForRequestHeaders`\" pulumi-lang-java=\"`secretVersionsForRequestHeaders`\"\u003e`secret_versions_for_request_headers`\u003c/span\u003e, the value in\n\u003cspan pulumi-lang-nodejs=\"`secretVersionsForRequestHeaders`\" pulumi-lang-dotnet=\"`SecretVersionsForRequestHeaders`\" pulumi-lang-go=\"`secretVersionsForRequestHeaders`\" pulumi-lang-python=\"`secret_versions_for_request_headers`\" pulumi-lang-yaml=\"`secretVersionsForRequestHeaders`\" pulumi-lang-java=\"`secretVersionsForRequestHeaders`\"\u003e`secret_versions_for_request_headers`\u003c/span\u003e will be used.\nStructure is documented below.\n"},"serviceAccountAuthConfig":{"$ref":"#/types/gcp:diagflow/CxWebhookServiceDirectoryGenericWebServiceServiceAccountAuthConfig:CxWebhookServiceDirectoryGenericWebServiceServiceAccountAuthConfig","description":"Configuration for authentication using a service account.\nStructure is documented below.\n"},"serviceAgentAuth":{"type":"string","description":"Indicate the auth token type generated from the [Diglogflow service\nagent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-agent).\nThe generated token is sent in the Authorization header.\nPossible values are: `NONE`, `ID_TOKEN`, `ACCESS_TOKEN`.\n"},"uri":{"type":"string","description":"The webhook URI for receiving POST requests. It must use https protocol.\n"},"webhookType":{"type":"string","description":"Type of the webhook.\nPossible values are: `STANDARD`, `FLEXIBLE`.\n"}},"type":"object","required":["uri"]},"gcp:diagflow/CxWebhookServiceDirectoryGenericWebServiceOauthConfig:CxWebhookServiceDirectoryGenericWebServiceOauthConfig":{"properties":{"clientId":{"type":"string","description":"The client ID provided by the 3rd party platform.\n"},"clientSecret":{"type":"string","description":"The client secret provided by the 3rd party platform.  If the\n\u003cspan pulumi-lang-nodejs=\"`secretVersionForClientSecret`\" pulumi-lang-dotnet=\"`SecretVersionForClientSecret`\" pulumi-lang-go=\"`secretVersionForClientSecret`\" pulumi-lang-python=\"`secret_version_for_client_secret`\" pulumi-lang-yaml=\"`secretVersionForClientSecret`\" pulumi-lang-java=\"`secretVersionForClientSecret`\"\u003e`secret_version_for_client_secret`\u003c/span\u003e field is set, this field will be\nignored.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"The OAuth scopes to grant.\n"},"secretVersionForClientSecret":{"type":"string","description":"The name of the SecretManager secret version resource storing the\nclient secret. If this field is set, the \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e field will be\nignored.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\n"},"tokenEndpoint":{"type":"string","description":"The token endpoint provided by the 3rd party platform to exchange an\naccess token.\n"}},"type":"object","required":["clientId","tokenEndpoint"]},"gcp:diagflow/CxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeader:CxWebhookServiceDirectoryGenericWebServiceSecretVersionsForRequestHeader":{"properties":{"key":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"secretVersion":{"type":"string","description":"The SecretManager secret version resource storing the header value.\nFormat: `projects/{project}/secrets/{secret}/versions/{version}`\n"}},"type":"object","required":["key","secretVersion"]},"gcp:diagflow/CxWebhookServiceDirectoryGenericWebServiceServiceAccountAuthConfig:CxWebhookServiceDirectoryGenericWebServiceServiceAccountAuthConfig":{"properties":{"serviceAccount":{"type":"string","description":"The email address of the service account used to authenticate the webhook call.\nDialogflow uses this service account to exchange an access token and the access\ntoken is then sent in the **Authorization** header of the webhook request.\nThe service account must have the **roles/iam.serviceAccountTokenCreator** role\ngranted to the\n[Dialogflow service agent](https://cloud.google.com/iam/docs/service-agents?_gl=1*1jsujvh*_ga*NjYxMzU3OTg2LjE3Njc3MzQ4NjM.*_ga_WH2QY8WWF5*czE3Njc3MzQ2MjgkbzIkZzEkdDE3Njc3MzQ3NzQkajYwJGwwJGgw#dialogflow-service-agent).\n"}},"type":"object","required":["serviceAccount"]},"gcp:diagflow/EncryptionSpecEncryptionSpec:EncryptionSpecEncryptionSpec":{"properties":{"kmsKey":{"type":"string","description":"The name of customer-managed encryption key that is used to secure a resource and its sub-resources.\nIf empty, the resource is secured by the default Google encryption key.\nOnly the key in the same location as this resource is allowed to be used for encryption.\nFormat: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}\n","willReplaceOnChanges":true}},"type":"object","required":["kmsKey"]},"gcp:diagflow/EntityTypeEntity:EntityTypeEntity":{"properties":{"synonyms":{"type":"array","items":{"type":"string"},"description":"A collection of value synonyms. For example, if the entity type is vegetable, and value is scallions, a synonym\ncould be green onions.\nFor KIND_LIST entity types:\n* This collection must contain exactly one synonym equal to value.\n"},"value":{"type":"string","description":"The primary value associated with this entity entry. For example, if the entity type is vegetable, the value\ncould be scallions.\nFor KIND_MAP entity types:\n* A reference value to be used in place of synonyms.\nFor KIND_LIST entity types:\n* A string that can contain references to other entity types (with or without aliases).\n"}},"type":"object","required":["synonyms","value"]},"gcp:diagflow/FulfillmentFeature:FulfillmentFeature":{"properties":{"type":{"type":"string","description":"The type of the feature that enabled for fulfillment.\n* SMALLTALK: Fulfillment is enabled for SmallTalk.\nPossible values are: `SMALLTALK`.\n"}},"type":"object","required":["type"]},"gcp:diagflow/FulfillmentGenericWebService:FulfillmentGenericWebService":{"properties":{"password":{"type":"string","description":"The password for HTTP Basic authentication.\n"},"requestHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"The HTTP request headers to send together with fulfillment requests.\n"},"uri":{"type":"string","description":"The fulfillment URI for receiving POST requests. It must use https protocol.\n"},"username":{"type":"string","description":"The user name for HTTP Basic authentication.\n"}},"type":"object","required":["uri"]},"gcp:diagflow/GeneratorInferenceParameter:GeneratorInferenceParameter":{"properties":{"maxOutputTokens":{"type":"integer","description":"Optional. Maximum number of the output tokens for the generator.\n"},"temperature":{"type":"number","description":"Optional. Controls the randomness of LLM predictions. Low temperature = less random. High temperature = more random. If unset (or 0), uses a default value of 0.\n"},"topK":{"type":"integer","description":"Optional. Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model's vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature). For each token selection step, the top K tokens with the highest probabilities are sampled. Then tokens are further filtered based on topP with the final token selected using temperature sampling. Specify a lower value for less random responses and a higher value for more random responses. Acceptable value is [1, 40], default to 40.\n"},"topP":{"type":"number","description":"Optional. Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value. For example, if tokens A, B, and C have a probability of 0.3, 0.2, and 0.1 and the top-p value is 0.5, then the model will select either A or B as the next token (using temperature) and doesn't consider C. The default top-p value is 0.95. Specify a lower value for less random responses and a higher value for more random responses. Acceptable value is [0.0, 1.0], default to 0.95.\n"}},"type":"object"},"gcp:diagflow/GeneratorSummarizationContext:GeneratorSummarizationContext":{"properties":{"fewShotExamples":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExample:GeneratorSummarizationContextFewShotExample"},"description":"Optional. List of few shot examples.\nStructure is documented below.\n"},"outputLanguageCode":{"type":"string","description":"Optional. The target language of the generated summary. The language code for conversation will be used if this field is empty. Supported 2.0 and later versions.\n"},"summarizationSections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextSummarizationSection:GeneratorSummarizationContextSummarizationSection"},"description":"Optional. List of sections. Note it contains both predefined section sand customer defined sections.\nStructure is documented below.\n"},"version":{"type":"string","description":"Optional. Version of the feature. If not set, default to latest version. Current candidates are [\"1.0\"].\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["version"]}}},"gcp:diagflow/GeneratorSummarizationContextFewShotExample:GeneratorSummarizationContextFewShotExample":{"properties":{"conversationContext":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleConversationContext:GeneratorSummarizationContextFewShotExampleConversationContext","description":"Optional. Conversation transcripts.\nStructure is documented below.\n"},"extraInfo":{"type":"object","additionalProperties":{"type":"string"},"description":"Optional. Key is the placeholder field name in input, value is the value of the placeholder. E.g. instruction contains \"@price\", and ingested data has \u003c\"price\", \"10\"\u003e\n"},"output":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleOutput:GeneratorSummarizationContextFewShotExampleOutput","description":"Required. Example output of the model.\nStructure is documented below.\n"},"summarizationSectionList":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleSummarizationSectionList:GeneratorSummarizationContextFewShotExampleSummarizationSectionList","description":"Summarization sections.\nStructure is documented below.\n"}},"type":"object","required":["output"]},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleConversationContext:GeneratorSummarizationContextFewShotExampleConversationContext":{"properties":{"messageEntries":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleConversationContextMessageEntry:GeneratorSummarizationContextFewShotExampleConversationContextMessageEntry"},"description":"Optional. List of message transcripts in the conversation.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleConversationContextMessageEntry:GeneratorSummarizationContextFewShotExampleConversationContextMessageEntry":{"properties":{"createTime":{"type":"string","description":"Optional. Create time of the message entry.\n"},"languageCode":{"type":"string","description":"Optional. The language of the text.\n"},"role":{"type":"string","description":"Optional. Participant role of the message.\nPossible values are: `HUMAN_AGENT`, `AUTOMATED_AGENT`, `END_USER`.\n"},"text":{"type":"string","description":"Optional. Transcript content of the message.\n"}},"type":"object"},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleOutput:GeneratorSummarizationContextFewShotExampleOutput":{"properties":{"summarySuggestion":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleOutputSummarySuggestion:GeneratorSummarizationContextFewShotExampleOutputSummarySuggestion","description":"Optional. Suggested summary.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleOutputSummarySuggestion:GeneratorSummarizationContextFewShotExampleOutputSummarySuggestion":{"properties":{"summarySections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleOutputSummarySuggestionSummarySection:GeneratorSummarizationContextFewShotExampleOutputSummarySuggestionSummarySection"},"description":"Required. All the parts of generated summary.\nStructure is documented below.\n"}},"type":"object","required":["summarySections"]},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleOutputSummarySuggestionSummarySection:GeneratorSummarizationContextFewShotExampleOutputSummarySuggestionSummarySection":{"properties":{"section":{"type":"string","description":"Required. Name of the section.\n"},"summary":{"type":"string","description":"Required. Summary text for the section.\n"}},"type":"object","required":["section","summary"]},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleSummarizationSectionList:GeneratorSummarizationContextFewShotExampleSummarizationSectionList":{"properties":{"summarizationSections":{"type":"array","items":{"$ref":"#/types/gcp:diagflow/GeneratorSummarizationContextFewShotExampleSummarizationSectionListSummarizationSection:GeneratorSummarizationContextFewShotExampleSummarizationSectionListSummarizationSection"},"description":"Optional. Summarization sections.\nStructure is documented below.\n"}},"type":"object"},"gcp:diagflow/GeneratorSummarizationContextFewShotExampleSummarizationSectionListSummarizationSection:GeneratorSummarizationContextFewShotExampleSummarizationSectionListSummarizationSection":{"properties":{"definition":{"type":"string","description":"Optional. Definition of the section, for example, \"what the customer needs help with or has question about.\"\n"},"key":{"type":"string","description":"Optional. Name of the section, for example, \"situation\".\n"},"type":{"type":"string","description":"Optional. Type of the summarization section.\nPossible values are: `SITUATION`, `ACTION`, `RESOLUTION`, `REASON_FOR_CANCELLATION`, `CUSTOMER_SATISFACTION`, `ENTITIES`, `CUSTOMER_DEFINED`, `SITUATION_CONCISE`, `ACTION_CONCISE`.\n"}},"type":"object"},"gcp:diagflow/GeneratorSummarizationContextSummarizationSection:GeneratorSummarizationContextSummarizationSection":{"properties":{"definition":{"type":"string","description":"Optional. Definition of the section, for example, \"what the customer needs help with or has question about.\"\n"},"key":{"type":"string","description":"Optional. Name of the section, for example, \"situation\".\n"},"type":{"type":"string","description":"Optional. Type of the summarization section.\nPossible values are: `SITUATION`, `ACTION`, `RESOLUTION`, `REASON_FOR_CANCELLATION`, `CUSTOMER_SATISFACTION`, `ENTITIES`, `CUSTOMER_DEFINED`, `SITUATION_CONCISE`, `ACTION_CONCISE`.\n"}},"type":"object"},"gcp:diagflow/IntentFollowupIntentInfo:IntentFollowupIntentInfo":{"properties":{"followupIntentName":{"type":"string","description":"The unique identifier of the followup intent.\nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.\n"},"parentFollowupIntentName":{"type":"string","description":"The unique identifier of the parent intent in the chain of followup intents.\nFormat: projects/\u003cProject ID\u003e/agent/intents/\u003cIntent ID\u003e.\n"}},"type":"object"},"gcp:discoveryengine/AclConfigIdpConfig:AclConfigIdpConfig":{"properties":{"externalIdpConfig":{"$ref":"#/types/gcp:discoveryengine/AclConfigIdpConfigExternalIdpConfig:AclConfigIdpConfigExternalIdpConfig","description":"External third party identity provider config.\nStructure is documented below.\n"},"idpType":{"type":"string","description":"Identity provider type.\nPossible values are: `GSUITE`, `THIRD_PARTY`.\n"}},"type":"object"},"gcp:discoveryengine/AclConfigIdpConfigExternalIdpConfig:AclConfigIdpConfigExternalIdpConfig":{"properties":{"workforcePoolName":{"type":"string","description":"Workforce pool name: \"locations/global/workforcePools/pool_id\"\n"}},"type":"object"},"gcp:discoveryengine/AssistantCustomerPolicy:AssistantCustomerPolicy":{"properties":{"bannedPhrases":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/AssistantCustomerPolicyBannedPhrase:AssistantCustomerPolicyBannedPhrase"},"description":"List of banned phrases.\nStructure is documented below.\n"},"modelArmorConfig":{"$ref":"#/types/gcp:discoveryengine/AssistantCustomerPolicyModelArmorConfig:AssistantCustomerPolicyModelArmorConfig","description":"Model Armor configuration to be used for sanitizing user prompts and assistant responses.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/AssistantCustomerPolicyBannedPhrase:AssistantCustomerPolicyBannedPhrase":{"properties":{"ignoreDiacritics":{"type":"boolean","description":"If true, diacritical marks (e.g., accents, umlauts) are ignored when\nmatching banned phrases. For example, \"cafe\" would match \"café\".\n"},"matchType":{"type":"string","description":"Match type for the banned phrase.\nThe supported values: 'SIMPLE_STRING_MATCH', 'WORD_BOUNDARY_STRING_MATCH'.\n"},"phrase":{"type":"string","description":"The raw string content to be banned.\n"}},"type":"object","required":["phrase"]},"gcp:discoveryengine/AssistantCustomerPolicyModelArmorConfig:AssistantCustomerPolicyModelArmorConfig":{"properties":{"failureMode":{"type":"string","description":"Defines the failure mode for Model Armor sanitization.\nThe supported values: 'FAIL_OPEN', 'FAIL_CLOSED'.\n"},"responseTemplate":{"type":"string","description":"The resource name of the Model Armor template for sanitizing assistant\nresponses. Format:\n`projects/{project}/locations/{location}/templates/{template_id}`\nIf not specified, no sanitization will be applied to the assistant\nresponse.\n"},"userPromptTemplate":{"type":"string","description":"The resource name of the Model Armor template for sanitizing user\nprompts. Format:\n`projects/{project}/locations/{location}/templates/{template_id}`\nIf not specified, no sanitization will be applied to the user prompt.\n"}},"type":"object","required":["responseTemplate","userPromptTemplate"]},"gcp:discoveryengine/AssistantGenerationConfig:AssistantGenerationConfig":{"properties":{"defaultLanguage":{"type":"string","description":"The default language to use for the generation of the assistant response.\nUse an ISO 639-1 language code such as \u003cspan pulumi-lang-nodejs=\"`en`\" pulumi-lang-dotnet=\"`En`\" pulumi-lang-go=\"`en`\" pulumi-lang-python=\"`en`\" pulumi-lang-yaml=\"`en`\" pulumi-lang-java=\"`en`\"\u003e`en`\u003c/span\u003e.\nIf not specified, the language will be automatically detected.\n"},"systemInstruction":{"$ref":"#/types/gcp:discoveryengine/AssistantGenerationConfigSystemInstruction:AssistantGenerationConfigSystemInstruction","description":"System instruction, also known as the prompt preamble for LLM calls.\nSee also https://cloud.google.com/vertex-ai/generative-ai/docs/learn/prompts/system-instructions\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/AssistantGenerationConfigSystemInstruction:AssistantGenerationConfigSystemInstruction":{"properties":{"additionalSystemInstruction":{"type":"string","description":"Additional system instruction that will be added to the default system instruction.\n"}},"type":"object"},"gcp:discoveryengine/ChatEngineChatEngineConfig:ChatEngineChatEngineConfig":{"properties":{"agentCreationConfig":{"$ref":"#/types/gcp:discoveryengine/ChatEngineChatEngineConfigAgentCreationConfig:ChatEngineChatEngineConfigAgentCreationConfig","description":"The configuration to generate the Dialogflow agent that is associated to this Engine.\nExactly one of \u003cspan pulumi-lang-nodejs=\"`agentCreationConfig`\" pulumi-lang-dotnet=\"`AgentCreationConfig`\" pulumi-lang-go=\"`agentCreationConfig`\" pulumi-lang-python=\"`agent_creation_config`\" pulumi-lang-yaml=\"`agentCreationConfig`\" pulumi-lang-java=\"`agentCreationConfig`\"\u003e`agent_creation_config`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dialogflowAgentToLink`\" pulumi-lang-dotnet=\"`DialogflowAgentToLink`\" pulumi-lang-go=\"`dialogflowAgentToLink`\" pulumi-lang-python=\"`dialogflow_agent_to_link`\" pulumi-lang-yaml=\"`dialogflowAgentToLink`\" pulumi-lang-java=\"`dialogflowAgentToLink`\"\u003e`dialogflow_agent_to_link`\u003c/span\u003e must be set.\nStructure is documented below.\n","willReplaceOnChanges":true},"allowCrossRegion":{"type":"boolean","description":"If the flag set to true, we allow the agent and engine are in\ndifferent locations, otherwise the agent and engine are required to be\nin the same location. The flag is set to false by default.\nNote that the \u003cspan pulumi-lang-nodejs=\"`allowCrossRegion`\" pulumi-lang-dotnet=\"`AllowCrossRegion`\" pulumi-lang-go=\"`allowCrossRegion`\" pulumi-lang-python=\"`allow_cross_region`\" pulumi-lang-yaml=\"`allowCrossRegion`\" pulumi-lang-java=\"`allowCrossRegion`\"\u003e`allow_cross_region`\u003c/span\u003e are one-time consumed by and passed\nto EngineService.CreateEngine. It means they cannot be retrieved using\nEngineService.GetEngine or EngineService.ListEngines API after engine\ncreation.\n","willReplaceOnChanges":true},"dialogflowAgentToLink":{"type":"string","description":"The resource name of an existing Dialogflow agent to link to this Chat Engine. Format: `projects/\u003cProject_ID\u003e/locations/\u003cLocation_ID\u003e/agents/\u003cAgent_ID\u003e`.\nExactly one of \u003cspan pulumi-lang-nodejs=\"`agentCreationConfig`\" pulumi-lang-dotnet=\"`AgentCreationConfig`\" pulumi-lang-go=\"`agentCreationConfig`\" pulumi-lang-python=\"`agent_creation_config`\" pulumi-lang-yaml=\"`agentCreationConfig`\" pulumi-lang-java=\"`agentCreationConfig`\"\u003e`agent_creation_config`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`dialogflowAgentToLink`\" pulumi-lang-dotnet=\"`DialogflowAgentToLink`\" pulumi-lang-go=\"`dialogflowAgentToLink`\" pulumi-lang-python=\"`dialogflow_agent_to_link`\" pulumi-lang-yaml=\"`dialogflowAgentToLink`\" pulumi-lang-java=\"`dialogflowAgentToLink`\"\u003e`dialogflow_agent_to_link`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:discoveryengine/ChatEngineChatEngineConfigAgentCreationConfig:ChatEngineChatEngineConfigAgentCreationConfig":{"properties":{"business":{"type":"string","description":"Name of the company, organization or other entity that the agent represents. Used for knowledge connector LLM prompt and for knowledge search.\n"},"defaultLanguageCode":{"type":"string","description":"The default language of the agent as a language tag. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.\n"},"location":{"type":"string","description":"Agent location for Agent creation, currently supported values: global/us/eu, it needs to be the same region as the Chat Engine.\n"},"timeZone":{"type":"string","description":"The time zone of the agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris.\n"}},"type":"object","required":["defaultLanguageCode","timeZone"]},"gcp:discoveryengine/ChatEngineChatEngineMetadata:ChatEngineChatEngineMetadata":{"properties":{"dialogflowAgent":{"type":"string","description":"(Output)\nThe resource name of a Dialogflow agent, that this Chat Engine refers to.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dialogflowAgent"]}}},"gcp:discoveryengine/ChatEngineCommonConfig:ChatEngineCommonConfig":{"properties":{"companyName":{"type":"string","description":"The name of the company, business or entity that is associated with the engine. Setting this may help improve LLM related features.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:discoveryengine/CmekConfigSingleRegionKey:CmekConfigSingleRegionKey":{"properties":{"kmsKey":{"type":"string","description":"Single-regional kms key resource name which will be used to encrypt\nresources\n`projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{keyId}`.\n"}},"type":"object","required":["kmsKey"]},"gcp:discoveryengine/ControlBoostAction:ControlBoostAction":{"properties":{"dataStore":{"type":"string","description":"The data store to boost.\n"},"filter":{"type":"string","description":"The filter to apply to the search results.\n"},"fixedBoost":{"type":"number","description":"The fixed boost value to apply to the search results. Positive values will increase the relevance of the results, while negative values will decrease the relevance. The value must be between -100 and 100.\n"},"interpolationBoostSpec":{"$ref":"#/types/gcp:discoveryengine/ControlBoostActionInterpolationBoostSpec:ControlBoostActionInterpolationBoostSpec","description":"The interpolation boost specification to apply to the search results.\nStructure is documented below.\n"}},"type":"object","required":["dataStore","filter"]},"gcp:discoveryengine/ControlBoostActionInterpolationBoostSpec:ControlBoostActionInterpolationBoostSpec":{"properties":{"attributeType":{"type":"string","description":"The attribute type to be used to determine the boost amount.\nPossible values are: `NUMERICAL`, `FRESHNESS`.\n"},"controlPoint":{"$ref":"#/types/gcp:discoveryengine/ControlBoostActionInterpolationBoostSpecControlPoint:ControlBoostActionInterpolationBoostSpecControlPoint","description":"The control points used to define the curve.\nStructure is documented below.\n"},"fieldName":{"type":"string","description":"The name of the field whose value will be used to determine the boost amount.\n"},"interpolationType":{"type":"string","description":"The interpolation type to be applied to connect the control points.\nPossible values are: `LINEAR`.\n"}},"type":"object"},"gcp:discoveryengine/ControlBoostActionInterpolationBoostSpecControlPoint:ControlBoostActionInterpolationBoostSpecControlPoint":{"properties":{"attributeValue":{"type":"string","description":"The attribute value of the control point.\n"},"boostAmount":{"type":"number","description":"The value between -1 to 1 by which to boost the score if the attributeValue\nevaluates to the value specified above.\n"}},"type":"object"},"gcp:discoveryengine/ControlCondition:ControlCondition":{"properties":{"activeTimeRanges":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/ControlConditionActiveTimeRange:ControlConditionActiveTimeRange"},"description":"The time range when the condition is active.\nStructure is documented below.\n"},"queryRegex":{"type":"string","description":"The regular expression that the query must match for this condition to be met.\n"},"queryTerms":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/ControlConditionQueryTerm:ControlConditionQueryTerm"},"description":"The query terms that must be present in the search request for this condition to be met.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/ControlConditionActiveTimeRange:ControlConditionActiveTimeRange":{"properties":{"endTime":{"type":"string","description":"The end time of the active time range.\n"},"startTime":{"type":"string","description":"The start time of the active time range.\n"}},"type":"object"},"gcp:discoveryengine/ControlConditionQueryTerm:ControlConditionQueryTerm":{"properties":{"fullMatch":{"type":"boolean","description":"If true, the query term must be an exact match. Otherwise, the query term can be a partial match.\n"},"value":{"type":"string","description":"The value of the query term.\n"}},"type":"object"},"gcp:discoveryengine/ControlFilterAction:ControlFilterAction":{"properties":{"dataStore":{"type":"string","description":"The data store to filter.\n"},"filter":{"type":"string","description":"The filter to apply to the search results.\n"}},"type":"object","required":["dataStore","filter"]},"gcp:discoveryengine/ControlPromoteAction:ControlPromoteAction":{"properties":{"dataStore":{"type":"string","description":"The data store to promote.\n"},"searchLinkPromotion":{"$ref":"#/types/gcp:discoveryengine/ControlPromoteActionSearchLinkPromotion:ControlPromoteActionSearchLinkPromotion","description":"The search link promotion to apply to the search results.\nStructure is documented below.\n"}},"type":"object","required":["dataStore","searchLinkPromotion"]},"gcp:discoveryengine/ControlPromoteActionSearchLinkPromotion:ControlPromoteActionSearchLinkPromotion":{"properties":{"description":{"type":"string","description":"The description of the promoted link.\n"},"document":{"type":"string","description":"The document to promote.\n"},"enabled":{"type":"boolean","description":"Return promotions for basic site search.\n"},"imageUri":{"type":"string","description":"The image URI of the promoted link.\n"},"title":{"type":"string","description":"The title of the promoted link.\n"},"uri":{"type":"string","description":"The URI to promote.\n"}},"type":"object","required":["title"]},"gcp:discoveryengine/ControlRedirectAction:ControlRedirectAction":{"properties":{"redirectUri":{"type":"string","description":"The URI to redirect to.\n"}},"type":"object","required":["redirectUri"]},"gcp:discoveryengine/ControlSynonymsAction:ControlSynonymsAction":{"properties":{"synonyms":{"type":"array","items":{"type":"string"},"description":"The synonyms to apply to the search results.\n"}},"type":"object"},"gcp:discoveryengine/DataConnectorEntity:DataConnectorEntity":{"properties":{"dataStore":{"type":"string","description":"(Output)\nThe full resource name of the associated data store for the source\nentity.\nFormat: `projects/*/locations/*/collections/*/dataStores/*`.\nWhen the connector is initialized by the DataConnectorService.SetUpDataConnector\nmethod, a DataStore is automatically created for each source entity.\n"},"entityName":{"type":"string","description":"The name of the entity. Supported values by data source:\n* Salesforce: `Lead`, `Opportunity`, `Contact`, `Account`, `Case`, `Contract`, `Campaign`\n* Jira: project, issue, attachment, comment, worklog\n* Confluence: `Content`, `Space`\n","willReplaceOnChanges":true},"keyPropertyMappings":{"type":"object","additionalProperties":{"type":"string"},"description":"Attributes for indexing.\nKey: Field name.\nValue: The key property to map a field to, such as \u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e, and\n\u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e. Supported key properties:\n"},"params":{"type":"string","description":"The parameters for the entity to facilitate data ingestion.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dataStore"]}}},"gcp:discoveryengine/DataConnectorError:DataConnectorError":{"properties":{"code":{"type":"integer","description":"(Output)\nThe status code, which should be an enum value of google.rpc.Code.\n"},"message":{"type":"string","description":"(Output)\nA developer-facing error message, which should be in English.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"gcp:discoveryengine/DataStoreAdvancedSiteSearchConfig:DataStoreAdvancedSiteSearchConfig":{"properties":{"disableAutomaticRefresh":{"type":"boolean","description":"If set true, automatic refresh is disabled for the DataStore.\n"},"disableInitialIndex":{"type":"boolean","description":"If set true, initial indexing is disabled for the DataStore.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfig:DataStoreDocumentProcessingConfig":{"properties":{"chunkingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigChunkingConfig:DataStoreDocumentProcessingConfigChunkingConfig","description":"Whether chunking mode is enabled.\nStructure is documented below.\n"},"defaultParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfig","description":"Configurations for default Document parser. If not specified, this resource\nwill be configured to use a default DigitalParsingConfig, and the default parsing\nconfig will be applied to all file types for Document parsing.\nStructure is documented below.\n"},"name":{"type":"string","description":"(Output)\nThe full resource name of the Document Processing Config. Format:\n`projects/{project}/locations/{location}/collections/{collection_id}/dataStores/{data_store_id}/documentProcessingConfig`.\n"},"parsingConfigOverrides":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverride:DataStoreDocumentProcessingConfigParsingConfigOverride"},"description":"Map from file type to override the default parsing configuration based on the file type. Supported keys:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:discoveryengine/DataStoreDocumentProcessingConfigChunkingConfig:DataStoreDocumentProcessingConfigChunkingConfig":{"properties":{"layoutBasedChunkingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig:DataStoreDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig","description":"Configuration for the layout based chunking.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig:DataStoreDocumentProcessingConfigChunkingConfigLayoutBasedChunkingConfig":{"properties":{"chunkSize":{"type":"integer","description":"The token size limit for each chunk.\nSupported values: 100-500 (inclusive). Default value: 500.\n"},"includeAncestorHeadings":{"type":"boolean","description":"Whether to include appending different levels of headings to chunks from the middle of the document to prevent context loss.\nDefault value: False.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfig":{"properties":{"digitalParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfigDigitalParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfigDigitalParsingConfig","description":"Configurations applied to digital parser.\n"},"layoutParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfigLayoutParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfigLayoutParsingConfig","description":"Configurations applied to layout parser.\nStructure is documented below.\n"},"ocrParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfigOcrParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfigOcrParsingConfig","description":"Configurations applied to OCR parser. Currently it only applies to PDFs.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfigDigitalParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfigDigitalParsingConfig":{"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfigLayoutParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfigLayoutParsingConfig":{"properties":{"enableImageAnnotation":{"type":"boolean","description":"If true, the LLM based annotation is added to the image during parsing.\n"},"enableTableAnnotation":{"type":"boolean","description":"If true, the LLM based annotation is added to the table during parsing.\n"},"excludeHtmlClasses":{"type":"array","items":{"type":"string"},"description":"List of HTML classes to exclude from the parsed content.\n"},"excludeHtmlElements":{"type":"array","items":{"type":"string"},"description":"List of HTML elements to exclude from the parsed content.\n"},"excludeHtmlIds":{"type":"array","items":{"type":"string"},"description":"List of HTML ids to exclude from the parsed content.\n"},"structuredContentTypes":{"type":"array","items":{"type":"string"},"description":"Contains the required structure types to extract from the document. Supported values: `shareholder-structure`.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigDefaultParsingConfigOcrParsingConfig:DataStoreDocumentProcessingConfigDefaultParsingConfigOcrParsingConfig":{"properties":{"useNativeText":{"type":"boolean","description":"If true, will use native text instead of OCR text on pages containing native text.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverride:DataStoreDocumentProcessingConfigParsingConfigOverride":{"properties":{"digitalParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverrideDigitalParsingConfig:DataStoreDocumentProcessingConfigParsingConfigOverrideDigitalParsingConfig","description":"Configurations applied to digital parser.\n"},"fileType":{"type":"string","description":"The identifier for this object. Format specified above.\n"},"layoutParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverrideLayoutParsingConfig:DataStoreDocumentProcessingConfigParsingConfigOverrideLayoutParsingConfig","description":"Configurations applied to layout parser.\nStructure is documented below.\n"},"ocrParsingConfig":{"$ref":"#/types/gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverrideOcrParsingConfig:DataStoreDocumentProcessingConfigParsingConfigOverrideOcrParsingConfig","description":"Configurations applied to OCR parser. Currently it only applies to PDFs.\nStructure is documented below.\n"}},"type":"object","required":["fileType"]},"gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverrideDigitalParsingConfig:DataStoreDocumentProcessingConfigParsingConfigOverrideDigitalParsingConfig":{"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverrideLayoutParsingConfig:DataStoreDocumentProcessingConfigParsingConfigOverrideLayoutParsingConfig":{"properties":{"enableImageAnnotation":{"type":"boolean","description":"If true, the LLM based annotation is added to the image during parsing.\n"},"enableTableAnnotation":{"type":"boolean","description":"If true, the LLM based annotation is added to the table during parsing.\n"},"excludeHtmlClasses":{"type":"array","items":{"type":"string"},"description":"List of HTML classes to exclude from the parsed content.\n"},"excludeHtmlElements":{"type":"array","items":{"type":"string"},"description":"List of HTML elements to exclude from the parsed content.\n"},"excludeHtmlIds":{"type":"array","items":{"type":"string"},"description":"List of HTML ids to exclude from the parsed content.\n"},"structuredContentTypes":{"type":"array","items":{"type":"string"},"description":"Contains the required structure types to extract from the document. Supported values: `shareholder-structure`.\n"}},"type":"object"},"gcp:discoveryengine/DataStoreDocumentProcessingConfigParsingConfigOverrideOcrParsingConfig:DataStoreDocumentProcessingConfigParsingConfigOverrideOcrParsingConfig":{"properties":{"useNativeText":{"type":"boolean","description":"If true, will use native text instead of OCR text on pages containing native text.\n"}},"type":"object"},"gcp:discoveryengine/LicenseConfigEndDate:LicenseConfigEndDate":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:discoveryengine/LicenseConfigStartDate:LicenseConfigStartDate":{"properties":{"day":{"type":"integer","description":"Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.\n"},"month":{"type":"integer","description":"Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.\n"},"year":{"type":"integer","description":"Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.\n"}},"type":"object"},"gcp:discoveryengine/RecommendationEngineCommonConfig:RecommendationEngineCommonConfig":{"properties":{"companyName":{"type":"string","description":"The name of the company, business or entity that is associated with the engine. Setting this may help improve LLM related features.cd\n"}},"type":"object"},"gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfig:RecommendationEngineMediaRecommendationEngineConfig":{"properties":{"engineFeaturesConfig":{"$ref":"#/types/gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig:RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig","description":"More feature configs of the selected engine type.\nStructure is documented below.\n"},"optimizationObjective":{"type":"string","description":"The optimization objective. e.g., \u003cspan pulumi-lang-nodejs=\"`cvr`\" pulumi-lang-dotnet=\"`Cvr`\" pulumi-lang-go=\"`cvr`\" pulumi-lang-python=\"`cvr`\" pulumi-lang-yaml=\"`cvr`\" pulumi-lang-java=\"`cvr`\"\u003e`cvr`\u003c/span\u003e.\nThis field together with MediaRecommendationEngineConfig.type describes\nengine metadata to use to control engine training and serving.\nCurrently supported values: \u003cspan pulumi-lang-nodejs=\"`ctr`\" pulumi-lang-dotnet=\"`Ctr`\" pulumi-lang-go=\"`ctr`\" pulumi-lang-python=\"`ctr`\" pulumi-lang-yaml=\"`ctr`\" pulumi-lang-java=\"`ctr`\"\u003e`ctr`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cvr`\" pulumi-lang-dotnet=\"`Cvr`\" pulumi-lang-go=\"`cvr`\" pulumi-lang-python=\"`cvr`\" pulumi-lang-yaml=\"`cvr`\" pulumi-lang-java=\"`cvr`\"\u003e`cvr`\u003c/span\u003e.\nIf not specified, we choose default based on engine type. Default depends on type of recommendation:\n`recommended-for-you` =\u003e \u003cspan pulumi-lang-nodejs=\"`ctr`\" pulumi-lang-dotnet=\"`Ctr`\" pulumi-lang-go=\"`ctr`\" pulumi-lang-python=\"`ctr`\" pulumi-lang-yaml=\"`ctr`\" pulumi-lang-java=\"`ctr`\"\u003e`ctr`\u003c/span\u003e\n`others-you-may-like` =\u003e \u003cspan pulumi-lang-nodejs=\"`ctr`\" pulumi-lang-dotnet=\"`Ctr`\" pulumi-lang-go=\"`ctr`\" pulumi-lang-python=\"`ctr`\" pulumi-lang-yaml=\"`ctr`\" pulumi-lang-java=\"`ctr`\"\u003e`ctr`\u003c/span\u003e\n"},"optimizationObjectiveConfig":{"$ref":"#/types/gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig:RecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig","description":"Name and value of the custom threshold for cvr optimization_objective.\nFor\u003cspan pulumi-lang-nodejs=\" targetField \" pulumi-lang-dotnet=\" TargetField \" pulumi-lang-go=\" targetField \" pulumi-lang-python=\" target_field \" pulumi-lang-yaml=\" targetField \" pulumi-lang-java=\" targetField \"\u003e target_field \u003c/span\u003e`watch-time`,\u003cspan pulumi-lang-nodejs=\" targetFieldValue \" pulumi-lang-dotnet=\" TargetFieldValue \" pulumi-lang-go=\" targetFieldValue \" pulumi-lang-python=\" target_field_value \" pulumi-lang-yaml=\" targetFieldValue \" pulumi-lang-java=\" targetFieldValue \"\u003e target_field_value \u003c/span\u003emust be an integer\nvalue indicating the media progress time in seconds between (0, 86400]\n(excludes 0, includes 86400) (e.g., 90).\nFor\u003cspan pulumi-lang-nodejs=\" targetField \" pulumi-lang-dotnet=\" TargetField \" pulumi-lang-go=\" targetField \" pulumi-lang-python=\" target_field \" pulumi-lang-yaml=\" targetField \" pulumi-lang-java=\" targetField \"\u003e target_field \u003c/span\u003e`watch-percentage`, the\u003cspan pulumi-lang-nodejs=\" targetFieldValue \" pulumi-lang-dotnet=\" TargetFieldValue \" pulumi-lang-go=\" targetFieldValue \" pulumi-lang-python=\" target_field_value \" pulumi-lang-yaml=\" targetFieldValue \" pulumi-lang-java=\" targetFieldValue \"\u003e target_field_value \u003c/span\u003emust be a\nvalid float value between (0, 1.0] (excludes 0, includes 1.0) (e.g., 0.5).\nStructure is documented below.\n"},"trainingState":{"type":"string","description":"The training state that the engine is in (e.g. `TRAINING` or `PAUSED`).\nSince part of the cost of running the service\nis frequency of training - this can be used to determine when to train\nengine in order to control cost. If not specified: the default value for\n`CreateEngine` method is `TRAINING`. The default value for\n`UpdateEngine` method is to keep the state the same as before.\nPossible values are: `PAUSED`, `TRAINING`.\n"},"type":{"type":"string","description":"The type of engine. e.g., `recommended-for-you`.\nThis field together with MediaRecommendationEngineConfig.optimizationObjective describes\nengine metadata to use to control engine training and serving.\nCurrently supported values: `recommended-for-you`, `others-you-may-like`,\n`more-like-this`, `most-popular-items`.\n"}},"type":"object"},"gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig:RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfig":{"properties":{"mostPopularConfig":{"$ref":"#/types/gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig:RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig","description":"Feature configurations that are required for creating a Most Popular engine.\nStructure is documented below.\n"},"recommendedForYouConfig":{"$ref":"#/types/gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig:RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig","description":"Additional feature configurations for creating a `recommended-for-you` engine.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig:RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigMostPopularConfig":{"properties":{"timeWindowDays":{"type":"integer","description":"The time window of which the engine is queried at training and\nprediction time. Positive integers only. The value translates to the\nlast X days of events. Currently required for the `most-popular-items`\nengine.\n"}},"type":"object"},"gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig:RecommendationEngineMediaRecommendationEngineConfigEngineFeaturesConfigRecommendedForYouConfig":{"properties":{"contextEventType":{"type":"string","description":"The type of event with which the engine is queried at prediction time.\nIf set to \u003cspan pulumi-lang-nodejs=\"`generic`\" pulumi-lang-dotnet=\"`Generic`\" pulumi-lang-go=\"`generic`\" pulumi-lang-python=\"`generic`\" pulumi-lang-yaml=\"`generic`\" pulumi-lang-java=\"`generic`\"\u003e`generic`\u003c/span\u003e, only `view-item`, `media-play`,and\n`media-complete` will be used as `context-event` in engine training. If\nset to `view-home-page`, `view-home-page` will also be used as\n`context-events` in addition to `view-item`, `media-play`, and\n`media-complete`. Currently supported for the `recommended-for-you`\nengine. Currently supported values: `view-home-page`, \u003cspan pulumi-lang-nodejs=\"`generic`\" pulumi-lang-dotnet=\"`Generic`\" pulumi-lang-go=\"`generic`\" pulumi-lang-python=\"`generic`\" pulumi-lang-yaml=\"`generic`\" pulumi-lang-java=\"`generic`\"\u003e`generic`\u003c/span\u003e.\n"}},"type":"object"},"gcp:discoveryengine/RecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig:RecommendationEngineMediaRecommendationEngineConfigOptimizationObjectiveConfig":{"properties":{"targetField":{"type":"string","description":"The name of the field to target. Currently supported values: `watch-percentage`, `watch-time`.\n"},"targetFieldValueFloat":{"type":"number","description":"The threshold to be applied to the target (e.g., 0.5).\n"}},"type":"object"},"gcp:discoveryengine/SearchEngineCommonConfig:SearchEngineCommonConfig":{"properties":{"companyName":{"type":"string","description":"The name of the company, business or entity that is associated with the engine. Setting this may help improve LLM related features.cd\n","willReplaceOnChanges":true}},"type":"object"},"gcp:discoveryengine/SearchEngineKnowledgeGraphConfig:SearchEngineKnowledgeGraphConfig":{"properties":{"cloudKnowledgeGraphTypes":{"type":"array","items":{"type":"string"},"description":"Specify entity types to support.\n"},"enableCloudKnowledgeGraph":{"type":"boolean","description":"Whether to enable the Cloud Knowledge Graph for the engine.\n"},"enablePrivateKnowledgeGraph":{"type":"boolean","description":"Whether to enable the Private Knowledge Graph for the engine.\n"},"featureConfig":{"$ref":"#/types/gcp:discoveryengine/SearchEngineKnowledgeGraphConfigFeatureConfig:SearchEngineKnowledgeGraphConfigFeatureConfig","description":"Feature config for the Knowledge Graph.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enableCloudKnowledgeGraph","enablePrivateKnowledgeGraph"]}}},"gcp:discoveryengine/SearchEngineKnowledgeGraphConfigFeatureConfig:SearchEngineKnowledgeGraphConfigFeatureConfig":{"properties":{"disablePrivateKgAutoComplete":{"type":"boolean","description":"Whether to disable the private KG auto complete for the engine.\n"},"disablePrivateKgEnrichment":{"type":"boolean","description":"Whether to disable the private KG enrichment for the engine.\n"},"disablePrivateKgQueryUiChips":{"type":"boolean","description":"Whether to disable the private KG for query UI chips.\n"},"disablePrivateKgQueryUnderstanding":{"type":"boolean","description":"Whether to disable the private KG query understanding for the engine.\n"}},"type":"object"},"gcp:discoveryengine/SearchEngineSearchEngineConfig:SearchEngineSearchEngineConfig":{"properties":{"searchAddOns":{"type":"array","items":{"type":"string"},"description":"The add-on that this search engine enables.\nEach value may be one of: `SEARCH_ADD_ON_LLM`.\n"},"searchTier":{"type":"string","description":"The search feature tier of this engine. Defaults to SearchTier.SEARCH_TIER_STANDARD if not specified.\nDefault value is `SEARCH_TIER_STANDARD`.\nPossible values are: `SEARCH_TIER_STANDARD`, `SEARCH_TIER_ENTERPRISE`.\n"}},"type":"object"},"gcp:discoveryengine/TargetSiteFailureReason:TargetSiteFailureReason":{"properties":{"quotaFailure":{"$ref":"#/types/gcp:discoveryengine/TargetSiteFailureReasonQuotaFailure:TargetSiteFailureReasonQuotaFailure","description":"Site verification state indicating the ownership and validity.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/TargetSiteFailureReasonQuotaFailure:TargetSiteFailureReasonQuotaFailure":{"properties":{"totalRequiredQuota":{"type":"integer","description":"This number is an estimation on how much total quota this project\nneeds to successfully complete indexing.\n"}},"type":"object"},"gcp:discoveryengine/TargetSiteSiteVerificationInfo:TargetSiteSiteVerificationInfo":{"properties":{"siteVerificationState":{"type":"string","description":"Site verification state indicating the ownership and validity.\nPossible values are: `VERIFIED`, `UNVERIFIED`, `EXEMPTED`.\n"},"verifyTime":{"type":"string","description":"Latest site verification time.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigAccessSettings:WidgetConfigAccessSettings":{"properties":{"allowPublicAccess":{"type":"boolean","description":"Whether public unauthenticated access is allowed.\n"},"allowlistedDomains":{"type":"array","items":{"type":"string"},"description":"List of domains that are allowed to integrate the search widget.\n"},"enableWebApp":{"type":"boolean","description":"Whether web app access is enabled.\n"},"languageCode":{"type":"string","description":"Language code for user interface. Use language tags defined by\n[BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). If unset, the\ndefault language code is \"en-US\".\n"},"workforceIdentityPoolProvider":{"type":"string","description":"The workforce identity pool provider used to access the widget.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigHomepageSetting:WidgetConfigHomepageSetting":{"properties":{"shortcuts":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigHomepageSettingShortcut:WidgetConfigHomepageSettingShortcut"},"description":"The shortcuts to display on the homepage.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigHomepageSettingShortcut:WidgetConfigHomepageSettingShortcut":{"properties":{"destinationUri":{"type":"string","description":"Destination URL of shortcut.\n"},"icon":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigHomepageSettingShortcutIcon:WidgetConfigHomepageSettingShortcutIcon","description":"Icon URL of shortcut.\nStructure is documented below.\n"},"title":{"type":"string","description":"Title of the shortcut.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigHomepageSettingShortcutIcon:WidgetConfigHomepageSettingShortcutIcon":{"properties":{"url":{"type":"string","description":"Image URL.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigUiBranding:WidgetConfigUiBranding":{"properties":{"logo":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigUiBrandingLogo:WidgetConfigUiBrandingLogo","description":"Logo image.\nStructure is documented below.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigUiBrandingLogo:WidgetConfigUiBrandingLogo":{"properties":{"url":{"type":"string","description":"Image URL.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigUiSettings:WidgetConfigUiSettings":{"properties":{"dataStoreUiConfigs":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigUiSettingsDataStoreUiConfig:WidgetConfigUiSettingsDataStoreUiConfig"},"description":"Per data store configuration.\nStructure is documented below.\n"},"defaultSearchRequestOrderBy":{"type":"string","description":"The default ordering for search results if specified.\nUsed to set SearchRequest#orderBy on applicable requests.\n"},"disableUserEventsCollection":{"type":"boolean","description":"If set to true, the widget will not collect user events.\n"},"enableAutocomplete":{"type":"boolean","description":"Whether or not to enable autocomplete.\n"},"enableCreateAgentButton":{"type":"boolean","description":"If set to true, the widget will enable the create agent button.\n"},"enablePeopleSearch":{"type":"boolean","description":"If set to true, the widget will enable people search.\n"},"enableQualityFeedback":{"type":"boolean","description":"Turn on or off collecting the search result quality feedback from end users.\n"},"enableSafeSearch":{"type":"boolean","description":"Whether to enable safe search.\n"},"enableSearchAsYouType":{"type":"boolean","description":"Whether to enable search-as-you-type behavior for the search widget.\n"},"enableVisualContentSummary":{"type":"boolean","description":"If set to true, the widget will enable visual content summary on applicable\nsearch requests. Only used by healthcare search.\n"},"generativeAnswerConfig":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigUiSettingsGenerativeAnswerConfig:WidgetConfigUiSettingsGenerativeAnswerConfig","description":"Describes generative answer configuration.\nStructure is documented below.\n"},"interactionType":{"type":"string","description":"Describes widget (or web app) interaction type\nPossible values are: `SEARCH_ONLY`, `SEARCH_WITH_ANSWER`, `SEARCH_WITH_FOLLOW_UPS`.\n"},"resultDescriptionType":{"type":"string","description":"Controls whether result extract is display and how (snippet or extractive answer).\nDefault to no result if unspecified.\nPossible values are: `SNIPPET`, `EXTRACTIVE_ANSWER`.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigUiSettingsDataStoreUiConfig:WidgetConfigUiSettingsDataStoreUiConfig":{"properties":{"facetFields":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigUiSettingsDataStoreUiConfigFacetField:WidgetConfigUiSettingsDataStoreUiConfigFacetField"},"description":"Structure is documented below.\n"},"fieldsUiComponentsMaps":{"type":"array","items":{"$ref":"#/types/gcp:discoveryengine/WidgetConfigUiSettingsDataStoreUiConfigFieldsUiComponentsMap:WidgetConfigUiSettingsDataStoreUiConfigFieldsUiComponentsMap"},"description":"'The key is the UI component. Currently supported \u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`thumbnail`\" pulumi-lang-dotnet=\"`Thumbnail`\" pulumi-lang-go=\"`thumbnail`\" pulumi-lang-python=\"`thumbnail`\" pulumi-lang-yaml=\"`thumbnail`\" pulumi-lang-java=\"`thumbnail`\"\u003e`thumbnail`\u003c/span\u003e,\n\u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom1`\" pulumi-lang-dotnet=\"`Custom1`\" pulumi-lang-go=\"`custom1`\" pulumi-lang-python=\"`custom1`\" pulumi-lang-yaml=\"`custom1`\" pulumi-lang-java=\"`custom1`\"\u003e`custom1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom2`\" pulumi-lang-dotnet=\"`Custom2`\" pulumi-lang-go=\"`custom2`\" pulumi-lang-python=\"`custom2`\" pulumi-lang-yaml=\"`custom2`\" pulumi-lang-java=\"`custom2`\"\u003e`custom2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom3`\" pulumi-lang-dotnet=\"`Custom3`\" pulumi-lang-go=\"`custom3`\" pulumi-lang-python=\"`custom3`\" pulumi-lang-yaml=\"`custom3`\" pulumi-lang-java=\"`custom3`\"\u003e`custom3`\u003c/span\u003e. The value is the name of\nthe field along with its device visibility. The 3 custom fields are optional\nand can be added or removed.\n\u003cspan pulumi-lang-nodejs=\"`title`\" pulumi-lang-dotnet=\"`Title`\" pulumi-lang-go=\"`title`\" pulumi-lang-python=\"`title`\" pulumi-lang-yaml=\"`title`\" pulumi-lang-java=\"`title`\"\u003e`title`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`thumbnail`\" pulumi-lang-dotnet=\"`Thumbnail`\" pulumi-lang-go=\"`thumbnail`\" pulumi-lang-python=\"`thumbnail`\" pulumi-lang-yaml=\"`thumbnail`\" pulumi-lang-java=\"`thumbnail`\"\u003e`thumbnail`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e are required UI components that cannot be removed.\nStructure is documented below.\n"},"name":{"type":"string","description":"The name of the data store. It should be data store resource name. Format:\n`projects/{project}/locations/{location}/collections/{collectionId}/dataStores/{dataStoreId}`.\nFor APIs under `WidgetService`, such as [WidgetService.LookUpWidgetConfig][],\nthe project number and location part is erased in this field.\n"}},"type":"object"},"gcp:discoveryengine/WidgetConfigUiSettingsDataStoreUiConfigFacetField:WidgetConfigUiSettingsDataStoreUiConfigFacetField":{"properties":{"displayName":{"type":"string","description":"The field name that end users will see.\n"},"field":{"type":"string","description":"Registered field name. The format is `field.abc`.\n"}},"type":"object","required":["field"]},"gcp:discoveryengine/WidgetConfigUiSettingsDataStoreUiConfigFieldsUiComponentsMap:WidgetConfigUiSettingsDataStoreUiConfigFieldsUiComponentsMap":{"properties":{"deviceVisibilities":{"type":"array","items":{"type":"string"},"description":"Each value may be one of: `MOBILE`, `DESKTOP`.\n"},"displayTemplate":{"type":"string","description":"The template to customize how the field is displayed.\nAn example value would be a string that looks like: \"Price: {value}\".\n"},"field":{"type":"string","description":"Registered field name. The format is `field.abc`.\n"},"uiComponent":{"type":"string","description":"The identifier for this object. Format specified above.\n"}},"type":"object","required":["field","uiComponent"]},"gcp:discoveryengine/WidgetConfigUiSettingsGenerativeAnswerConfig:WidgetConfigUiSettingsGenerativeAnswerConfig":{"properties":{"disableRelatedQuestions":{"type":"boolean","description":"Whether generated answer contains suggested related questions.\n"},"ignoreAdversarialQuery":{"type":"boolean","description":"Specifies whether to filter out queries that are adversarial.\n"},"ignoreLowRelevantContent":{"type":"boolean","description":"Specifies whether to filter out queries that are not relevant to the content.\n"},"ignoreNonAnswerSeekingQuery":{"type":"boolean","description":"Specifies whether to filter out queries that are not answer-seeking.\nThe default value is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. No answer is returned if the search query\nis classified as a non-answer seeking query.\nIf this field is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, we skip generating answers for\nnon-answer seeking queries and return fallback messages instead.\n"},"imageSource":{"type":"string","description":"Source of image returned in the answer.\nPossible values are: `ALL_AVAILABLE_SOURCES`, `CORPUS_IMAGE_ONLY`, `FIGURE_GENERATION_ONLY`.\n"},"languageCode":{"type":"string","description":"Language code for Summary. Use language tags defined by\n[BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt). Note: This\nis an experimental feature.\n"},"maxRephraseSteps":{"type":"integer","description":"Max rephrase steps. The max number is 5 steps. If not set or\nset to \u003c 1, it will be set to 1 by default.\n"},"modelPromptPreamble":{"type":"string","description":"Text at the beginning of the prompt that instructs the model that generates the answer.\n"},"modelVersion":{"type":"string","description":"The model version used to generate the answer.\n"},"resultCount":{"type":"integer","description":"The number of top results to generate the answer from. Up to 10.\n"}},"type":"object"},"gcp:dns/DnsManagedZoneIamBindingCondition:DnsManagedZoneIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dns/DnsManagedZoneIamMemberCondition:DnsManagedZoneIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:dns/ManagedZoneCloudLoggingConfig:ManagedZoneCloudLoggingConfig":{"properties":{"enableLogging":{"type":"boolean","description":"If set, enable query logging for this ManagedZone. False by default, making logging opt-in.\n"}},"type":"object","required":["enableLogging"]},"gcp:dns/ManagedZoneDnssecConfig:ManagedZoneDnssecConfig":{"properties":{"defaultKeySpecs":{"type":"array","items":{"$ref":"#/types/gcp:dns/ManagedZoneDnssecConfigDefaultKeySpec:ManagedZoneDnssecConfigDefaultKeySpec"},"description":"Specifies parameters that will be used for generating initial DnsKeys\nfor this ManagedZone. If you provide a spec for keySigning or zoneSigning,\nyou must also provide one for the other.\u003cspan pulumi-lang-nodejs=\"\ndefaultKeySpecs \" pulumi-lang-dotnet=\"\nDefaultKeySpecs \" pulumi-lang-go=\"\ndefaultKeySpecs \" pulumi-lang-python=\"\ndefault_key_specs \" pulumi-lang-yaml=\"\ndefaultKeySpecs \" pulumi-lang-java=\"\ndefaultKeySpecs \"\u003e\ndefault_key_specs \u003c/span\u003ecan only be updated when the state is \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\nStructure is documented below.\n"},"kind":{"type":"string","description":"Identifies what kind of resource this is\n"},"nonExistence":{"type":"string","description":"Specifies the mechanism used to provide authenticated denial-of-existence responses.\u003cspan pulumi-lang-nodejs=\"\nnonExistence \" pulumi-lang-dotnet=\"\nNonExistence \" pulumi-lang-go=\"\nnonExistence \" pulumi-lang-python=\"\nnon_existence \" pulumi-lang-yaml=\"\nnonExistence \" pulumi-lang-java=\"\nnonExistence \"\u003e\nnon_existence \u003c/span\u003ecan only be updated when the state is \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e.\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`nsec`\" pulumi-lang-dotnet=\"`Nsec`\" pulumi-lang-go=\"`nsec`\" pulumi-lang-python=\"`nsec`\" pulumi-lang-yaml=\"`nsec`\" pulumi-lang-java=\"`nsec`\"\u003e`nsec`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`nsec3`\" pulumi-lang-dotnet=\"`Nsec3`\" pulumi-lang-go=\"`nsec3`\" pulumi-lang-python=\"`nsec3`\" pulumi-lang-yaml=\"`nsec3`\" pulumi-lang-java=\"`nsec3`\"\u003e`nsec3`\u003c/span\u003e.\n"},"state":{"type":"string","description":"Specifies whether DNSSEC is enabled, and what mode it is in\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`off`\" pulumi-lang-dotnet=\"`Off`\" pulumi-lang-go=\"`off`\" pulumi-lang-python=\"`off`\" pulumi-lang-yaml=\"`off`\" pulumi-lang-java=\"`off`\"\u003e`off`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`on`\" pulumi-lang-dotnet=\"`On`\" pulumi-lang-go=\"`on`\" pulumi-lang-python=\"`on`\" pulumi-lang-yaml=\"`on`\" pulumi-lang-java=\"`on`\"\u003e`on`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`transfer`\" pulumi-lang-dotnet=\"`Transfer`\" pulumi-lang-go=\"`transfer`\" pulumi-lang-python=\"`transfer`\" pulumi-lang-yaml=\"`transfer`\" pulumi-lang-java=\"`transfer`\"\u003e`transfer`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["defaultKeySpecs","nonExistence"]}}},"gcp:dns/ManagedZoneDnssecConfigDefaultKeySpec:ManagedZoneDnssecConfigDefaultKeySpec":{"properties":{"algorithm":{"type":"string","description":"String mnemonic specifying the DNSSEC algorithm of this key\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`ecdsap256sha256`\" pulumi-lang-dotnet=\"`Ecdsap256sha256`\" pulumi-lang-go=\"`ecdsap256sha256`\" pulumi-lang-python=\"`ecdsap256sha256`\" pulumi-lang-yaml=\"`ecdsap256sha256`\" pulumi-lang-java=\"`ecdsap256sha256`\"\u003e`ecdsap256sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsap384sha384`\" pulumi-lang-dotnet=\"`Ecdsap384sha384`\" pulumi-lang-go=\"`ecdsap384sha384`\" pulumi-lang-python=\"`ecdsap384sha384`\" pulumi-lang-yaml=\"`ecdsap384sha384`\" pulumi-lang-java=\"`ecdsap384sha384`\"\u003e`ecdsap384sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha1`\" pulumi-lang-dotnet=\"`Rsasha1`\" pulumi-lang-go=\"`rsasha1`\" pulumi-lang-python=\"`rsasha1`\" pulumi-lang-yaml=\"`rsasha1`\" pulumi-lang-java=\"`rsasha1`\"\u003e`rsasha1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha256`\" pulumi-lang-dotnet=\"`Rsasha256`\" pulumi-lang-go=\"`rsasha256`\" pulumi-lang-python=\"`rsasha256`\" pulumi-lang-yaml=\"`rsasha256`\" pulumi-lang-java=\"`rsasha256`\"\u003e`rsasha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha512`\" pulumi-lang-dotnet=\"`Rsasha512`\" pulumi-lang-go=\"`rsasha512`\" pulumi-lang-python=\"`rsasha512`\" pulumi-lang-yaml=\"`rsasha512`\" pulumi-lang-java=\"`rsasha512`\"\u003e`rsasha512`\u003c/span\u003e.\n"},"keyLength":{"type":"integer","description":"Length of the keys in bits\n"},"keyType":{"type":"string","description":"Specifies whether this is a key signing key (KSK) or a zone\nsigning key (ZSK). Key signing keys have the Secure Entry\nPoint flag set and, when active, will only be used to sign\nresource record sets of type DNSKEY. Zone signing keys do\nnot have the Secure Entry Point flag set and will be used\nto sign all other types of resource record sets.\nPossible values are: `keySigning`, `zoneSigning`.\n"},"kind":{"type":"string","description":"Identifies what kind of resource this is\n"}},"type":"object"},"gcp:dns/ManagedZoneForwardingConfig:ManagedZoneForwardingConfig":{"properties":{"targetNameServers":{"type":"array","items":{"$ref":"#/types/gcp:dns/ManagedZoneForwardingConfigTargetNameServer:ManagedZoneForwardingConfigTargetNameServer"},"description":"List of target name servers to forward to. Cloud DNS will\nselect the best available name server if more than\none target is given.\nStructure is documented below.\n"}},"type":"object","required":["targetNameServers"]},"gcp:dns/ManagedZoneForwardingConfigTargetNameServer:ManagedZoneForwardingConfigTargetNameServer":{"properties":{"domainName":{"type":"string","description":"Fully qualified domain name for the forwarding target.\n"},"forwardingPath":{"type":"string","description":"Forwarding path for this TargetNameServer. If unset or \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e\nCloud DNS will make forwarding decision based on address ranges,\ni.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go\nto the Internet. When set to \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, Cloud DNS will always\nsend queries through VPC for this target.\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"},"ipv4Address":{"type":"string","description":"IPv4 address of a target name server.\nDoes not accept both fields (ipv4 \u0026 ipv6) being populated.\n"},"ipv6Address":{"type":"string","description":"IPv6 address of a target name server.\nDoes not accept both fields (ipv4 \u0026 ipv6) being populated.\n"}},"type":"object"},"gcp:dns/ManagedZonePeeringConfig:ManagedZonePeeringConfig":{"properties":{"targetNetwork":{"$ref":"#/types/gcp:dns/ManagedZonePeeringConfigTargetNetwork:ManagedZonePeeringConfigTargetNetwork","description":"The network with which to peer.\nStructure is documented below.\n"}},"type":"object","required":["targetNetwork"]},"gcp:dns/ManagedZonePeeringConfigTargetNetwork:ManagedZonePeeringConfigTargetNetwork":{"properties":{"networkUrl":{"type":"string","description":"The id or fully qualified URL of the VPC network to forward queries to.\nThis should be formatted like `projects/{project}/global/networks/{network}` or\n`https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`\n"}},"type":"object","required":["networkUrl"]},"gcp:dns/ManagedZonePrivateVisibilityConfig:ManagedZonePrivateVisibilityConfig":{"properties":{"gkeClusters":{"type":"array","items":{"$ref":"#/types/gcp:dns/ManagedZonePrivateVisibilityConfigGkeCluster:ManagedZonePrivateVisibilityConfigGkeCluster"},"description":"The list of Google Kubernetes Engine clusters that can see this zone.\nStructure is documented below.\n"},"networks":{"type":"array","items":{"$ref":"#/types/gcp:dns/ManagedZonePrivateVisibilityConfigNetwork:ManagedZonePrivateVisibilityConfigNetwork"},"description":"The list of VPC networks that can see this zone. Until the provider updates to use the Terraform 0.12 SDK in a future release, you\nmay experience issues with this resource while updating. If you've defined a \u003cspan pulumi-lang-nodejs=\"`networks`\" pulumi-lang-dotnet=\"`Networks`\" pulumi-lang-go=\"`networks`\" pulumi-lang-python=\"`networks`\" pulumi-lang-yaml=\"`networks`\" pulumi-lang-java=\"`networks`\"\u003e`networks`\u003c/span\u003e block and\nadd another \u003cspan pulumi-lang-nodejs=\"`networks`\" pulumi-lang-dotnet=\"`Networks`\" pulumi-lang-go=\"`networks`\" pulumi-lang-python=\"`networks`\" pulumi-lang-yaml=\"`networks`\" pulumi-lang-java=\"`networks`\"\u003e`networks`\u003c/span\u003e block while keeping the old block, Terraform will see an incorrect diff\nand apply an incorrect update to the resource. If you encounter this issue, remove all \u003cspan pulumi-lang-nodejs=\"`networks`\" pulumi-lang-dotnet=\"`Networks`\" pulumi-lang-go=\"`networks`\" pulumi-lang-python=\"`networks`\" pulumi-lang-yaml=\"`networks`\" pulumi-lang-java=\"`networks`\"\u003e`networks`\u003c/span\u003e\nblocks in an update and then apply another update adding all of them back simultaneously.\nStructure is documented below.\n"}},"type":"object"},"gcp:dns/ManagedZonePrivateVisibilityConfigGkeCluster:ManagedZonePrivateVisibilityConfigGkeCluster":{"properties":{"gkeClusterName":{"type":"string","description":"The resource name of the cluster to bind this ManagedZone to.\nThis should be specified in the format like\n`projects/*/locations/*/clusters/*`\n"}},"type":"object","required":["gkeClusterName"]},"gcp:dns/ManagedZonePrivateVisibilityConfigNetwork:ManagedZonePrivateVisibilityConfigNetwork":{"properties":{"networkUrl":{"type":"string","description":"The id or fully qualified URL of the VPC network to bind to.\nThis should be formatted like `projects/{project}/global/networks/{network}` or\n`https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`\n"}},"type":"object","required":["networkUrl"]},"gcp:dns/ManagedZoneServiceDirectoryConfig:ManagedZoneServiceDirectoryConfig":{"properties":{"namespace":{"$ref":"#/types/gcp:dns/ManagedZoneServiceDirectoryConfigNamespace:ManagedZoneServiceDirectoryConfigNamespace","description":"The namespace associated with the zone.\nStructure is documented below.\n"}},"type":"object","required":["namespace"]},"gcp:dns/ManagedZoneServiceDirectoryConfigNamespace:ManagedZoneServiceDirectoryConfigNamespace":{"properties":{"namespaceUrl":{"type":"string","description":"The fully qualified or partial URL of the service directory namespace that should be\nassociated with the zone. This should be formatted like\n`https://servicedirectory.googleapis.com/v1/projects/{project}/locations/{location}/namespaces/{namespace_id}`\nor simply `projects/{project}/locations/{location}/namespaces/{namespace_id}`\nIgnored for \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e visibility zones.\n"}},"type":"object","required":["namespaceUrl"]},"gcp:dns/PolicyAlternativeNameServerConfig:PolicyAlternativeNameServerConfig":{"properties":{"targetNameServers":{"type":"array","items":{"$ref":"#/types/gcp:dns/PolicyAlternativeNameServerConfigTargetNameServer:PolicyAlternativeNameServerConfigTargetNameServer"},"description":"Sets an alternative name server for the associated networks. When specified,\nall DNS queries are forwarded to a name server that you choose. Names such as .internal\nare not available when an alternative name server is specified.\nStructure is documented below.\n"}},"type":"object","required":["targetNameServers"]},"gcp:dns/PolicyAlternativeNameServerConfigTargetNameServer:PolicyAlternativeNameServerConfigTargetNameServer":{"properties":{"forwardingPath":{"type":"string","description":"Forwarding path for this TargetNameServer. If unset or \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e Cloud DNS will make forwarding\ndecision based on address ranges, i.e. RFC1918 addresses go to the VPC, Non-RFC1918 addresses go\nto the Internet. When set to \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e, Cloud DNS will always send queries through VPC for this target\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedDns64Config\"\" pulumi-lang-dotnet=\"\"NestedDns64Config\"\" pulumi-lang-go=\"\"nestedDns64Config\"\" pulumi-lang-python=\"\"nested_dns64_config\"\" pulumi-lang-yaml=\"\"nestedDns64Config\"\" pulumi-lang-java=\"\"nestedDns64Config\"\"\u003e\"nested_dns64_config\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`dns64Config`\" pulumi-lang-dotnet=\"`Dns64Config`\" pulumi-lang-go=\"`dns64Config`\" pulumi-lang-python=\"`dns64_config`\" pulumi-lang-yaml=\"`dns64Config`\" pulumi-lang-java=\"`dns64Config`\"\u003e`dns64_config`\u003c/span\u003e block supports:\n"},"ipv4Address":{"type":"string","description":"IPv4 address to forward to.\n"}},"type":"object","required":["ipv4Address"]},"gcp:dns/PolicyDns64Config:PolicyDns64Config":{"properties":{"scope":{"$ref":"#/types/gcp:dns/PolicyDns64ConfigScope:PolicyDns64ConfigScope","description":"The scope to which DNS64 config will be applied to.\n","willReplaceOnChanges":true}},"type":"object","required":["scope"]},"gcp:dns/PolicyDns64ConfigScope:PolicyDns64ConfigScope":{"properties":{"allQueries":{"type":"boolean","description":"Controls whether DNS64 is enabled globally at the network level.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:dns/PolicyNetwork:PolicyNetwork":{"properties":{"networkUrl":{"type":"string","description":"The id or fully qualified URL of the VPC network to forward queries to.\nThis should be formatted like `projects/{project}/global/networks/{network}` or\n`https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`\n"}},"type":"object","required":["networkUrl"]},"gcp:dns/RecordSetRoutingPolicy:RecordSetRoutingPolicy":{"properties":{"enableGeoFencing":{"type":"boolean","description":"Specifies whether to enable fencing for geo queries.\n"},"geos":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyGeo:RecordSetRoutingPolicyGeo"},"description":"The configuration for Geolocation based routing policy.\nStructure is documented below.\n"},"healthCheck":{"type":"string","description":"Specifies the health check (used with external endpoints).\n","willReplaceOnChanges":true},"primaryBackup":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyPrimaryBackup:RecordSetRoutingPolicyPrimaryBackup","description":"The configuration for a failover policy with global to regional failover. Queries are responded to with the global primary targets, but if none of the primary targets are healthy, then we fallback to a regional failover policy.\nStructure is documented below.\n"},"wrrs":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyWrr:RecordSetRoutingPolicyWrr"},"description":"The configuration for Weighted Round Robin based routing policy.\nStructure is documented below.\n"}},"type":"object"},"gcp:dns/RecordSetRoutingPolicyGeo:RecordSetRoutingPolicyGeo":{"properties":{"healthCheckedTargets":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyGeoHealthCheckedTargets:RecordSetRoutingPolicyGeoHealthCheckedTargets","description":"For A and AAAA types only. The list of targets to be health checked. These can be specified along with \u003cspan pulumi-lang-nodejs=\"`rrdatas`\" pulumi-lang-dotnet=\"`Rrdatas`\" pulumi-lang-go=\"`rrdatas`\" pulumi-lang-python=\"`rrdatas`\" pulumi-lang-yaml=\"`rrdatas`\" pulumi-lang-java=\"`rrdatas`\"\u003e`rrdatas`\u003c/span\u003e within this item.\nStructure is documented below.\n"},"location":{"type":"string","description":"The location name defined in Google Cloud.\n"},"rrdatas":{"type":"array","items":{"type":"string"},"description":"Same as \u003cspan pulumi-lang-nodejs=\"`rrdatas`\" pulumi-lang-dotnet=\"`Rrdatas`\" pulumi-lang-go=\"`rrdatas`\" pulumi-lang-python=\"`rrdatas`\" pulumi-lang-yaml=\"`rrdatas`\" pulumi-lang-java=\"`rrdatas`\"\u003e`rrdatas`\u003c/span\u003e above.\n"}},"type":"object","required":["location"]},"gcp:dns/RecordSetRoutingPolicyGeoHealthCheckedTargets:RecordSetRoutingPolicyGeoHealthCheckedTargets":{"properties":{"externalEndpoints":{"type":"array","items":{"type":"string"},"description":"The list of external endpoint addresses to health check.\n"},"internalLoadBalancers":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyGeoHealthCheckedTargetsInternalLoadBalancer:RecordSetRoutingPolicyGeoHealthCheckedTargetsInternalLoadBalancer"},"description":"The list of internal load balancers to health check.\nStructure is documented below.\n"}},"type":"object"},"gcp:dns/RecordSetRoutingPolicyGeoHealthCheckedTargetsInternalLoadBalancer:RecordSetRoutingPolicyGeoHealthCheckedTargetsInternalLoadBalancer":{"properties":{"ipAddress":{"type":"string","description":"The frontend IP address of the load balancer.\n"},"ipProtocol":{"type":"string","description":"The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"]\n"},"loadBalancerType":{"type":"string","description":"The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"]\n"},"networkUrl":{"type":"string","description":"The fully qualified url of the network in which the load balancer belongs. This should be formatted like `projects/{project}/global/networks/{network}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.\n"},"port":{"type":"string","description":"The configured port of the load balancer.\n"},"project":{"type":"string","description":"The ID of the project in which the load balancer belongs.\n"},"region":{"type":"string","description":"The region of the load balancer. Only needed for regional load balancers.\n"}},"type":"object","required":["ipAddress","ipProtocol","networkUrl","port","project"]},"gcp:dns/RecordSetRoutingPolicyPrimaryBackup:RecordSetRoutingPolicyPrimaryBackup":{"properties":{"backupGeos":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyPrimaryBackupBackupGeo:RecordSetRoutingPolicyPrimaryBackupBackupGeo"},"description":"The backup geo targets, which provide a regional failover policy for the otherwise global primary targets.\nStructure is document above.\n"},"enableGeoFencingForBackups":{"type":"boolean","description":"Specifies whether to enable fencing for backup geo queries.\n"},"primary":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyPrimaryBackupPrimary:RecordSetRoutingPolicyPrimaryBackupPrimary","description":"The list of global primary targets to be health checked.\nStructure is documented below.\n"},"trickleRatio":{"type":"number","description":"Specifies the percentage of traffic to send to the backup targets even when the primary targets are healthy.\n"}},"type":"object","required":["backupGeos","primary"]},"gcp:dns/RecordSetRoutingPolicyPrimaryBackupBackupGeo:RecordSetRoutingPolicyPrimaryBackupBackupGeo":{"properties":{"healthCheckedTargets":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargets:RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargets","description":"For A and AAAA types only. The list of targets to be health checked. These can be specified along with \u003cspan pulumi-lang-nodejs=\"`rrdatas`\" pulumi-lang-dotnet=\"`Rrdatas`\" pulumi-lang-go=\"`rrdatas`\" pulumi-lang-python=\"`rrdatas`\" pulumi-lang-yaml=\"`rrdatas`\" pulumi-lang-java=\"`rrdatas`\"\u003e`rrdatas`\u003c/span\u003e within this item.\n"},"location":{"type":"string","description":"The location name defined in Google Cloud.\n"},"rrdatas":{"type":"array","items":{"type":"string"},"description":"The string data for the records in this record set\nwhose meaning depends on the DNS type. For TXT record, if the string data contains spaces, add surrounding `\\\"` if you don't want your string to get split on spaces. To specify a single record value longer than 255 characters such as a TXT record for DKIM, add `\\\" \\\"` inside the Terraform configuration string (e.g. `\"first255characters\\\" \\\"morecharacters\"`).\n"}},"type":"object","required":["location"]},"gcp:dns/RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargets:RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargets":{"properties":{"externalEndpoints":{"type":"array","items":{"type":"string"},"description":"The list of external endpoint addresses to health check.\n"},"internalLoadBalancers":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargetsInternalLoadBalancer:RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargetsInternalLoadBalancer"},"description":"The list of internal load balancers to health check.\nStructure is documented below.\n"}},"type":"object"},"gcp:dns/RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargetsInternalLoadBalancer:RecordSetRoutingPolicyPrimaryBackupBackupGeoHealthCheckedTargetsInternalLoadBalancer":{"properties":{"ipAddress":{"type":"string","description":"The frontend IP address of the load balancer.\n"},"ipProtocol":{"type":"string","description":"The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"]\n"},"loadBalancerType":{"type":"string","description":"The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"]\n"},"networkUrl":{"type":"string","description":"The fully qualified url of the network in which the load balancer belongs. This should be formatted like `projects/{project}/global/networks/{network}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.\n"},"port":{"type":"string","description":"The configured port of the load balancer.\n"},"project":{"type":"string","description":"The ID of the project in which the load balancer belongs.\n"},"region":{"type":"string","description":"The region of the load balancer. Only needed for regional load balancers.\n"}},"type":"object","required":["ipAddress","ipProtocol","networkUrl","port","project"]},"gcp:dns/RecordSetRoutingPolicyPrimaryBackupPrimary:RecordSetRoutingPolicyPrimaryBackupPrimary":{"properties":{"externalEndpoints":{"type":"array","items":{"type":"string"},"description":"The Internet IP addresses to be health checked.\n"},"internalLoadBalancers":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyPrimaryBackupPrimaryInternalLoadBalancer:RecordSetRoutingPolicyPrimaryBackupPrimaryInternalLoadBalancer"},"description":"The list of internal load balancers to health check.\n"}},"type":"object"},"gcp:dns/RecordSetRoutingPolicyPrimaryBackupPrimaryInternalLoadBalancer:RecordSetRoutingPolicyPrimaryBackupPrimaryInternalLoadBalancer":{"properties":{"ipAddress":{"type":"string","description":"The frontend IP address of the load balancer.\n"},"ipProtocol":{"type":"string","description":"The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"]\n"},"loadBalancerType":{"type":"string","description":"The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"]\n"},"networkUrl":{"type":"string","description":"The fully qualified url of the network in which the load balancer belongs. This should be formatted like `projects/{project}/global/networks/{network}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.\n"},"port":{"type":"string","description":"The configured port of the load balancer.\n"},"project":{"type":"string","description":"The ID of the project in which the load balancer belongs.\n"},"region":{"type":"string","description":"The region of the load balancer. Only needed for regional load balancers.\n"}},"type":"object","required":["ipAddress","ipProtocol","networkUrl","port","project"]},"gcp:dns/RecordSetRoutingPolicyWrr:RecordSetRoutingPolicyWrr":{"properties":{"healthCheckedTargets":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyWrrHealthCheckedTargets:RecordSetRoutingPolicyWrrHealthCheckedTargets","description":"The list of targets to be health checked. Note that if DNSSEC is enabled for this zone, only one of \u003cspan pulumi-lang-nodejs=\"`rrdatas`\" pulumi-lang-dotnet=\"`Rrdatas`\" pulumi-lang-go=\"`rrdatas`\" pulumi-lang-python=\"`rrdatas`\" pulumi-lang-yaml=\"`rrdatas`\" pulumi-lang-java=\"`rrdatas`\"\u003e`rrdatas`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`healthCheckedTargets`\" pulumi-lang-dotnet=\"`HealthCheckedTargets`\" pulumi-lang-go=\"`healthCheckedTargets`\" pulumi-lang-python=\"`health_checked_targets`\" pulumi-lang-yaml=\"`healthCheckedTargets`\" pulumi-lang-java=\"`healthCheckedTargets`\"\u003e`health_checked_targets`\u003c/span\u003e can be set.\nStructure is documented below.\n"},"rrdatas":{"type":"array","items":{"type":"string"},"description":"Same as \u003cspan pulumi-lang-nodejs=\"`rrdatas`\" pulumi-lang-dotnet=\"`Rrdatas`\" pulumi-lang-go=\"`rrdatas`\" pulumi-lang-python=\"`rrdatas`\" pulumi-lang-yaml=\"`rrdatas`\" pulumi-lang-java=\"`rrdatas`\"\u003e`rrdatas`\u003c/span\u003e above.\n"},"weight":{"type":"number","description":"The ratio of traffic routed to the target.\n"}},"type":"object","required":["weight"]},"gcp:dns/RecordSetRoutingPolicyWrrHealthCheckedTargets:RecordSetRoutingPolicyWrrHealthCheckedTargets":{"properties":{"externalEndpoints":{"type":"array","items":{"type":"string"},"description":"The list of external endpoint addresses to health check.\n"},"internalLoadBalancers":{"type":"array","items":{"$ref":"#/types/gcp:dns/RecordSetRoutingPolicyWrrHealthCheckedTargetsInternalLoadBalancer:RecordSetRoutingPolicyWrrHealthCheckedTargetsInternalLoadBalancer"},"description":"The list of internal load balancers to health check.\nStructure is documented below.\n"}},"type":"object"},"gcp:dns/RecordSetRoutingPolicyWrrHealthCheckedTargetsInternalLoadBalancer:RecordSetRoutingPolicyWrrHealthCheckedTargetsInternalLoadBalancer":{"properties":{"ipAddress":{"type":"string","description":"The frontend IP address of the load balancer.\n"},"ipProtocol":{"type":"string","description":"The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"]\n"},"loadBalancerType":{"type":"string","description":"The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"]\n"},"networkUrl":{"type":"string","description":"The fully qualified url of the network in which the load balancer belongs. This should be formatted like `projects/{project}/global/networks/{network}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`.\n"},"port":{"type":"string","description":"The configured port of the load balancer.\n"},"project":{"type":"string","description":"The ID of the project in which the load balancer belongs.\n"},"region":{"type":"string","description":"The region of the load balancer. Only needed for regional load balancers.\n"}},"type":"object","required":["ipAddress","ipProtocol","networkUrl","port","project"]},"gcp:dns/ResponsePolicyGkeCluster:ResponsePolicyGkeCluster":{"properties":{"gkeClusterName":{"type":"string","description":"The resource name of the cluster to bind this ManagedZone to.\nThis should be specified in the format like\n`projects/*/locations/*/clusters/*`\n"}},"type":"object","required":["gkeClusterName"]},"gcp:dns/ResponsePolicyNetwork:ResponsePolicyNetwork":{"properties":{"networkUrl":{"type":"string","description":"The fully qualified URL of the VPC network to bind to.\nThis should be formatted like\n`https://www.googleapis.com/compute/v1/projects/{project}/global/networks/{network}`\n"}},"type":"object","required":["networkUrl"]},"gcp:dns/ResponsePolicyRuleLocalData:ResponsePolicyRuleLocalData":{"properties":{"localDatas":{"type":"array","items":{"$ref":"#/types/gcp:dns/ResponsePolicyRuleLocalDataLocalData:ResponsePolicyRuleLocalDataLocalData"},"description":"All resource record sets for this selector, one per resource record type. The name must match the dns_name.\nStructure is documented below.\n"}},"type":"object","required":["localDatas"]},"gcp:dns/ResponsePolicyRuleLocalDataLocalData:ResponsePolicyRuleLocalDataLocalData":{"properties":{"name":{"type":"string","description":"For example, www.example.com.\n"},"rrdatas":{"type":"array","items":{"type":"string"},"description":"As defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)\n"},"ttl":{"type":"integer","description":"Number of seconds that this ResourceRecordSet can be cached by\nresolvers.\n"},"type":{"type":"string","description":"One of valid DNS resource types.\nPossible values are: `A`, `AAAA`, `CAA`, `CNAME`, `DNSKEY`, `DS`, `HTTPS`, `IPSECVPNKEY`, `MX`, `NAPTR`, `NS`, `PTR`, `SOA`, `SPF`, `SRV`, `SSHFP`, `SVCB`, `TLSA`, `TXT`.\n"}},"type":"object","required":["name","type"]},"gcp:dns/getKeysKeySigningKey:getKeysKeySigningKey":{"properties":{"algorithm":{"type":"string","description":"String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time. Possible values are \u003cspan pulumi-lang-nodejs=\"`ecdsap256sha256`\" pulumi-lang-dotnet=\"`Ecdsap256sha256`\" pulumi-lang-go=\"`ecdsap256sha256`\" pulumi-lang-python=\"`ecdsap256sha256`\" pulumi-lang-yaml=\"`ecdsap256sha256`\" pulumi-lang-java=\"`ecdsap256sha256`\"\u003e`ecdsap256sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsap384sha384`\" pulumi-lang-dotnet=\"`Ecdsap384sha384`\" pulumi-lang-go=\"`ecdsap384sha384`\" pulumi-lang-python=\"`ecdsap384sha384`\" pulumi-lang-yaml=\"`ecdsap384sha384`\" pulumi-lang-java=\"`ecdsap384sha384`\"\u003e`ecdsap384sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha1`\" pulumi-lang-dotnet=\"`Rsasha1`\" pulumi-lang-go=\"`rsasha1`\" pulumi-lang-python=\"`rsasha1`\" pulumi-lang-yaml=\"`rsasha1`\" pulumi-lang-java=\"`rsasha1`\"\u003e`rsasha1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha256`\" pulumi-lang-dotnet=\"`Rsasha256`\" pulumi-lang-go=\"`rsasha256`\" pulumi-lang-python=\"`rsasha256`\" pulumi-lang-yaml=\"`rsasha256`\" pulumi-lang-java=\"`rsasha256`\"\u003e`rsasha256`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`rsasha512`\" pulumi-lang-dotnet=\"`Rsasha512`\" pulumi-lang-go=\"`rsasha512`\" pulumi-lang-python=\"`rsasha512`\" pulumi-lang-yaml=\"`rsasha512`\" pulumi-lang-java=\"`rsasha512`\"\u003e`rsasha512`\u003c/span\u003e.\n"},"creationTime":{"type":"string","description":"The time that this resource was created in the control plane. This is in RFC3339 text format.\n"},"description":{"type":"string","description":"A mutable string of at most 1024 characters associated with this resource for the user's convenience.\n"},"digests":{"type":"array","items":{"$ref":"#/types/gcp:dns/getKeysKeySigningKeyDigest:getKeysKeySigningKeyDigest"},"description":"A list of cryptographic hashes of the DNSKEY resource record associated with this DnsKey. These digests are needed to construct a DS record that points at this DNS key. Each contains:\n"},"dsRecord":{"type":"string","description":"The DS record based on the KSK record. This is used when [delegating](https://cloud.google.com/dns/docs/dnssec-advanced#subdelegation) DNSSEC-signed subdomains.\n"},"id":{"type":"string","description":"Unique identifier for the resource; defined by the server.\n"},"isActive":{"type":"boolean","description":"Active keys will be used to sign subsequent changes to the ManagedZone. Inactive keys will still be present as DNSKEY Resource Records for the use of resolvers validating existing signatures.\n"},"keyLength":{"type":"integer","description":"Length of the key in bits. Specified at creation time then immutable.\n"},"keyTag":{"type":"integer","description":"The key tag is a non-cryptographic hash of the a DNSKEY resource record associated with this DnsKey. The key tag can be used to identify a DNSKEY more quickly (but it is not a unique identifier). In particular, the key tag is used in a parent zone's DS record to point at the DNSKEY in this child ManagedZone. The key tag is a number in the range [0, 65535] and the algorithm to calculate it is specified in RFC4034 Appendix B.\n"},"publicKey":{"type":"string","description":"Base64 encoded public half of this key.\n"}},"type":"object","required":["algorithm","creationTime","description","digests","dsRecord","id","isActive","keyLength","keyTag","publicKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dns/getKeysKeySigningKeyDigest:getKeysKeySigningKeyDigest":{"properties":{"digest":{"type":"string","description":"The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.\n"},"type":{"type":"string","description":"Specifies the algorithm used to calculate this digest. Possible values are \u003cspan pulumi-lang-nodejs=\"`sha1`\" pulumi-lang-dotnet=\"`Sha1`\" pulumi-lang-go=\"`sha1`\" pulumi-lang-python=\"`sha1`\" pulumi-lang-yaml=\"`sha1`\" pulumi-lang-java=\"`sha1`\"\u003e`sha1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sha256`\" pulumi-lang-dotnet=\"`Sha256`\" pulumi-lang-go=\"`sha256`\" pulumi-lang-python=\"`sha256`\" pulumi-lang-yaml=\"`sha256`\" pulumi-lang-java=\"`sha256`\"\u003e`sha256`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sha384`\" pulumi-lang-dotnet=\"`Sha384`\" pulumi-lang-go=\"`sha384`\" pulumi-lang-python=\"`sha384`\" pulumi-lang-yaml=\"`sha384`\" pulumi-lang-java=\"`sha384`\"\u003e`sha384`\u003c/span\u003e\n"}},"type":"object"},"gcp:dns/getKeysZoneSigningKey:getKeysZoneSigningKey":{"properties":{"algorithm":{"type":"string","description":"String mnemonic specifying the DNSSEC algorithm of this key. Immutable after creation time. Possible values are \u003cspan pulumi-lang-nodejs=\"`ecdsap256sha256`\" pulumi-lang-dotnet=\"`Ecdsap256sha256`\" pulumi-lang-go=\"`ecdsap256sha256`\" pulumi-lang-python=\"`ecdsap256sha256`\" pulumi-lang-yaml=\"`ecdsap256sha256`\" pulumi-lang-java=\"`ecdsap256sha256`\"\u003e`ecdsap256sha256`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ecdsap384sha384`\" pulumi-lang-dotnet=\"`Ecdsap384sha384`\" pulumi-lang-go=\"`ecdsap384sha384`\" pulumi-lang-python=\"`ecdsap384sha384`\" pulumi-lang-yaml=\"`ecdsap384sha384`\" pulumi-lang-java=\"`ecdsap384sha384`\"\u003e`ecdsap384sha384`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha1`\" pulumi-lang-dotnet=\"`Rsasha1`\" pulumi-lang-go=\"`rsasha1`\" pulumi-lang-python=\"`rsasha1`\" pulumi-lang-yaml=\"`rsasha1`\" pulumi-lang-java=\"`rsasha1`\"\u003e`rsasha1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`rsasha256`\" pulumi-lang-dotnet=\"`Rsasha256`\" pulumi-lang-go=\"`rsasha256`\" pulumi-lang-python=\"`rsasha256`\" pulumi-lang-yaml=\"`rsasha256`\" pulumi-lang-java=\"`rsasha256`\"\u003e`rsasha256`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`rsasha512`\" pulumi-lang-dotnet=\"`Rsasha512`\" pulumi-lang-go=\"`rsasha512`\" pulumi-lang-python=\"`rsasha512`\" pulumi-lang-yaml=\"`rsasha512`\" pulumi-lang-java=\"`rsasha512`\"\u003e`rsasha512`\u003c/span\u003e.\n"},"creationTime":{"type":"string","description":"The time that this resource was created in the control plane. This is in RFC3339 text format.\n"},"description":{"type":"string","description":"A mutable string of at most 1024 characters associated with this resource for the user's convenience.\n"},"digests":{"type":"array","items":{"$ref":"#/types/gcp:dns/getKeysZoneSigningKeyDigest:getKeysZoneSigningKeyDigest"},"description":"A list of cryptographic hashes of the DNSKEY resource record associated with this DnsKey. These digests are needed to construct a DS record that points at this DNS key. Each contains:\n"},"id":{"type":"string","description":"Unique identifier for the resource; defined by the server.\n"},"isActive":{"type":"boolean","description":"Active keys will be used to sign subsequent changes to the ManagedZone. Inactive keys will still be present as DNSKEY Resource Records for the use of resolvers validating existing signatures.\n"},"keyLength":{"type":"integer","description":"Length of the key in bits. Specified at creation time then immutable.\n"},"keyTag":{"type":"integer","description":"The key tag is a non-cryptographic hash of the a DNSKEY resource record associated with this DnsKey. The key tag can be used to identify a DNSKEY more quickly (but it is not a unique identifier). In particular, the key tag is used in a parent zone's DS record to point at the DNSKEY in this child ManagedZone. The key tag is a number in the range [0, 65535] and the algorithm to calculate it is specified in RFC4034 Appendix B.\n"},"publicKey":{"type":"string","description":"Base64 encoded public half of this key.\n"}},"type":"object","required":["algorithm","creationTime","description","digests","id","isActive","keyLength","keyTag","publicKey"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:dns/getKeysZoneSigningKeyDigest:getKeysZoneSigningKeyDigest":{"properties":{"digest":{"type":"string","description":"The base-16 encoded bytes of this digest. Suitable for use in a DS resource record.\n"},"type":{"type":"string","description":"Specifies the algorithm used to calculate this digest. Possible values are \u003cspan pulumi-lang-nodejs=\"`sha1`\" pulumi-lang-dotnet=\"`Sha1`\" pulumi-lang-go=\"`sha1`\" pulumi-lang-python=\"`sha1`\" pulumi-lang-yaml=\"`sha1`\" pulumi-lang-java=\"`sha1`\"\u003e`sha1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sha256`\" pulumi-lang-dotnet=\"`Sha256`\" pulumi-lang-go=\"`sha256`\" pulumi-lang-python=\"`sha256`\" pulumi-lang-yaml=\"`sha256`\" pulumi-lang-java=\"`sha256`\"\u003e`sha256`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sha384`\" pulumi-lang-dotnet=\"`Sha384`\" pulumi-lang-go=\"`sha384`\" pulumi-lang-python=\"`sha384`\" pulumi-lang-yaml=\"`sha384`\" pulumi-lang-java=\"`sha384`\"\u003e`sha384`\u003c/span\u003e\n"}},"type":"object"},"gcp:dns/getManagedZonesManagedZone:getManagedZonesManagedZone":{"properties":{"description":{"type":"string"},"dnsName":{"type":"string"},"id":{"type":"string"},"managedZoneId":{"type":"string"},"name":{"type":"string"},"nameServers":{"type":"array","items":{"type":"string"}},"project":{"type":"string","description":"The ID of the project containing Google Cloud DNS zones. If this is not provided the default project will be used.\n"},"visibility":{"type":"string"}},"type":"object","required":["description","dnsName","id","managedZoneId","nameServers","visibility"],"language":{"nodejs":{"requiredInputs":[]}}},"gcp:edgecontainer/ClusterAuthorization:ClusterAuthorization":{"properties":{"adminUsers":{"$ref":"#/types/gcp:edgecontainer/ClusterAuthorizationAdminUsers:ClusterAuthorizationAdminUsers","description":"User that will be granted the cluster-admin role on the cluster, providing\nfull access to the cluster. Currently, this is a singular field, but will\nbe expanded to allow multiple admins in the future.\nStructure is documented below.\n"}},"type":"object","required":["adminUsers"]},"gcp:edgecontainer/ClusterAuthorizationAdminUsers:ClusterAuthorizationAdminUsers":{"properties":{"username":{"type":"string","description":"An active Google username.\n"}},"type":"object","required":["username"]},"gcp:edgecontainer/ClusterControlPlane:ClusterControlPlane":{"properties":{"local":{"$ref":"#/types/gcp:edgecontainer/ClusterControlPlaneLocal:ClusterControlPlaneLocal","description":"Local control plane configuration.\nStructure is documented below.\n","willReplaceOnChanges":true},"remote":{"$ref":"#/types/gcp:edgecontainer/ClusterControlPlaneRemote:ClusterControlPlaneRemote","description":"Remote control plane configuration.\nStructure is documented below.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["local","remote"]}}},"gcp:edgecontainer/ClusterControlPlaneEncryption:ClusterControlPlaneEncryption":{"properties":{"kmsKey":{"type":"string","description":"The Cloud KMS CryptoKey e.g.\nprojects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey}\nto use for protecting control plane disks. If not specified, a\nGoogle-managed key will be used instead.\n","willReplaceOnChanges":true},"kmsKeyActiveVersion":{"type":"string","description":"(Output)\nThe Cloud KMS CryptoKeyVersion currently in use for protecting control\nplane disks. Only applicable if\u003cspan pulumi-lang-nodejs=\" kmsKey \" pulumi-lang-dotnet=\" KmsKey \" pulumi-lang-go=\" kmsKey \" pulumi-lang-python=\" kms_key \" pulumi-lang-yaml=\" kmsKey \" pulumi-lang-java=\" kmsKey \"\u003e kms_key \u003c/span\u003eis set.\n"},"kmsKeyState":{"type":"string","description":"(Output)\nAvailability of the Cloud KMS CryptoKey. If not `KEY_AVAILABLE`, then\nnodes may go offline as they cannot access their local data. This can be\ncaused by a lack of permissions to use the key, or if the key is disabled\nor deleted.\n"},"kmsStatuses":{"type":"array","items":{"$ref":"#/types/gcp:edgecontainer/ClusterControlPlaneEncryptionKmsStatus:ClusterControlPlaneEncryptionKmsStatus"},"description":"(Output)\nError status returned by Cloud KMS when using this key. This field may be\npopulated only if \u003cspan pulumi-lang-nodejs=\"`kmsKeyState`\" pulumi-lang-dotnet=\"`KmsKeyState`\" pulumi-lang-go=\"`kmsKeyState`\" pulumi-lang-python=\"`kms_key_state`\" pulumi-lang-yaml=\"`kmsKeyState`\" pulumi-lang-java=\"`kmsKeyState`\"\u003e`kms_key_state`\u003c/span\u003e is not `KMS_KEY_STATE_KEY_AVAILABLE`.\nIf populated, this field contains the error status reported by Cloud KMS.\nStructure is documented below.\n\n\n\u003ca name=\u003cspan pulumi-lang-nodejs=\"\"nestedControlPlaneEncryptionKmsStatus\"\" pulumi-lang-dotnet=\"\"NestedControlPlaneEncryptionKmsStatus\"\" pulumi-lang-go=\"\"nestedControlPlaneEncryptionKmsStatus\"\" pulumi-lang-python=\"\"nested_control_plane_encryption_kms_status\"\" pulumi-lang-yaml=\"\"nestedControlPlaneEncryptionKmsStatus\"\" pulumi-lang-java=\"\"nestedControlPlaneEncryptionKmsStatus\"\"\u003e\"nested_control_plane_encryption_kms_status\"\u003c/span\u003e\u003e\u003c/a\u003eThe \u003cspan pulumi-lang-nodejs=\"`kmsStatus`\" pulumi-lang-dotnet=\"`KmsStatus`\" pulumi-lang-go=\"`kmsStatus`\" pulumi-lang-python=\"`kms_status`\" pulumi-lang-yaml=\"`kmsStatus`\" pulumi-lang-java=\"`kmsStatus`\"\u003e`kms_status`\u003c/span\u003e block contains:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKey","kmsKeyActiveVersion","kmsKeyState","kmsStatuses"]}}},"gcp:edgecontainer/ClusterControlPlaneEncryptionKmsStatus:ClusterControlPlaneEncryptionKmsStatus":{"properties":{"code":{"type":"integer","description":"The status code, which should be an enum value of google.rpc.Code.\n"},"message":{"type":"string","description":"A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["code","message"]}}},"gcp:edgecontainer/ClusterControlPlaneLocal:ClusterControlPlaneLocal":{"properties":{"machineFilter":{"type":"string","description":"Only machines matching this filter will be allowed to host control\nplane nodes. The filtering language accepts strings like \"name=\u003cname\u003e\",\nand is documented here: [AIP-160](https://google.aip.dev/160).\n"},"nodeCount":{"type":"integer","description":"The number of nodes to serve as replicas of the Control Plane.\nOnly 1 and 3 are supported.\n"},"nodeLocation":{"type":"string","description":"Name of the Google Distributed Cloud Edge zones where this node pool\nwill be created. For example: `us-central1-edge-customer-a`.\n","willReplaceOnChanges":true},"sharedDeploymentPolicy":{"type":"string","description":"Policy configuration about how user applications are deployed.\nPossible values are: `SHARED_DEPLOYMENT_POLICY_UNSPECIFIED`, `ALLOWED`, `DISALLOWED`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodeCount","nodeLocation","sharedDeploymentPolicy"]}}},"gcp:edgecontainer/ClusterControlPlaneRemote:ClusterControlPlaneRemote":{"properties":{"nodeLocation":{"type":"string","description":"Name of the Google Distributed Cloud Edge zones where this node pool\nwill be created. For example: `us-central1-edge-customer-a`.\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodeLocation"]}}},"gcp:edgecontainer/ClusterFleet:ClusterFleet":{"properties":{"membership":{"type":"string","description":"(Output)\nThe name of the managed Hub Membership resource associated to this cluster.\nMembership names are formatted as\n`projects/\u003cproject-number\u003e/locations/global/membership/\u003ccluster-id\u003e`.\n"},"project":{"type":"string","description":"The name of the Fleet host project where this cluster will be registered.\nProject names are formatted as\n`projects/\u003cproject-number\u003e`.\n","willReplaceOnChanges":true}},"type":"object","required":["project"],"language":{"nodejs":{"requiredOutputs":["membership","project"]}}},"gcp:edgecontainer/ClusterMaintenanceEvent:ClusterMaintenanceEvent":{"properties":{"createTime":{"type":"string","description":"(Output)\nThe time when the maintenance event request was created.\n"},"endTime":{"type":"string","description":"(Output)\nThe time when the maintenance event ended, either successfully or not. If\nthe maintenance event is split into multiple maintenance windows,\u003cspan pulumi-lang-nodejs=\"\nendTime \" pulumi-lang-dotnet=\"\nEndTime \" pulumi-lang-go=\"\nendTime \" pulumi-lang-python=\"\nend_time \" pulumi-lang-yaml=\"\nendTime \" pulumi-lang-java=\"\nendTime \"\u003e\nend_time \u003c/span\u003eis only updated when the whole flow ends.\n"},"operation":{"type":"string","description":"(Output)\nThe operation for running the maintenance event. Specified in the format\nprojects/*/locations/*/operations/*. If the maintenance event is split\ninto multiple operations (e.g. due to maintenance windows), the latest\none is recorded.\n"},"schedule":{"type":"string","description":"(Output)\nThe schedule of the maintenance event.\n"},"startTime":{"type":"string","description":"(Output)\nThe time when the maintenance event started.\n"},"state":{"type":"string","description":"(Output)\nIndicates the maintenance event state.\n"},"targetVersion":{"type":"string","description":"The target cluster version. For example: \"1.5.0\".\n"},"type":{"type":"string","description":"(Output)\nIndicates the maintenance event type.\n"},"updateTime":{"type":"string","description":"(Output)\nThe time when the maintenance event message was updated.\n"},"uuid":{"type":"string","description":"(Output)\nUUID of the maintenance event.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createTime","endTime","operation","schedule","startTime","state","targetVersion","type","updateTime","uuid"]}}},"gcp:edgecontainer/ClusterMaintenancePolicy:ClusterMaintenancePolicy":{"properties":{"maintenanceExclusions":{"type":"array","items":{"$ref":"#/types/gcp:edgecontainer/ClusterMaintenancePolicyMaintenanceExclusion:ClusterMaintenancePolicyMaintenanceExclusion"},"description":"Exclusions to automatic maintenance. Non-emergency maintenance should not occur\nin these windows. Each exclusion has a unique name and may be active or expired.\nThe max number of maintenance exclusions allowed at a given time is 3.\nStructure is documented below.\n"},"window":{"$ref":"#/types/gcp:edgecontainer/ClusterMaintenancePolicyWindow:ClusterMaintenancePolicyWindow","description":"Specifies the maintenance window in which maintenance may be performed.\nStructure is documented below.\n"}},"type":"object","required":["window"]},"gcp:edgecontainer/ClusterMaintenancePolicyMaintenanceExclusion:ClusterMaintenancePolicyMaintenanceExclusion":{"properties":{"id":{"type":"string","description":"A unique (per cluster) id for the window.\n"},"window":{"$ref":"#/types/gcp:edgecontainer/ClusterMaintenancePolicyMaintenanceExclusionWindow:ClusterMaintenancePolicyMaintenanceExclusionWindow","description":"Represents an arbitrary window of time.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","window"]}}},"gcp:edgecontainer/ClusterMaintenancePolicyMaintenanceExclusionWindow:ClusterMaintenancePolicyMaintenanceExclusionWindow":{"properties":{"endTime":{"type":"string","description":"The time that the window ends. The end time must take place after the\nstart time.\n"},"startTime":{"type":"string","description":"The time that the window first starts.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endTime","startTime"]}}},"gcp:edgecontainer/ClusterMaintenancePolicyWindow:ClusterMaintenancePolicyWindow":{"properties":{"recurringWindow":{"$ref":"#/types/gcp:edgecontainer/ClusterMaintenancePolicyWindowRecurringWindow:ClusterMaintenancePolicyWindowRecurringWindow","description":"Represents an arbitrary window of time that recurs.\nStructure is documented below.\n"}},"type":"object","required":["recurringWindow"]},"gcp:edgecontainer/ClusterMaintenancePolicyWindowRecurringWindow:ClusterMaintenancePolicyWindowRecurringWindow":{"properties":{"recurrence":{"type":"string","description":"An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how\nthis window recurs. They go on for the span of time between the start and\nend time.\n"},"window":{"$ref":"#/types/gcp:edgecontainer/ClusterMaintenancePolicyWindowRecurringWindowWindow:ClusterMaintenancePolicyWindowRecurringWindowWindow","description":"Represents an arbitrary window of time.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["recurrence","window"]}}},"gcp:edgecontainer/ClusterMaintenancePolicyWindowRecurringWindowWindow:ClusterMaintenancePolicyWindowRecurringWindowWindow":{"properties":{"endTime":{"type":"string","description":"The time that the window ends. The end time must take place after the\nstart time.\n"},"startTime":{"type":"string","description":"The time that the window first starts.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endTime","startTime"]}}},"gcp:edgecontainer/ClusterNetworking:ClusterNetworking":{"properties":{"clusterIpv4CidrBlocks":{"type":"array","items":{"type":"string"},"description":"All pods in the cluster are assigned an RFC1918 IPv4 address from these\nblocks. Only a single block is supported. This field cannot be changed\nafter creation.\n","willReplaceOnChanges":true},"clusterIpv6CidrBlocks":{"type":"array","items":{"type":"string"},"description":"If specified, dual stack mode is enabled and all pods in the cluster are\nassigned an IPv6 address from these blocks alongside from an IPv4\naddress. Only a single block is supported. This field cannot be changed\nafter creation.\n","willReplaceOnChanges":true},"networkType":{"type":"string","description":"(Output)\nIP addressing type of this cluster i.e. SINGLESTACK_V4 vs DUALSTACK_V4_V6.\n"},"servicesIpv4CidrBlocks":{"type":"array","items":{"type":"string"},"description":"All services in the cluster are assigned an RFC1918 IPv4 address from these\nblocks. Only a single block is supported. This field cannot be changed\nafter creation.\n","willReplaceOnChanges":true},"servicesIpv6CidrBlocks":{"type":"array","items":{"type":"string"},"description":"If specified, dual stack mode is enabled and all services in the cluster are\nassigned an IPv6 address from these blocks alongside from an IPv4\naddress. Only a single block is supported. This field cannot be changed\nafter creation.\n","willReplaceOnChanges":true}},"type":"object","required":["clusterIpv4CidrBlocks","servicesIpv4CidrBlocks"],"language":{"nodejs":{"requiredOutputs":["clusterIpv4CidrBlocks","networkType","servicesIpv4CidrBlocks"]}}},"gcp:edgecontainer/ClusterSystemAddonsConfig:ClusterSystemAddonsConfig":{"properties":{"ingress":{"$ref":"#/types/gcp:edgecontainer/ClusterSystemAddonsConfigIngress:ClusterSystemAddonsConfigIngress","description":"Config for the Ingress add-on which allows customers to create an Ingress\nobject to manage external access to the servers in a cluster. The add-on\nconsists of istiod and istio-ingress.\nStructure is documented below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ingress"]}}},"gcp:edgecontainer/ClusterSystemAddonsConfigIngress:ClusterSystemAddonsConfigIngress":{"properties":{"disabled":{"type":"boolean","description":"Whether Ingress is disabled.\n"},"ipv4Vip":{"type":"string","description":"Ingress VIP.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["disabled","ipv4Vip"]}}},"gcp:edgecontainer/NodePoolLocalDiskEncryption:NodePoolLocalDiskEncryption":{"properties":{"kmsKey":{"type":"string","description":"The Cloud KMS CryptoKey e.g. projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} to use for protecting node local disks.\nIf not specified, a Google-managed key will be used instead.\n","willReplaceOnChanges":true},"kmsKeyActiveVersion":{"type":"string","description":"(Output)\nThe Cloud KMS CryptoKeyVersion currently in use for protecting node local disks. Only applicable if kmsKey is set.\n"},"kmsKeyState":{"type":"string","description":"(Output)\nAvailability of the Cloud KMS CryptoKey. If not KEY_AVAILABLE, then nodes may go offline as they cannot access their local data.\nThis can be caused by a lack of permissions to use the key, or if the key is disabled or deleted.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["kmsKeyActiveVersion","kmsKeyState"]}}},"gcp:edgecontainer/NodePoolNodeConfig:NodePoolNodeConfig":{"properties":{"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"\"The Kubernetes node labels\"\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["labels"]}}},"gcp:edgecontainer/VpnConnectionDetail:VpnConnectionDetail":{"properties":{"cloudRouters":{"type":"array","items":{"$ref":"#/types/gcp:edgecontainer/VpnConnectionDetailCloudRouter:VpnConnectionDetailCloudRouter"},"description":"(Output)\nThe Cloud Router info.\nStructure is documented below.\n"},"cloudVpns":{"type":"array","items":{"$ref":"#/types/gcp:edgecontainer/VpnConnectionDetailCloudVpn:VpnConnectionDetailCloudVpn"},"description":"(Output)\nEach connection has multiple Cloud VPN gateways.\nStructure is documented below.\n"},"error":{"type":"string","description":"(Output)\nThe error message. This is only populated when state=ERROR.\n"},"state":{"type":"string","description":"(Output)\nThe current connection state.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudRouters","cloudVpns","error","state"]}}},"gcp:edgecontainer/VpnConnectionDetailCloudRouter:VpnConnectionDetailCloudRouter":{"properties":{"name":{"type":"string","description":"The resource name of VPN connection\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"gcp:edgecontainer/VpnConnectionDetailCloudVpn:VpnConnectionDetailCloudVpn":{"properties":{"gateway":{"type":"string","description":"(Output)\nThe created Cloud VPN gateway name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["gateway"]}}},"gcp:edgecontainer/VpnConnectionVpcProject:VpnConnectionVpcProject":{"properties":{"projectId":{"type":"string","description":"The project of the VPC to connect to. If not specified, it is the same as the cluster project.\n","willReplaceOnChanges":true}},"type":"object"},"gcp:endpoints/ConsumersIamBindingCondition:ConsumersIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:endpoints/ConsumersIamMemberCondition:ConsumersIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:endpoints/ServiceApi:ServiceApi":{"properties":{"methods":{"type":"array","items":{"$ref":"#/types/gcp:endpoints/ServiceApiMethod:ServiceApiMethod"},"description":"A list of Method objects; structure is documented below.\n"},"name":{"type":"string","description":"The simple name of the endpoint as described in the config.\n"},"syntax":{"type":"string","description":"`SYNTAX_PROTO2` or `SYNTAX_PROTO3`.\n"},"version":{"type":"string","description":"A version string for this api. If specified, will have the form major-version.minor-version, e.g. `1.10`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["methods","name","syntax","version"]}}},"gcp:endpoints/ServiceApiMethod:ServiceApiMethod":{"properties":{"name":{"type":"string","description":"The simple name of the endpoint as described in the config.\n"},"requestType":{"type":"string","description":"The type URL for the request to this API.\n"},"responseType":{"type":"string","description":"The type URL for the response from this API.\n"},"syntax":{"type":"string","description":"`SYNTAX_PROTO2` or `SYNTAX_PROTO3`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","requestType","responseType","syntax"]}}},"gcp:endpoints/ServiceEndpoint:ServiceEndpoint":{"properties":{"address":{"type":"string","description":"The FQDN of the endpoint as described in the config.\n"},"name":{"type":"string","description":"The simple name of the endpoint as described in the config.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","name"]}}},"gcp:endpoints/ServiceIamBindingCondition:ServiceIamBindingCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:endpoints/ServiceIamMemberCondition:ServiceIamMemberCondition":{"properties":{"description":{"type":"string","willReplaceOnChanges":true},"expression":{"type":"string","willReplaceOnChanges":true},"title":{"type":"string","willReplaceOnChanges":true}},"type":"object","required":["expression","title"]},"gcp:essentialcontacts/DocumentAiWarehouseDocumentSchemaPropertyDefinition:DocumentAiWarehouseDocumentSchemaPropertyDefinition":{"properties":{"dateTimeTypeOptions":{"$ref":"#/types/gcp:essentialcontacts/DocumentAiWarehouseDocumentSchemaPropertyDefinitionDateTimeTypeOptions:DocumentAiWarehouseDocumentSchemaPropertyDefinitionDateTimeTypeOptions","description":"Date time property. Not supported by CMEK compliant deployment.\n","willRe